> On 11 Apr 2016, at 13:19, Grégoire Henry <gregoire.he...@ocamlpro.com> wrote: > > Hi Anil, > >> To fix this and address every usecase, I'd like to break up the container >> layers to be more fine-grained: >> >> - ocaml/ocaml - remains as it is right now >> - ocaml/opam-base - provides an installed OPAM binary, but _not_ >> initialised, and has the capability to volume mount an OPAM repository from >> which it can initialise the local base without any data being held in the >> container. >> - ocaml/opam - embeds an OPAM repository checkout and works as-is right now >> - ocaml/opam-archive: also volume mounts in an external archive/ directory >> so we do not have to embed the volume in a container > > What about including in `ocaml/opam-base` a "partial" OPAM repository > with only the (some) compilers and initialize OPAM with it. Then > `ocaml/opam` (or CI tools based on `ocaml/opam-base`) will replace the > "partial" OPAM repository with the real one. If done correctly, they > shouldn't have to recompile OCaml.
Yes I would really like this! This could be easily done by running a git filter-subtree on the existing checkout to mirror something that containers only the compilers and a very small set of packages. Louis, ThomasG, what do you think about this? We could call this ocaml/opam-repository-minimal or something, and have it automatically generated in a manner similar to the rewrite scripts today. It would have to work with OPAM-HEAD as well though, for compilers-as-packages. > > The partial OPAM repository could either be manually updated (e.g. at > each OCaml release) or may be extracted from the official repository > by a bot. Agreed -- definitely the latter would be useful, since the extractor script could trigger a container rebuild only if there are changes in the core packages. The same technique could also be used for wider slices of the main OPAM repository. Anil _______________________________________________ opam-devel mailing list opam-devel@lists.ocaml.org http://lists.ocaml.org/listinfo/opam-devel