Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
panglesd opened this issue Jul 8, 2024 · 2 comments
Labels
type/bug Something isn't working

Comments

@panglesd
Copy link
Contributor

panglesd commented Jul 8, 2024

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!

@punchagan
Copy link
Contributor

punchagan commented Jul 9, 2024

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!

@panglesd
Copy link
Contributor Author

panglesd commented Jul 9, 2024

If I understand correctly, you understand correctly!

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

Yes, sorry for the confusion!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants