Bump version by modifying source code. No regex needed from user.


Keywords
bump, version
License
MIT
Install
pip install jiggle-version==1.1.0

Documentation

jiggle_version

Version bumper that finds version numbers in source code and increases the build number by modifying source.

With jiggle-version, the source code is authoritative, as compared to some tools where the source control tag is authoritative, or the pyproject.toml is authoritative.

This tool was written before pyproject.toml was a well-supported standard. You should consider instead using poetry version patch and looking up the __version__ from the package metadata and not storing the version anywhere in source code.

Special attention to making sure you don't have to write regex or do complex configuration.

# This is just a command line tool, keep your venv clean using pipx
pipx install jiggle-version
 
# bump version
jiggle-version here

# bump version of specific module
jiggle_version here --module=my_module

# just find version
git --tag $(jiggle-version find)

Badges

Libraries.io dependency status for latest release Downloads

Coverage Status CodeFactor

Python Versions Supported

3.6, 3.7, 3.8, and forward. Pypi still hosts the old version that supported python 2 and earlier.

Opinionated

A library should have one working, no-options, no questions asked scenario, e.g.

jiggle-version here
# find, bump & update version strings in source code

An opinionated library has an opinion about the right way to do it. That said, if the library can discover existing conventions, it should discover them and use them. If you don't like it, see the end for competing opinionated libraries and their philosophy, such as vcs-tag-only, regex-more-regex-all-day-regex.

The following constraints enable "drop in and go"

No Config, No Regex

If the config is more complex than re-writing the code from scratch, there is something wrong with a library. Forcing the developer to write regex to use a utility is a colossal cop-out.

Security

Jiggle version will not execute python code other than ast.literal_eval. Some package versions stored in source code can only be handled by executing setup.py or executing the file with dunder version. Those scenarios are not handled.

Documentation