-
Notifications
You must be signed in to change notification settings - Fork 168
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
Clarify and check the dependency policy for packages depending on new Rocq packages #3324
Comments
There are also packages depending on rocq-core. |
Yep, there is definitely some leeway. |
Adding two dependency lines is ok I guess, it's exactly the kind of freedom a separated stdlib gives us. Should we advise to use |
Maybe |
@silene @palmskog @gares what do you think? I can write some guidelines in the README based on what we decide here, and link from Rocq 9.0's changelog to give advice to users about porting coq/coq#20168 |
We could also check that a package named |
That seems counterproductive. It would prevent people from switching to Rocq until dependencies out of their control have done so. |
Yes. It is not different from having an explicit dependency on
I think none of the above constraints are useful. The lower bound is redundant; the upper bound is 20 years into the future; and the disabling of The exception, as you mentioned, is |
I agree that we should allow But generally I'm a bit puzzled what the actual proposal is, could you give some small concrete examples of what we might recommend @mattam82? I think our users would need this in any case. |
Well then, then they can't claim they switched to rocq (I mean, they can do it locally but the package manager doesn't provide any way to check it, except maybe with build-only dependencies in the dependencies?). |
I am confused. What is your definition of switching to Rocq? If a project is using |
We agree on that. But in practice, to be able to actually fully build without the coq compat shim, you need all your dependencies to also do so. Sure you could build the dependency with the compat shim, then remove it, but that seems tricky to check. Except maybe if we require the dependency to list the compat shim as a build-only dep? And even then I'm not sure how CI could actually enforce that. And we all know anything not enforced in CI is bound to be rapidly broken. |
Again, if the |
Sure but your assumption is not trivially checkable in the CI. We could have a rule like "don't depend on coq-* except if your build statement is just |
The rule should just be "if your package is named rocq- then don't depend on the compat only packages" |
It seems there is an agreement we should check that nothing depends on the
rocq-prover
package but rather onrocq-runtime/rocq-stdilb
and optionally the compatibility coq packages. Is there such an agreement?If so, we should write as part of linting a check that we don't intoduce such dependencies.
The text was updated successfully, but these errors were encountered: