Bump'X is a version bumper and releaser forked from Bump'R. In a single CLI command, Bump'X can:
- Clean-up release artifact
- Bump version and tag it
- Build a source distribution and upload on PyPI
- Update version for a new development cycle
Bump'X intend to be customizable with the following features:
- Optional test suite run before bump
- Customizable with a config file
- Overridable by command line
- Extensible with hooks
Bump'X requires Python >=3.9
(and <4.0
).
Bump'X also requires that you have git CLI and GitHub CLI installed on your system.
You can install Bump'X with pip:
pip install bumpx
You can use directly the command line to setup every parameter:
bumpx fake/__init__.py README.rst -M -ps dev
But Bump'X is designed to work with a configuration file (bumpr.rc
by defaults).
Some features are only availables with the configuration file like:
- commit message customization
- hooks configuration
- multiline test, clean and publish commands
Here's an exemple:
[bumpx]
file = fake/__init__.py
vcs = git
forge = github
tests = tox
publish = python setup.py sdist register upload
clean =
python setup.py clean
rm -rf *egg-info build dist
files = README.rst
[bump]
unsuffix = true
message = Bump version {version}
[prepare]
suffix = dev
message = Prepare version {version} for next development cycle
[changelog]
file = CHANGELOG.rst
bump = {version} ({date:%Y-%m-%d})
prepare = In development
[readthedoc]
id = fake
This way you only have to specify which part you want to bump on the command line:
bumpx -M # Bump the major
bumpx # Bump the default part aka. patch
If you use GitHub as a forge and publish release on it, you might have to specify which origin should be used to publish the releases, with:
gh repo set-default
The documentation for the upstream project Bump'X is hosted on Read the Docs: