-
Notifications
You must be signed in to change notification settings - Fork 153
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 upgrade should default to --skip-compatible #552
Comments
Been thinking about this more and I think it makes sense to make it the default. The main question is how to present that to the user. When looking at the behavior of Another challenge is we also want to preserve the precision but |
Based on the feedback, I'm considering reverting this. If I understood a comment from the Issue's author, it sounds like they've changed their mind
|
As part of feedback on `cargo-upgrade` being merged into `cargo`, we are looking into how we can make `upgrade` fit into `update` or be a direct replacement for `update`. In doing so, the "skip compatible by default" workflow doesn't quite fit the same. Similarly, manifests, in theory, will always match the lock file, so there will be less of a reason to upgrade the manifests only. We'll need to re-open killercup#552 and killercup#297 until we figure out how we want to handle this.
See #786 |
As a reviewer of application PRs, I would dislike PRs that mix incompatible updates and compatible updates to (I personally don't see it make sense to deprecate |
Could you add this to the thread?
In general, we've been running into limitations with compatibility. Simple cargo-upgrade operations are becoming a soup of cargo-update flags ( So we're having to balance the ecosystem churn with usability and workflows. |
For library crates, updating all dependency requirements in
Cargo.toml
to the latest semver-compatible versions is harmful to the ecosystem, as this makes it harder to resolve versions in case of for example yanking. I was already using--skip-compatible
for my project, but just noticed that another library crate usedcargo upgrade
to force dependency upgrades this way, making it impossible to use the latest version of that crate after the latest futures version was yanked.The text was updated successfully, but these errors were encountered: