Open
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 for
cargo update --breaking only-compatible renamed non-semver-operator transitive-dep
- Test cases for
-
--precise <breaking>
- Call for testing
- Stabilization
- Add
- 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
- budler calls it
- pnpm calls it
--latest
because of a "latest" tag
Notes
Related