#cargo #cargo-subcommand #version #process #workspace #tags #commit

bin+lib cargo-release

Cargo subcommand for you to smooth your release process

126 releases

0.25.10 Jun 21, 2024
0.25.8 May 29, 2024
0.25.6 Feb 27, 2024
0.25.1 Dec 27, 2023
0.2.1 Mar 17, 2016

#25 in Cargo plugins

Download history 797/week @ 2024-03-30 776/week @ 2024-04-06 773/week @ 2024-04-13 967/week @ 2024-04-20 1234/week @ 2024-04-27 746/week @ 2024-05-04 796/week @ 2024-05-11 1077/week @ 2024-05-18 1118/week @ 2024-05-25 1340/week @ 2024-06-01 1779/week @ 2024-06-08 1528/week @ 2024-06-15 1287/week @ 2024-06-22 1207/week @ 2024-06-29 855/week @ 2024-07-06 897/week @ 2024-07-13

4,654 downloads per month
Used in 17 crates


5.5K SLoC

cargo release


  • Ensure you are in a good state for release, including:
    • Right branch
    • Up-to-date with remote
    • Clean tree
  • Supports workspaces using cargo's native flags, like --workspace, --exclude and --package
    • Updates dependent crates in workspace when changing version
    • Change detection to help guide in what crates might not need a release
    • Optionally share commits
  • Handles cargo publish, tagging, and pushing
  • Pre-release search and replace for custom version updates, including
  • Pre-release hook for extra customization, including


Current release: 0.25.10

$ cargo install cargo-release


$ cargo release [level]
  • See the reference for more on level, other CLI arguments, and configuration file format.
  • See also the FAQ for help in figuring out how to adapt cargo-release to your workflow.


  • Your project should be managed by git.

Dry run

By default, cargo-release runs in dry-run mode so you can safely run it and verify what it will do.

  • Increase the logging level with each additional -v to get more details
  • Speed up dry-run by skipping cargo-publishs verify step with --no-verify

Once you are ready, pass the --execute flag.

Semver Compatibility

cargo-release's versioning tracks compatibility for the binaries, not the API. We upload to crates.io to distribute the binary. If using this as a library, be sure to pin the version with a = version requirement operator.


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


~794K SLoC