📚 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.
- No more global
pipinstalls! Easy to install viabrew,cargo, or precompiled static binary. - Fully compatible with your existing configuration:
pyproject.toml.bumpversion.toml.bumpversion.cfgsetup.cfgCargo.toml(planned)
# 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-cliYou 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 patchBumping 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.
cargo run -- --dir ../dir/to/a/repo/with/.bumpversion.toml --verbose --dry-run patch