Cargo Edit Versions Save

A utility for managing cargo dependencies from the command line.

v0.11.4

1 year ago

0.11.4 - 2022-10-06

Features

set-version

  • Modify workspace.package.version and all dependents, when needed

Fixes

set-version

  • Update versions in workspace.dependencies in virtual workspaces
  • Be more consistent with rest of cargo in output

v0.11.3

1 year ago

0.11.3 - 2022-09-28

Fixes

  • Polished help output

v0.11.2

1 year ago

0.11.2 - 2022-09-22

Features

upgrade

  • Upgrade workspace.dependencies (new in Rust 1.64)

v0.11.1

1 year ago

0.11.1 - 2022-09-16

Fixes

  • Changed --compatible, --incompatible, and --pinned from accepting true|false to allow|ignore (with aliases for compatibility
    • While we are still working out how we want to express these options, this at least removes the confusion over --compatible false looking like it is the same as --incompatible.

v0.11.0

1 year ago

0.11.0 - 2022-09-14

This release is another step in our effort to find the appropriate cargo upgrade workflow for merging into cargo.

This new iteration is modeled on the idea "if we started from scratch, what would cargo update look like?". Besides getting us to think outside the box, I hope that we can deprecate cargo update and replace it with cargo upgrade (caution: this has not been passed by the cargo team). We need runtime with the proposed behavior with feedback to see how well the idea works in theory and if it justifies the ecosystem churn of deprecating cargo update.

More concretely, the approach taken in this release is a cargo update-like command that implicitly modifies Cargo.lock.

To this end

  • cargo upgrade now works on the whole workspace exclusively
    • This also resolves confusion over --package, --exclude, and the positional PKGID argument
    • This also removes any UI barriers for supporting workspace inheritance coming in 1.64
  • cargo upgrade -p [email protected] will act as if cargo update -p serde --precise 1.0.100 was performed
  • Compatible versions are upgraded by default
    • Pass --incompatible or --pinned to upgrade to incompatible versions
    • Disable the default with --compatible false
    • See this PR for context on the trade offs

A side benefit of this approach is that users will get an approximation of minimal-version resolution so long as they stay within cargo add and cargo upgrade and commit their Cargo.lock file.

Please include in any feedback:

  • An evaluation of current behavior that takes into account the exiting "care abouts" or any additional we don't have listed yet
  • An evaluation of how existing or new alternatives would better fit the full set of care abouts

Breaking Changes

upgrade

  • Compatible versions are upgraded by default, with opt-out via --compatible false
  • Pinned dependencies will be upgraded to compatible versions when --compatible true, reserving --pinned for incompatible upgrades
  • Incompatible versions require opting in with -i / --incompatible
  • When a version requirement is fully specified, the lock version will modified to use that version
  • Exclusively operate on the workspace
  • The positional argument for selecting dependencies to upgrade has moved to --package <NAME>
  • --package and --exclude now take crate names rather than dependencies names (matters when dependencies are renamed)

Features

upgrade

  • --recursive <true|false> for controlling how the lockfile is updated
  • Update git dependencies

Fixes

upgrade

  • Treat 3.2.x as pinned
  • Update lockfile in offline mode
  • Don't touch the lockfile in dry-run
  • Prefer preserving the original version requirement over compatible version upgrades (in cases where we don't know how to preserve the format)

v0.10.4

1 year ago

0.10.4 - 2022-07-29

Fixes

upgrade

  • Hide "note" column when unused
  • Summarize uninteresting rows by default

v0.10.3

1 year ago

0.10.3 - 2022-07-27

Fixes

upgrade

  • Provide table view of upgrades, like cargo outdated, to raise visibility for why a change isn't made
  • Fix where we didn't respect --offline
  • Fix --to-lockfile to update non-registry version requirements
  • Update lockfile for upgraded requirements
  • Update --help to be consistent with cargo add

rm

  • Update --help to be consistent with cargo add

v0.10.2

1 year ago

0.10.2 - 2022-07-21

Fixes

upgrade

  • Only fail on bad lockfile if --to-lockfile is set

rm

  • Don't duplicate error messages

v0.10.1

1 year ago

What's Changed

Full Changelog: https://github.com/killercup/cargo-edit/compare/v0.10.0...v0.10.1

v0.9.1

1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/killercup/cargo-edit/compare/v0.9.0...v0.9.1