Since a lot of modules are now part of a library, they should be renamed to avoid clashes. I propose to use OpamXXX instead of XXX, from now on. Since I already get a clash for File, I just renamed it for now, but this should be done for all modules in opam-lib.
… repository Futur works : take into account comments (* *) so that the output does not delete them...
Now everything is in one file for each backend, with the same BACKEND signature to satisfy - this means it's easier to deploy (as you don't have dozains of binaries to copy at the right place), it's easier to reason about (as you have type constraints, instead of having to read on stdout after calling a script) and it's easier to evolve, as you can easily add new functions if needed. Currenlty, only the curl and the rsync backend are ported over the new interface, and rsync is passing the test-suite.
Now the curl backend uses md5 checksums, which make it looks like very much the rsync backend, so this commit refactor a lot of common functionnalities. As a side effect, it also fix the rule "if the archive is not there, then download by reading what's in url/", which make the behavior exactly the same for rsync/curl and opam-mk-repo (which incidentaly fix some bugs there which were present in the rsync backend there). Note: the checksum support is not yet complete, as OPAM doesn't (yet) store checksums of external archives; but that's now quite easy to add.
… over HTTP doesn't work ... Cannot upload anything with that, and need an urls.txt file describing the site contents
It compiles, but untested. Morever 'opam-server-download' and 'opam-server-upload' are missing. Most of the code is here, need to test it and finish to write more boring script stuff...
It compiles, but untested. The basic idea is to have a git repository storing OPAM, description files and git urls of dev packages: * opam-git-init clones the repository at the right place * opam-git-download clones the git repository for the right pacakge, and call git-archive to create a .tar.gz which is copied at the right place (to follow the OPAM repository pluggin protocol) * opam-git-update updates the main repository to look for new packages and then updates each already cloned packages to see if they need to be updated