[opam-devel] opam 2 containers/building toplevel

Anil Madhavapeddy anil at recoil.org
Tue May 31 14:50:13 BST 2016

> On 31 May 2016, at 14:36, Louis Gesbert <louis.gesbert at ocamlpro.com> wrote:
> Le mardi 31 mai 2016, 14:03:30 Anil Madhavapeddy a écrit :
>> I'm just building Docker containers for the OPAM 2 master tree to sit
>> alongside the existing 1.x containers.  The build currently uses the
>> builtin libraries (make lib-ext), but this does not build the admin scripts
>> for some reason.
>> The admin scripts are needed for transitioning the 1.x repo to the 2.x
>> format -- is there any reason why this functionality shouldn't be
>> integrated into `opam admin` rather than requiring external scripts that
>> are difficult to build?  It would really help with testing the 2.x
>> branch...
>> Anil
> I usually don't build them, but rather run them directly, and using them as 
> scripts is quite convenient to test out various operations on the repo. Most 
> of them are throw-away and don't justify to be added to a tool that gets 
> installed everywhere. Doing it this way reduces the cost of testing out 
> scripts as well as the maintenance cost (obsolete scripts may lag behind API 
> changes, then either get updated when needed or removed).

Yeah, that makes sense.

> The issue with `make lib-ext` may be that `opam-admin.top` can't find the 
> proper opam libraries installed. The Makefile in `admin-scripts/` has a quick 
> hack to build bytecode versions, but that reiles on `ocamlfind` to locate the 
> installed versions of the dependencies; it wouldn't be difficult to improve it 
> to work with `lib-ext` though.

It would be very useful if they could work with lib-ext and the toplevel be built by default.  Right now there is some oddness where the extlib interactive installer is run if I build `opam-admin.top` manually, so I gave up around there.

> Now, for scripts that get generally useful and somewhat stable, it's perfectly 
> fine to migrate them to be part of opam-admin. Moving the scripts to their own 
> repo would also be fine if they reach a critical weight.
> Should we improve compat of the Makefile and/or move the 1.2->2.0 
> functionality to opam-admin ?

For the purposes of container-based testing, it would be great if we could move the essential functionality into `opam admin` directly.  This will let me insert in the right `git clone / opam admin upgrade` runs into the CI scripts so that OPAM 2 is easy to test for end users.


More information about the opam-devel mailing list