<div dir="ltr"><div><div>Dear opam-devel,<br><br>Guillaume Claret (one of the Coq developpers) has been experimenting with using one OPAM root for each of his software projects, instead of using global switches.<br><br>  <a href="http://coq-blog.clarus.me/use-opam-for-coq.html">http://coq-blog.clarus.me/use-opam-for-coq.html</a><br><br></div>I have a personal preference for keeping using switches that I'm familiar with and seem more idiomatic in OCaml usage (and also compiling Coq in each project would remind me too much of my Gentoo years), but Guillaume points out that it has evolved to be standard usage in the Node/npm community (and with Python/virtualenv I think), and that it can solve incompatible-version headaches by having a finer granularity. More generally the rationale seems to be "local is better than global", which sounds reasonable.<br><br></div><div>(Besides compilation time and duplication of efforts -- that could be partially solved if/when binary packages where to see the light -- a good argument in favor of switches would be the ability to install programs across multiple switches in the same root, eg. opam compiler-conf and similiar scripts.)<br><br></div><div>Do you know of other users having converged towards that per-project scheme? Is there tool support, or interest in eventually supporting, for this mode of use in upstream OPAM?<br></div></div>