ocaml-ci icon indicating copy to clipboard operation
ocaml-ci copied to clipboard

ocaml CI fails when a tested package transitively depends on another one.

Open panglesd opened this issue 1 year ago • 2 comments

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!

panglesd avatar Jul 08 '24 14:07 panglesd

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 B depends on E, which depends on A.

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!

punchagan avatar Jul 09 '24 08:07 punchagan

If I understand correctly, you understand correctly!

I guess you mean B depends on C, not E?

Yes, sorry for the confusion!

panglesd avatar Jul 09 '24 16:07 panglesd