Tool for managing SemVer versioning of a project.

python, project-management, semantic-versioning, cross-language, newsfile, autoversion
pip install pyautoversion==2.0.1



Cross-language tool written in Python to automatically version projects using SemVer


PyPI version

Getting started

  1. install auto_version
pipenv install pyautoversion
  1. run auto_version --config=desired/config/path
    • desired/config/path: path to a configuration file in toml format. If the file does not exist, it will be created with defaults.
  2. adjust the configuration as necessary. in particular, set targets to a list of files in your project that contain variables for the tool to update.
    • fields under key_aliases map from your project to auto_version; values on the left are the variable names exactly as they appear in your project files.
  3. run auto_version --config=desired/config/path to have the tool print out the currently detected version. You may need to readjust the config.
  4. run auto_version --config=desired/config/path --bump=patch -vv to try an initial version increment, and view details on the updates the tool has applied. Check your target files, and if they are as you'd expect then you're good to go.


For more details about how to use the tool, have a look at the usage page

usage: auto_version [-h] [--show]
                    [--bump {major,minor,patch,prerelease,build}] [--news]
                    [--print-file-triggers] [--set SET]
                    [--commit-count-as {major,minor,patch,prerelease,build}]
                    [--lock] [--release] [--version]
                    [--persist-from {vcs,vcs-latest,source}]
                    [--persist-to {vcs,source}] [--config CONFIG] [-v]

auto version v1.2.0: a tool to control version numbers

optional arguments:
  -h, --help            show this help message and exit
  --show, --dry-run     Don't write anything to disk or vcs.
  --bump {major,minor,patch,prerelease,build}
                        Bumps the specified part of SemVer string. Use this
                        locally to correctly modify the version file.
  --news, --file-triggers
                        Detects need to bump based on presence of files (as
                        specified in config).
                        Prints a newline separated list of files detected as
                        bump triggers.
  --set SET             Set the SemVer string. Use this locally to set the
                        project version explicitly.
  --commit-count-as {major,minor,patch,prerelease,build}
                        Use the commit count to set the value of the specified
  --lock                Locks the SemVer string. Lock will remain for another
                        call to autoversion before being cleared.
  --release             Marks as a release build, which flags the build as
  --version             Prints the version of auto_version itself (self-
  --persist-from {vcs,vcs-latest,source}
                        Where the current version is stored. Looks for each
                        source in order. (default: source files)
  --persist-to {vcs,source}
                        Where the new version is stored. This could be in
                        multiple places at once. (default: source files)
  --config CONFIG       Configuration file path. (default:
                        C:\Users\adrcab01\OneDrive -
  -v, --verbosity       increase output verbosity. can be specified multiple