Closed hannesm closed 2 years ago
There is indeed, even though a subtle one!
The main difference is that with opam install
, you will have an extra, unecessary solver run as opam will try to resolve the dependencies to install all transitive depexts of the opam file, even though they were compiled in the depext
field by opam-monorepo. Unfortunately there is no way at the moment to tell either opam install --depext-only
or opam depext
to only install the depexts defined in the file.
As a consequence, opam install
could fail in some cases:
pin-depends
field in lock files and potential differences between upstream metadata and archive/git repos opam files, the solver could fail to find a solution.2
can be easily worked around using opam install --ignore-pin-depends --depext-only <file>
.
opam monorepo depext
will simply resolve the depexts formula based on the opam variables currently defined and install the resulting system packages.
Thanks for your quick and detailed explanation.
I am wondering whether there is a difference between executing (on any lockfile)
opam install --depext-only <file>
andopam monorepo depext -l <file>
. If the answer is yes, I'd be keen to know what the difference is.Thanks a lot.