Excerpts from daniel.buenzli's message of Wed Jan 30 12:15:01 +0100 2008: > > Le 30 janv. 08 à 09:49, Nicolas Pouillard a écrit : > > > You have a local branch of the whole port hierarchy, that's why > > we're talking > > about DVCS. > > Ok I understand now. So the port hierarchy is centralized and > versioned that's exactly what I don't like because it is not flexible > enough, you have to wait for things to update (e.g. like waiting for > the 3.10 branch in godi) because package description files support > only one version. Not necessarily, in Gentoo, there is all installable versions in the directory of the project. Here is the OCaml package in Gentoo: $ find /usr/portage/dev-lang/ocaml /usr/portage/dev-lang/ocaml /usr/portage/dev-lang/ocaml/Manifest /usr/portage/dev-lang/ocaml/files /usr/portage/dev-lang/ocaml/files/ocaml-rebuild.sh /usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-exec-stack-fixes.patch /usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-Makefile.patch /usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-configure.patch /usr/portage/dev-lang/ocaml/files/ocaml-3.10.0-exec-stack-fixes.patch /usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-execheap.patch /usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-automagic.patch /usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-hppa-optimize-for-size-ocamlp4.patch /usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-call_ld_with_proper_flags.patch /usr/portage/dev-lang/ocaml/files/ocaml-3.10.0-automagic.patch /usr/portage/dev-lang/ocaml/files/ocaml-3.10.0-configure.patch /usr/portage/dev-lang/ocaml/files/ocaml-3.10.0-call-ld-with-proper-ldflags.patch /usr/portage/dev-lang/ocaml/ocaml-3.08.4.ebuild /usr/portage/dev-lang/ocaml/ocaml-3.09.2.ebuild /usr/portage/dev-lang/ocaml/ChangeLog /usr/portage/dev-lang/ocaml/metadata.xml /usr/portage/dev-lang/ocaml/ocaml-3.09.3-r1.ebuild /usr/portage/dev-lang/ocaml/ocaml-3.09.3.ebuild /usr/portage/dev-lang/ocaml/ocaml-3.10.0.ebuild /usr/portage/dev-lang/ocaml/ocaml-3.09.3-r2.ebuild /usr/portage/dev-lang/ocaml/ocaml-3.10.1.ebuild You can see that there is multiple versions, but not necessarily all versions. There regularly garbage-collect some versions. > I don't like the idea of one version per description file, it is not > flexible enough and having the port hierarchy under vcs doesn't help > to select a particular version of a port. As you can see, that's wrong in the case of portage. > The way I see it is > > - a package is a list of versions > - a version is a list of files that build themselves with ocamlbuild > and a specification of dependencies. > > Now the tool I seek allows me to specify package dependencies in > ocamlbuild and take care of their install. Yes and such a list of package, can be hosted in a hierarchy in a VCS. > > That's not a baroque case, I mean if you are responsible of > > libFoo and > > progBar, you perhaps want to quickly package progBar using the > > last version > > of libFoo. > > If you don't have a centralized port hierarchy, you don't get these > problems because you manage your own package description file. In that > case just add a new version to your package description file and > publish it. Decentralize the system let anyone publish their own > package descriptions on their website, use the web. In this system anyone can publish it's variant of the ports hierarchy. -- Nicolas Pouillard aka Ertai