• Stars
    star
    1,305
  • Rank 36,065 (Top 0.8 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created over 8 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

cargo release

Features

  • 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: 0.24.11

$ cargo install cargo-release

Usage

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

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.

Related tools

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

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.