How to release

This is documenting the release & deployment process.

We’re using semantic versioning where major.minor.patch should be set accordingly.

VERSION=major.minor.patch

Start the release

git checkout -b release/$VERSION

Now update the setup.py version to match the new release version.

sed --regexp-extended 's/"version": "(.+)"/"version": "'$VERSION'"/' --in-place setup.py

Then commit/push and create a pull request targeting the main branch.

git commit -a -m ":bookmark: $VERSION"
git push origin release/$VERSION

Once the pull requests is approved/merged, tag the main branch with the version. In the case of a sole owner, no pull request is required, but at least verify the CI builds green.

git checkout main
git pull
git tag -a $VERSION -m ":bookmark: $VERSION"
git push --tags

Publish to PyPI

This process is handled automatically by GitHub Actions. If needed below are the instructions to perform it manually. Build it:

make release/build

Check archive content:

tar -tvf dist/edilkamin-*.tar.gz

Upload:

make release/upload

Release notes

You may want to add some GitHub release notes, by attaching a release to the newly pushed tag.