I’ve been a bit frustrated at how difficult it is to specify dependencies and their versions with dune/opam. I’m prototyping something that will force you to explicitly specify all your direct dependencies (opam or pins) and their versions. It looks something like this (in toml):
[package] name = "my_lib" version = "0.1.0" [ocaml] ocaml_version = "4.12.0" # your dependencies go here [dependencies] core = "v0.14.1"
Now I’m running into this problem: how to figure out if there’s a dependency DAG that will work and install it? The only method I can think about is to manually create an opam.export file that specifies dependencies and pins and try to import it in a local switch.