-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Add conf-mbedtls.4.0.0 #28742
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 conf-mbedtls.4.0.0 #28742
Conversation
8ec0ac2 to
4525805
Compare
|
Should I do something special about this |
|
Thanks for the contribution. Your PR highlights an issue we've been having in the opam-repo, one we've discussed before but never reached a satisfying decision about. The issue is: What should the version number of conf packages mean? Your PR uses the conf package version as a bound on the underlying package. That is: The two existing An issue we would face merging your package is that for any package p that depend on Ideas and suggestions to improve the versioning of conf packages? Maybe we should have |
|
I don't know I just followed what was done for
I think that if we want to follow the notion of open bounds in the
I think that this lets users specify bounds on the version they need and the |
this seems reasonable in terms of semantics for packages, it leaves the following unanswered:
(I'm puting those questions out but, just to be clear, I am not trying to put the responsability of figuring out the entire solution that opam-repo should adopt onto you @dbuenzli . I put those questions out to be discussed in general, not just by you+me.) |
|
Maybe some of the authors of this paper know better. Hello @avsm, @dra27 etc. :-) FWIW the current state of affairs is not blocking me but it may result in unpleasant experiences for some users of an upcoming package release (it's a depopts so it may not be too annoying for the |
Ah in this case I suggest to constrain the (single) package, namely |
|
Some things come to mind:
|
|
So that we can discuss specifics, I have made #28770 as a demonstration of what a separate package for constraints would look like. With such a system, users who need I'm worried this could lead to a large number of packages. Although we only ever need to introduce new packages when a specific constraint is needed which doesn't seem to be too often. |
|
@raphael-proust in general I don't think it is a good idea to encode configuration problems in package names and I don't see what problem it solves in this particular case. In practice people always do depend on a specific range of versions if only implicitly (e.g. the The root problem seems to be that we don't want to have precise versioning of
Now if you only care about the package being present (but then as mentioned above, it's likely not the case), you can depend on version I still find it odd that we reintepreted the notion of package version to denote ranges in a system that is supposed to excel at dealing with version constraints but that's what it is :-) |
I don't think that'd work. Say we merge in With the additional constraint package you could depend on I don't know that it's a good idea either to introduce this level of complexity (it's a lot of new packages and a whole new semantic for users to learn). Maybe a better alternative is to shift the responsibility for checking version constraints to the non-conf packages? It's not ideal in that it doesn't compose well: you might need to packages that express to incompatible sets of constraints and you can't discover that easily/automatically. |
But that doesn't solve the problem. What you want is that the opam repository CI does not try to install a package if its In the end I'm not sure that just having what has been done in the |
|
My opinion on these is unchanged since #25441 - I think that without actual solver support for the underlying depext version, this doesn’t scale (or even work) |
Can you perhaps be more specific ? |
|
The issue is in the future when, say, a 5.0.0 package is wanted - because there’s no connection at the solver level for which package to select, it ends up being confusing for any system which only has a 4.x version of the library. Without lots of manual pinning, opam will keep trying to upgrade the conf package, and it then looks like that’s what’s at fault, rather than needing to hold packages using that conf package back to older versions (I think this started to happen with labltk?). Having real versions on the conf packages makes it look like one can put constraints on the dependency, but that’s not the reality, and I think that’s more confusing than just having to abort during a specific package’s configuration (but I don’t mean to imply that’s ideal either!) I think it’s something which needs solving on the opam side first rather than the opam side (that’s part of what the hyperres paper was about) |
|
Thanks for the details. I see now. So basically the tradeoff is between being annoying to end-users and being annoying to the opam repo maintainers/submitters.
rather than opam repo side I guess. Ok so let's close this. |
This takes the
mbedtls.2opam file and adds a new package that checks that thembedtls >= 4.0.0depext is installed (modelled after the theconf-zstd.1.3.8package). Note that this is expected to fail mostly everywhere as the release is quite new.