-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
cargo package --workspace
must support publish = false
#14364
Conversation
Other than that, I think if you also skip putting the |
OK, let's regard this one blocked on #14340. Either the issue gets fixed there, or we fix it here when that one is merged. |
btw how are we skipping the verify step? |
The "verify" step @torhovland is talking about isn't "the" verify step where you test-build the packages. It's the step where we're verifying that the inferred registry is valid for all the packages. |
Thanks for the clarification. I've updated the PR description to try to clarify that. So if I'm understanding the concern, it is that if you depend on a package with imo this seems less of a problem for |
The goal of my suggestion is to replicate the old behavior. There are a few cases, so imagine we have a workspace with
|
☔ The latest upstream changes (presumably #14340) made this pull request unmergeable. Please resolve the merge conflicts. |
I'm not too worried about the exact behavior when a published package depends on an unpublished package that changes state between unpublishable and publishable. That feels like a corner case not worth designing towards. If anything, I think I'd prefer to err on the side of allowing it to be packaged (since the publish state is independent of packaging). We could note it in the issue for consderation when stabilizing. |
Superseded by #14408. |
Fixes #14356.
OK, so the issue can be fixed quite easily. But I'm not sure if it is the correct fix. So in this PR we are simply skipping validating the published-to registry if
publish = false
when inferring what registry to use. But that means we allow any workspace where one of the packages, possibly a crucial dependency, is configured to not get published. So the final, published packages may not work for anybody.Do we need a smarter validation, that only allows this for packages that are not dependencies of other packages that are scheduled to get published?