Automatic semantic versioning for python projects. This blogpost explains in more detail.
pip install python-semantic-release
The general idea is to have some sort of tag in commit messages that indicates certain types of changes. If a commit message lack a tag it is ignored. Running release can be run locally or from a CI service.
Usage: semantic-release [OPTIONS] COMMAND
Options:
--major Force major version.
--minor Force minor version.
--patch Force patch version.
--noop No-operations mode, finds the new version number without changing it.
--help Show this message and exit.
version
- Create a new release. Will change the version, commit it and tag it.publish
- Runs version before pushing to git and uploading to pypi.
Add the following to your setup.py and you will be able to run python setup.py <command>
as you woul semantic-release <command>
.
try:
from semantic_release import setup_hook
setup_hook(sys.argv)
except ImportError:
pass
Configuration belong in semantic_release
section of the setup.cfg file in your project.
Details about configuration options can be found in the configuration documentation.