ocaml CI fails when a tested package transitively depends on another one.
Context
Suppose you want ocaml-ci to test a repo containing two packages: A and B
Now, suppose that B depends on C, which depends on A.
OCaml-CI will pin "empty" versions of A and B, and then install dependencies of both A and B. This includes C, which will fail as its A dependency is actually empty.
Step(s) to reproduce
It happened in the odoc case. Here is the run:
https://ocaml.ci.dev/github/ocaml/odoc/commit/f759ba1cbc243ec25dfd195b61f0b7479d2043bd/variant/debian-12-5.2_opam-2.1#L31-31
Expected behaviour
The package C should be installable. This means installing it after the true versions of A and B are present.
Remarks
If there is a workaround this, let us know!
Thanks for the bug report.
So, if I understand correctly, here we have odoc and odoc-driver packages that are being tested, and odoc-driver pin-depends on sherlodoc, which requires odoc. The build fails on ocaml-ci given how we install the dependencies in the Docker image used for testing.
Now, suppose that
Bdepends onE, which depends onA.
I guess you mean B depends on C, not E?
If there is a workaround this, let us know!
I'm not aware of a workaround for this, as of now. But may be someone else more familiar with OCaml CI may be help you with this. I'll ask around!
If I understand correctly, you understand correctly!
I guess you mean B depends on C, not E?
Yes, sorry for the confusion!