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 5.0.0~alpha0: conflict with dune >= 3.4 #22512

Merged
merged 1 commit into from
Nov 17, 2022

Conversation

emillon
Copy link
Contributor

@emillon emillon commented Nov 16, 2022

This is related to the META files that the compiler now ship. This feature has been added in 5.0.0~alpha1. Dune is able to determine that, but only has access to the (major, minor) numbers to do this. So recent versions of dune can not be used with 5.0.0~alpha0.

Historically we've added the conflict on the dune side, but this means that we need to keep adding the conflict on new releases. This commit puts in on the other side, which is easier to maintain since no new incompatible versions of the ocaml compiler are expected.

(We could also remove the existing conflicts on the dune side, but doing so would cause many existing switches to be rebuilt even for users that are not on alpha0).

This is related to the META files that the compiler now ship. This
feature has been added in 5.0.0~alpha1. Dune is able to determine that,
but only has access to the (major, minor) numbers to do this. So recent
versions of dune can not be used with 5.0.0~alpha0.

Historically we've added the conflict on the dune side, but this means
that we need to keep adding the conflict on new releases. This commit
puts in on the other side, which is easier to maintain since no new
incompatible versions of the ocaml compiler are expected.

(We could also remove the existing conflicts on the dune side, but doing
so would cause many existing switches to be rebuilt even for users that
are not on alpha0).
@emillon
Copy link
Contributor Author

emillon commented Nov 16, 2022

cc @dra27 @kit-ty-kate

@mseri
Copy link
Member

mseri commented Nov 17, 2022

Looks reasonable. Thanks!

@hannesm
Copy link
Member

hannesm commented Nov 17, 2022

FWIW, I think the constraints should be in the dune opam package. This reduces the work on the solver (AFAIK). The maintenance issue shouldn't be too hard, you can once and for all put a "ocaml" {!= "5.0.0~alpha0" & ...} in your opam file(s) - as other packages do. With this change, it is very cumbersome to figure out why some packages are selected.

If such a methodology becomes mainstream, I wouldn't know where to annotate upper and lower bounds, at package X or its dependency Y.

@mseri
Copy link
Member

mseri commented Nov 17, 2022

In general I agree with you, but this is a one-off for the first alpha of a the new compiler with lots of breaking changes. I think it is a fair exception to the norm

@Leonidas-from-XIV Leonidas-from-XIV deleted the conflict-dune-3.4-ocaml-5.0.0-alpha0 branch March 29, 2024 14:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants