GitPedia

Cargo release

Cargo subcommand `release`: everything about releasing a rust crate.

From crate-ci·Updated June 22, 2026·View on GitHub·

`cargo release` extends `cargo publish` with common release practices like validation, version management, tagging, and pushing. The process is customizable but with defaults that should help you get up and running quickly. The project is written primarily in Rust, distributed under the Apache License 2.0 license, first published in 2016. It has gained significant community traction with 1,570 stars and 134 forks on GitHub. Key topics include: cargo, cargo-subcommand, rust.

Latest release: v1.1.2
March 24, 2026View Changelog →

cargo release

Streamline your crate release process

cargo release extends cargo publish with common release practices like
validation, version management, tagging, and pushing.
The process is customizable but with defaults that should help you get up and running quickly.

Features include:

  • 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

Install

Current release: 1.1.2

console
$ cargo install cargo-release

Usage

console
$ cargo release [level] <dry-run output> $ cargo release [level] --execute
  • 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.

Prerequisite

  • 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.

Note: the packaging and verifying steps will list the current version and not
the bumped version because cargo release delegates to cargo publish which
does not know about the in-memory-only version bump (#890).

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.

License

Licensed under either of

at your option.

Contribution

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.

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from crate-ci/cargo-release via the GitHub API.Last fetched: 6/27/2026