Overview of cargo-release features
mastercargo-release automates the crate release lifecycle with the following capabilities:
Validation
Ensures the repository is in a valid state for release by checking:
- If you are on the correct branch.
- If the local branch is up-to-date with the remote.
- If the git tree is clean.
Workspace Support
Supports workspaces using native cargo flags like --workspace, --exclude, and --package. It automatically:
- Updates dependent crates within the workspace when a version changes.
- Uses change detection to identify which crates actually require a release.
- Optionally shares commits.
Release Automation
- Handles
cargo publish, git tagging, and pushing. - Pre-release search and replace: Allows for custom version updates, such as updating changelogs or updating tags in
Dockerfiles. - Pre-release hooks: Provides hooks for extra customization, such as automated
CHANGELOGgeneration.