[opam-devel] .opam

Roberto Di Cosmo roberto at dicosmo.org
Thu Sep 19 13:49:54 BST 2013

On Thu, Sep 19, 2013 at 01:28:37PM +0100, Anil Madhavapeddy wrote:
> On 19 Sep 2013, at 12:43, Roberto Di Cosmo <roberto at dicosmo.org> wrote:
> > On Thu, Sep 19, 2013 at 01:03:30PM +0200, Dagnat Fabien wrote:
> > <snip>
> >> Share some parts: for example a stable caml shared by several users and keeping
> >> the ability to install some libraries or switches on per user basis.
> >> 
> > 
> > Indeed, this is something which would greatly help.
> > 
> > In Python, they have virtualenv for doing this, see
> > 
> >  http://www.pythonforbeginners.com/basics/python-virtualenv-usage/
> Is there any reason storing the contents of .opam in a Git repository
> wouldn't work for this?

You mean, to share common pieces and avoid exploding the disk quota?
Of course, the hash-based approach used in git is in principle the
right solution, but in practice, AFAIK, git as a tool is not built
to work in a multi-user environment (I mean, a shared .git repo accessed by
multiple users at a time, each keeping a local view of the components,
and yet sharing all of them).

One of the uses of virtualenv is with the


option to provide the proper symbolic links to the system-wide
installation (and replacing system-wide packages with local copies
if this needs be).

If one wants to spend time on this for opam, a good start would
be a little brainstorming session in front of a blackboard to see
how to accommodate:

 - performing a shallow clone of a reference shared repo into a user

 - installing/overriding packages in the shared repo with local copies
   when requested by the user

 - fixing/garbage collecting a local repo:

   + if a shared package disappears, opam for the local user should notice
     and install locally a replacement version

   + if a shared package appears, opam for the local user should notice
     and replace the local copy with a link to the shared one

All this might be more complex than one thinks, due to the need to handle
the permissions on the file systems...


> -anil

Roberto Di Cosmo
Professeur               En delegation a l'INRIA
PPS                      E-mail: roberto at dicosmo.org
Universite Paris Diderot WWW  : http://www.dicosmo.org
Case 7014                Tel  : ++33-(0)1-57 27 92 20
5, Rue Thomas Mann       
F-75205 Paris Cedex 13   Identica: http://identi.ca/rdicosmo
FRANCE.                  Twitter: http://twitter.com/rdicosmo
MIME accepted, Word deprecated
Office location:
Bureau 3020 (3rd floor)
Batiment Sophie Germain
Avenue de France
Metro Bibliotheque Francois Mitterrand, ligne 14/RER C
GPG fingerprint 2931 20CE 3A5A 5390 98EC 8BFC FCCA C3BE 39CB 12D3                        

More information about the opam-devel mailing list