-
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
Remove uninstallable packages #11400
Conversation
✅ No new or changed opam files 300fa51✅ Installability check (8292 → 8265)
|
Some packages aren't detected as uninstallable by Camelus, because it's based on 1.2 and doesn't check the
|
Pinging maintainers: @janestreet @ivg @vbmithr @dakk @samoht @Drup @mmottl @MagnusS @smondet @avsm @choeger @zoggy @andrenth @arjunguha @whitequark @dominicjprice @dbuenzli @diml @djs55 @jpdeplaix I'll quickly merge this if there is no complaint (the packages can't be installed anyway! It'll always be time to re-add them if they get fixed). @hannesm: do you still have a mapping of maintainer fields to github IDs ? Would be very convenient for PRs like this one :) |
No complaint from me. For future reference, is there a procedure for the author to remove packages that are no longer maintained from opam? |
There is no function |
This is ok. Thanks. |
source is https://github.com/hannesm/conex/tree/master/analysis , data hannesm@0b15a5e . |
General comments:
I notice one of the removed packages is
alcotest expected? I'd prefer to fix these typos and keep these packages if possible.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What makes you think, that those packages are not installable? They were, in particular all bap packages were passing all opam CI tests, as well as ours. And I'm pretty sure, that I will not have any problems installing them today.
Also, I strongly disagree with the idea of deleting packages (the only exception should be the licensing issue).The OPAM repository should be a monotone data accumulator where the information is only accumulated and refined. By deleting packages we are sending a sad message to the community about the stability of the OCaml ecosystem and it's longlivity.
And this is not only about BAP, I'm also aware of many closed source systems, that use old versions of compilers and older software, and are still in use and will be in use for many years.
Yeah, what's the problem with i.e. |
Ok, ok, please calm down :)
I'll be updating the PR to fix that. As for
See above, and the link in the OP for details. Apart from my mistake with enabling test/doc checks, the current repository has no possible configuration where you can install these packages. Probably there were at some point, maybe some dependencies got removed or changed — I am not trying to find any culprit here, and the solution might be to recover the dependencies — but the fact stands. Keeping packages that can't possibly be installed adds cruft and is, I think, misleading to the users.
Well, I am not saying we should in general remove old package releases: opam was built around the possibility to have multiple compiler switches, including older releases, and that's certainly to remain built into its DNA. But we need to strike a balance between keeping working older releases, and not letting the repository look like an unmaintained dump — which wouldn't be a better signal to the community. I am only trying to tidy up here. My other issue is the one explained in ocaml/opam#3161: I am pretty sure no one needs 48 releases for So you are right about keeping older releases and compatibility, and I completely agree there, the information should be "accumulated and refined" (so I won't be arguing that the repository is versionned). I am just focusing on the "refined" part ☺. Keeping old releases, yes, but keeping them unmaintained and in an unusable state, no. Let's keep the repository healthy, and while at it, if we can have it as lean as possible to avoid unneeded resolution problems, all the better. |
follow-up from ocaml#11378. If nobody can install them, no point in keeping them in the repo
Here are the details for
|
@smondet: the PR originally removed packages that couldn't install with Here are the packages with doc/test issues from the original list. I omitted their dependencies, which transitively got marked as broken (among which
As for the monotonic increase, we can have this discussion: is the repository an archive, or a living, maintained corpus of packages ? Because we have been allowing package modifications from the beginning, I had assumed we wanted the latter. To me, the repository's purpose is, more than anything else, to be used by opam to allow users to install packages. That does include older releases of packages, I have never been arguing that we should remove those. But to avoid code rot, we should tidy up from time to time, and make sure that the packages are installable, otherwise they can interfere with the opam tool, and are misleading to users. So I don't quite understand your position here: what could keeping broken packages, possibly achieve ? As for the 48 releases of |
@AltGr one of the goals of being monotone is to make sure Let's say conduit.0.5.1 is broken/uninstallable, and cohttp.0.4.2 depends on it. Some user may have pinned conduit to some special branch or local-fix, and hence managed to install cohttp.0.4.2 (e.g. pinned to the version). Now if those 2 packages get removed from the repo, (I'm not saying this is a huge deal, I'm sure all those cases can be handled with good error messages, but in general, it's a nice assumption for the mental model of how opam works) |
Indeed; but I don't see having the package installed but no longer present in the repository as an issue: opam keeps a copy of the metadata locally. If the package is pinned, nothing will happen (it's already independant from the repo), if it is not, opam will flag it as "orphan", and an In general, having packages on the repository that depend on anything that is not in the repository (here a custom pinning) would break another assumption, that the repository should be self-contained. |
I just fixed dep errors for secp256k1 and submitted a new release (I don't know why I set ounit-2.2.2 while the latest version is 2.0.7); old version can be removed |
isn't it bad for reproducibility that some packages can disappear from opam? |
@dakk thanks @UnixJunkie well, it's no worse than any packages modifications. You can lock at a given repository commit for reproducibility, and already need to do that anyway. Also note that opam 1.2 didn't really work on this front, because one of the most common issues was changed or missing upstream sources. Opam 2.0 solves this by having a cache of source archives by hash, that is always appended to. This means that, with the cache properly configured, locking to an older repository version will actually work. |
I don't think there is going to be consensus on this any time soon. I'm going to close this. Feel free to reopen it or to create another one whenever you want. |
cf. #11378