Bump targets
Bumping non-Node projects and keeping extra files in sync.
No package.json? VerBump reads the current version from your latest matching
git tag. Point --source at another manifest, or keep any JSON / TOML / YAML /
text file in lock-step with the tag via --bump.
Non-Node repos
Rust, Python, Go, anything SemVer works out of the box. If there is no version
file, VerBump reads the current version from your latest matching git tag,
runs the same Conventional-Commit suggestion machinery, and cuts a CHANGELOG
and tag release (skipping the commit when there is nothing to commit). Keep a
JSON manifest like composer.json? Point --source at it (or set
SOURCE_FILE in .verbumprc) and it becomes both the version source and the
file that gets bumped.
Bumping stack-specific files
Keep the version in a pyproject.toml, a Go const, a Helm Chart.yaml, or
any text file in lock-step with the tag via --bump (repeatable), or declare
the targets once in .verbumprc as BUMP_FILES:
# Text pattern — no extra tool; rewrites only the matching line.
# Works for a Go const, a Python __version__, a Makefile, a Dockerfile, …
verbump --bump 'main.go:Version = "{{version}}"'
verbump --bump 'src/mypkg/__init__.py:__version__ = "{{version}}"'
# Structured dotted path — JSON via jq (built in), TOML/YAML via the
# jq-based yq suite (tomlq / yq) when installed.
verbump --bump pyproject.toml:@project.version --bump Chart.yaml:@versionOr declare them once (newline-separated) — every run keeps them in sync:
# .verbumprc
BUMP_FILES="main.go:Version = \"{{version}}\"
src/mypkg/__init__.py:__version__ = \"{{version}}\"
pyproject.toml:@project.version
Chart.yaml:@version"Match your file's exact quoting and spacing, because the pattern is a
literal search. __version__='1.2.3' (single quotes, no spaces) needs
--bump "…/__init__.py:__version__='{{version}}'".
A bare --bump <file> bumps the file's top-level .version
(JSON/TOML/YAML). @<path> targets any dotted key, including a nested one
that the JSON .version default can't reach. A {{version}} text pattern
covers everything else with no dependency. Same-version and missing files are
skipped with a notice, and every change is staged and listed in the bump
commit.