Cross-language tool written in Python to automatically version projects using SemVer
- install
auto_version
pipenv install pyautoversion
- 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.
- 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 toauto_version
; values on the left are the variable names exactly as they appear in your project files.
- fields under
- run
auto_version --config=desired/config/path
to have the tool print out the currently detected version. You may need to readjust the config. - 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).
--print-file-triggers
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
field.
--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
released.
--version Prints the version of auto_version itself (self-
version).
--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 -
Arm\Documents\GitHub\mbed-targets\pyproject.toml).
-v, --verbosity increase output verbosity. can be specified multiple
times