How To Release
Only maintainers are allowed to release code. So, if someone did some breaking changes which should be released ask a maintainer to do so.
Making a release is done by a strictly defined process. To help you publishing a release there are some scripts and workflows which do some checks and automation.
Here are the steps you need to perform to make a release.
Make sure all tests pass
Update the WHATSNEW file
Execute the
.make_release.shscript giving the type of release (major/minor/patch)Make a pull request
Switch to the main repository (migros/fotoobo)
Execute the
.tag_release.shscript
.make_release.sh
The script .make_release.sh prepares the repository for the release, does some simple checks and releases the code and its documentation. These are the steps it goes through:
It checks if there are uncommitted changes in the repository
It bumps the version by using
poetry versionIt asks you if the new version is correct
It writes the new version to fotoobo/__init__.py
It commits the changes to the repository
It pushes the repository to the remote
.tag_release.sh
The script .tag_release.sh just creates the release tag. This script has to be run in the main repository migros/fotoobo.
It creates a git tag with the version
It pushes the tag to the repository
The release workflow
Whenever a tag is pushed the release workflows are started.
The create-github-release.yaml workflow creates the release on GitHub.
The publish-to-pypi.yaml workflow publishes the package to the PyPI registry.