A way for users to bulk upgrade across incompatible versions (original) (raw)
Navigation Menu
- GitHub Copilot Write better code with AI
- GitHub Models New Manage and compare prompts
- GitHub Advanced Security Find and fix vulnerabilities
- Actions Automate any workflow
- Codespaces Instant dev environments
- Issues Plan and track work
- Code Review Manage code changes
- Discussions Collaborate outside of code
- Code Search Find more, search less
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Appearance settings
Assignees
Description
Problem
A lot of incompatible upgrades have a small enough of breakages that a "upgrade all of my incompatible version requirements" would make it easier to go through this process.
This is currently exposed in the cargo upgrade
command
Proposed Solution
Tasks
- update breaking
- Add cargo update --breaking #13979
* Test cases forcargo update --breaking only-compatible renamed non-semver-operator transitive-dep
--precise <breaking>
- Call for testing
- Stabilization
- Add cargo update --breaking #13979
- fix(update): Clarify meaning of --aggressive as --recursive #12544
- feat(pkgid): Allow incomplete versions when unambigious #12614
- feat(update): Tell users when they are still behind #13372
- fix(update): Make -p more convenient by being positional #12545
- bugs and identified tasks
Deferred
- Modifying version requirements for compatible upgrades
See #12425 (comment)
Previously, https://internals.rust-lang.org/t/feedback-on-cargo-upgrade-to-prepare-it-for-merging/17101/141
Unresolved questions
- Flag name
--breaking
to focus on semver (as this is limited to^
)--incompatible
applies to all version req operators and doesn't have a good short flag (-i
is generally assumed to be "interactive")- Dart calls it --major-versions though we have the issue of "absolute major" (
x.0.0
) and "relative major (also0.x.0
,0.0.x
).
* budler calls it --major - pnpm calls it --latest because of a "latest" tag
Notes
Related
- cargo update should not highlight non-semver-compatible "(latest: v0.23.5)" for indirect dependencies #13908
- A method to update manifest version requirements (like cargo-edit's cargo-upgrade) #10498
Metadata
Metadata
Labels
Development
No branches or pull requests