Skip to content

Repository files navigation

bumpversion

build status test status dependency status docs.rs crates.io

📚 Documentation: romnn.github.io/bumpversion

This is an improved version of the popular callowayproject/bump-my-version (formerly peritus/bumpversion and c4urself/bump2version) written in Rust.

Features

  • No more global pip installs! Easy to install via brew, cargo, or precompiled static binary.
  • Fully compatible with your existing configuration:
    • pyproject.toml
    • .bumpversion.toml
    • .bumpversion.cfg
    • setup.cfg
    • Cargo.toml (planned)

Installation

# will install `bumpversion` binary
brew install --cask romnn/tap/bumpversion

# will install `cargo-bumpversion` binary (to be used as `cargo bumpversion` subcommand)
brew install --cask romnn/tap/cargo-bumpversion

# or install from source (will install both `cargo-bumpversion` and `bumpversion` binaries)
cargo install --locked bumpversion-cli

CLI usage

You can use this as a drop-in replacement for the Python bumpversion, bump2version, or bump-my-version.

# Show every change a patch release would make, without making it
bumpversion --dry-run --verbose patch

# Do it: rewrite the files, commit, tag
bumpversion patch

Rust projects

Bumping the version in Cargo.toml leaves Cargo.lock stale. A pre-commit hook refreshes it, and additional_files carries it into the same release commit:

[tool.bumpversion]
current_version = "1.4.2"
commit = true
tag = true

pre_commit_hooks = ["cargo metadata --offline --format-version 1 >/dev/null"]
additional_files = ["Cargo.lock"]

[[tool.bumpversion.files]]
filename = "Cargo.toml"

cargo metadata rewrites the lockfile as a side effect of resolving the workspace. Prefer it over cargo update, which re-resolves every dependency and turns a release into an unreviewed dependency upgrade. The hooks documentation works the pattern through in full.

See the documentation for the configuration reference, the version-scheme model, and hooks.

Development

cargo run -- --dir ../dir/to/a/repo/with/.bumpversion.toml --verbose --dry-run patch

Releases

Used by

Contributors

Languages