Continuous Integration of the Project#

This project builds on the Python Project template (template) by Joao M. C. Teixeira. You can find more details on the project structure in its public repository. Below, I present the versioning scheme that follows the Semantic Versioning 2.

Every time a Pull Request is merged to main branch, the deployment workflow triggers. This action bumps the new version number according to the merge commit message, creates a new GitHub tag for that commit, and publishes in PyPI the new software version.

If the Pull Request merge commit starts with [MAJOR], a major version increase takes place (attention to the rules of SV2!), if a PR merge commit message starts with [FEATURE] it triggers a minor update. Finally, if the commit message as not special tag, a patch update is triggered. Whether to trigger a major, minor, or patch update concern mainly the main repository maintainer.

This whole workflow can be deactivate if the commit to the main branch starts with [SKIP].

In conclusion, every commit to main without the [SKIP] tag will be followed by a version upgrade, new tag, new commit to main and consequent release to PyPI. You have a visual representation of the commit workflow in the Network plot.