RyanGibb/hillingar

Use `opam monorepo` solver instead if `opam admin list`

Opened this issue · 2 comments

E.g. use

$ opam monorepo lock
$ opam monorepo list

(or read the lockfile instead of list)

Currently blocked on tarides/opam-monorepo#333

The reason for doing this is to filter non-dune dependent packages from opam-repository.

Mirage 4 builds with dune using opam-monorepo to fetch all dependencies locally to build with cross compilation support. The opam-overlays project was create to patch those packages that don't support building with dune. However, after new version of a such a package is release in opam-repository before a patch is created for the version in opam-overlays, the opam solver could resolve the newer version that will subsequently fail to build with dune. For this reason, opam monorepo filters non-dune dependency (as a proxy for package that don't build with dune) from the repo before solving dependency versions. See a longer discussion here.

A secondary benefit is that is that the opam monorepo solver already removes packages that we use filterPkgs for.