-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Add upper bound on ocaml 4.08 to result <1.5 #24868
Conversation
This will make the constraints no longer necessary. See ocaml#24263 Signed-off-by: Marcello Seri <[email protected]>
I do appreciate this change, though I think that @dra27 should jump in (from #19880 (comment)): "it's annoying having to add a conflict on a package which isn't (necessarily) related to you, but it is the "correct" thing here (lock files really do matter)." If I understand this correctly, @dra27 has insight into active usages of lockfiles that, if this PR is merged, will break all the users thereof. |
Nothing's changed technically since 2021 as far as I can see. The issue is that anyone with a lockfile which locks OCaml 4.08-4.13 and any version of result prior to 1.5 will be unable to apply that lockfile after this upperbounds change. The policy has been in the past that we avoid making that of change. I'm not sure what technical value there is in re-hashing a two-year-old technical discussion - the policy can of course be altered. For this PR, I do have a couple of comments: we long-since lost the installability check. Ignoring hypothetical lockfiles, the change concretely means As I see it, the core of this very real problem stems from the lower-bounds checker. I realise altering opam-repo-ci is not a favourite subject, but can the lower-bounds check not be configured either indirectly by using Separately, are we already discouraging/rejecting package submissions which directly depend on |
The point on the uninstallable packages is fair, although I would be curious to see if they are actually installable right now. So I am fine in closing this PR just for that. Unfortunately using avoid-version requires a bound for opam >= 2.1, so this would also be breaking in some sense. But we can look into some other solution. The convenience of the lower bound check is not just the CI but also ensuring as much as we can that when people change their switch or downgrade something they can do it safely without breaking their switches. Note that this PR is not discouraging to use result if somebody needs it: result 1.5 is compatible with all ocaml versions. I would be in favor of discouraging the use of older result packages, though: these are shadowing the result module and making all its functions unavailable, leading to nearly everything nowadays conflicting with it. Having an old result package in the lockfile is actually preventing any practical use of the result module, so it should probably be encouraged to update it to require result 1.5 instead, but that is not my decision to make for them. |
I'm pretty disappointed by the discussion, I'm not motivated to contribute anything to this repository, being it that there are foggy "policies" that nobody cares to write down, and the argument being that there may be something that may break - instead of seeing the burden you impose on package authors. So long and thanks for all the fish, opam-repository. |
They are indeed all installable (I verified both their installability and, as it was much quicker to, that the change definitely changed the installability before commenting) - that was how I discovered #24891.
Adding
Oh, indeed - those (old) packages which are constrained to result < 1.5 have done that for a reason, though (1.5 is a breaking change for anything that assumed only |
This will make the constraints no longer necessary.
See #24263