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.

  1. Make sure all tests pass

  2. Update the WHATSNEW file

  3. Execute the .make_release.sh script giving the type of release (major/minor/patch)

  4. Make a pull request

  5. Switch to the main repository (migros/fotoobo)

  6. Execute the .tag_release.sh script

.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:

  1. It checks if there are uncommitted changes in the repository

  2. It bumps the version by using poetry version

  3. It asks you if the new version is correct

  4. It writes the new version to fotoobo/__init__.py

  5. It commits the changes to the repository

  6. 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.

  1. It creates a git tag with the version

  2. It pushes the tag to the repository

The release workflow

Whenever a tag is pushed the release workflows are started.