This document describes the guidelines for releasing new versions of the library. We follow semantic versioning, which means our version numbers have three parts: MAJOR.MINOR.PATCH.
- MAJOR version when you make incompatible API changes
- MINOR version when you add functionality in a backwards-compatible manner
- PATCH version when you make backwards-compatible bug fixes
Install the bump-my-version package:
` pip install --upgrade bump-my-version `
Create a new branch for the release from dev branch:
` git checkout -b release/x.y.z `
Update the version number using the bump-my-version command:
` bump-my-version bump path `
or` bump-my-version bump minor `
or` bump-my-version bump major `
Commit the changes with the following message and push the changes to the release branch:
` git commit -m "Bump version: {current_version} → {new_version}" `
` git push origin release/x.y.z `
Create a pull request from the release branch to the dev branch.
Once the pull request is approved and merged, create a new pull request from the dev branch to the master branch.
Once the pull request is approved and merged, create the tag on the main branch to invoke the package publishing workflow:
` git tag -a x.y.z -m "Release x.y.z" `
` git push origin tag <tag_name> `
- Once the tag is pushed, the package publishing workflow will be triggered and the package will be published to the PyPI.
- Once the package is published, create a new release on GitHub with the tag name and the release notes (generate them automatically).