-
Notifications
You must be signed in to change notification settings - Fork 167
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
[coq-lsp] 0.1.3 release for 8.17 #2439
Conversation
I will assume that you move this and 0.1.2 to the regular opam repo (and thus delete from here) once 8.17.0 is out. |
Sure, if that's the right thing to do, tho indeed the workflow for packages that would like to work against RC seems a bit complex then, as they need to move to Maybe RC versions should instead go to |
We have the general assumption that the Here, I meant that these packages should probably migrate to |
What I mean is putting the Coq RCs themselves into The trick they use is that RC versions depend on Does it make sense? |
Putting RCs directly into It could make sense if we introduce some new virtual package like |
As I've mentioned for that to happen you'd need to have the
What complication would have? The current setup seems more complex to me, as if I want to use / test and RC I need to:
Moreover a lot of packages that may be in release and work fine with the new version are now in a cross-dep setup with the stuff in |
Yes, I was saying that without some virtual package, it doesn't make any sense to me. One obvious complication is that some Docker images will suddenly need to have a virtual package And everyone will need to think about whether they want to be in conflict with |
If you want to follow OCaml, why not put all RCs in a new separate repo? https://github.com/ocaml/ocaml-beta-repository
This is to me a much better solution than intermingling regular and RC-related packages. |
OCaml abandoned this approach long time ago, in favor of the one I'm describing now, because indeed there are a few problems with that approach, in particular stability and cross-repos dependencies, among others.
Yes, this whole setup needs options.
How is that different from today? Today the docker images for beta need to take some extra step, in fact it would be simpler if the docker image could just say
Nobody should be in conflict with
That's fine, but IMHO the package manager is not the place to enforce it. |
If you look at https://ocaml.org/news/ocaml-5.0.beta2 they have the following line: opam switch create 5.0.0~beta2 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git So clearly that repository is being used still.
Right now, everything is handled with regular Coq pinning and selecting which opam repositories to include. There are no dev-specific packages. |
Indeed the meta-package Still, adding the The problem with pinning is that it may not scale, but the setup is indeed subtle. Let's compare testing a RC with the Case 1, using the current setup:
So the problem with that is mainly scalability of pinning, and in general the setup seems brittle to me. Case 2, using an OCaml-like setup:
|
Yes, I'm aware of how it works with |
It seems to me that we are mixing two things here:
That last one, has I think little to do with opam-repos and people can (and do) install packages from many different sources / ways. Going back on the first topic, what do you think of the current setup, do you think it is workable?
I'm unsure When do you exactly support your packages with pre-release versions? |
There are many more concerns here than you're mentioning, such as the support burden of Coq RCs that live on forever and are easy to install (get pulled in) by accident. My main concern is always the combination of
Even if you feel RC pinning is an issue as per above, still the only proposed solution I'd be fine with is the OCaml meta-package-in-other-git-repo one. I think the difference between |
How would that accident happen? Do you have an example? How are these a support burden as compared to the current situation? [Note that I don't care if we require
Yes, current
Works fine for you [the overhead seems already large to me tho, but that's a different issue] But I'm worried about a different use case, when a user for example wants to try a RC version and the corresponding coq-lsp for that version. The current setup seems really bad to me, both as a user and as maintainer. Moreover, it relies on a lot of manual stuff that won't just scale if the archive grows larger. Why should I have to move the
Unless you tell me a bit more about what the support policy of your packages, I can't follow you here. What I've gotten so far is "if user install a RC with command A, then I'm fine, but if they install the RC with command B, then I need to add conflict with all RC versions". Is that what you mean? |
RCs are meant for testing Coq and testing of Coq packages against the RC. It's not for regular users who just want to try some package.
I don't want to deal with any support requests for |
I was not aware of this idea about RCs, when we proposed the current RC system for Coq for sure we had in mind to have these versions tested widely. Nowadays the CI makes that role for non-interactive testing. However, there are quite a few packages such as IDEs or indexers, (or even linters) that can benefit from testing. For
Sure, that makes sense.
It is now possible for users to do that very easily today, so I fail to see how my proposal makes things different, for the users, they are just running a command. Preventing installation of packages together with a Coq RC seems like a really bad thing to me, how are devs and users supposed to test new stuff? Not to say of the overhead you are adding to the maintenance process. Imagine having this kind of restriction for something like OCaml 5... I think your bug reporting system should instead be where the guard is, filter out versions that you don't want to support. |
Then it should super easy for you to convince the OCaml people to drop https://github.com/ocaml/ocaml-beta-repository and allow betas everywhere. Let's make this a necessary but not sufficient condition for our adoption of something similar. |
Sorry if I wasn't clear, I'm very happy with having the extra repos with the enabling package as done in OCaml and in the way you prefer. I was just curious about why you folks considered it an important safeguard; for me, one solution or the other don't make a big difference, so I'm very happy with having |
Actually OCaml upstream is not using the |
We have hundreds of users reporting problems running various parts of the Coq ecosystem across many forums, and the support process usually begins with figuring out how they install Coq and packages. Having only a few ways to install released Coq properly is a crucial way we can limit the support burden. My message from the opam archive has consistently been that the |
No description provided.