Version file (include/VERSION
) can be updated using the update_version.py script.
The script captures the logic of updating the version file incorporating the common actions and workflow checks.
Use --help
to get the information about actions available as sub-commands:
./utils/update_version.py --help
Some sub-commands have short documentation on their own:
./utils/update_version.py minor --help
All commands return YAML output on success and return non-zero return code on failure.
The status command prints content of the version file as YAML and adds today's date and constructs a version string:
./utils/update_version.py status
Example output:
today: 2022-04-27
year: 2022
major: 3
minor: 2
micro: 0dev
version: 3.2.0dev
Naturally, this also checks that the version if is accessible and fails otherwise.
The status command prints input for Bash eval with --bash
:
eval `./utils/update_version.py status --bash`
echo $VERSION
Let's say we are at the main branch, version 3.2.0dev, and just created a new branch for 3.2 release, so we want to update the minor version on the main branch to the next minor version:
./utils/update_version.py minor
Separately, or as part of other changes, now is the time to commit, so the script suggests a commit message in the output, e.g.:
read:
user_message: Use the provided message for the commit
use:
commit_message: 'version: Start 3.2.0dev'
The commands detect invalid states and report error messages. Continuing in the previous example, an attempt to increase the micro version will fail:
./utils/update_version.py micro
The error message explains the reason, a micro version should be increased only after the release:
Already dev with micro '0dev'. Release first before update.