-
Notifications
You must be signed in to change notification settings - Fork 41
Release process
Juho Inkinen edited this page Apr 25, 2024
·
26 revisions
How to make a new release of Annif.
- Check that the
main
branch is in shape for a new release - tests are passing, no serious open issues etc. - Make sure your local
main
branch is up to date w.r.t. GitHub:git checkout main; git pull
- Activate the virtual environment with
poetry shell
if you haven't already - Update the release-date in CITATION.cff:
sed -ri "s/date-released\:\s[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}/date-released: $(date '+%Y-%m-%d')/g" CITATION.cff; git diff CITATION.cff
and commit:git commit -m "Update release-date" CITATION.cff
- Make a new version with bumpversion:
bumpversion release
- Check with
git show
that the new version number matches your expectations (and thatrequires = ["poetry-core>=x]
has not been inadvertently modified). - Push the commit to GitHub:
git push
- If you have prevented pushes to main branch by
git config branch.main.pushRemote no_push
, undo the prevention bygit config branch.main.pushRemote origin
- If you have prevented pushes to main branch by
- Push the version tag too:
git push --tags
- Wait for GitHub Actions jobs to complete. The version tag should trigger a distribution build that is uploaded to PyPI.
- In GitHub Releases tab, turn the tag into a release and add release notes. This should trigger archiving on Zenodo.
- Close the milestone corresponding to the release (and create a new one for the next release).
- Update the wiki documentation to match features of the new release (e.g. new or updated backends) and check that API documentation has been correctly updated (updating should happen on all commits to
main
). - Announce the release on annif-users and other channels (e.g. twitter)
- Create a blog post (in Finnish) in the Finto wiki about the new release (make sure to include at least the label
finto
, preferably alsofintoai
) - Announce the release on @Fintopalvelu twitter, with a link to the blog post
- Post the announcement to the mailing lists
finto-tiedotus
andautomaattinen-kuvailu
(make sure the message is not held up in moderation) - Prepare the
main
branch for the next development release with bumpversion:bumpversion --no-tag minor
(this should increment the second part of the version number and add a-dev
suffix, but not create a new tag, as it would create confusion e.g. on PyPI) - Check with
git log
that the new version number matches your expectations. - Push the commit to GitHub:
git push
- Checkout the previous release tag, e.g.
git checkout v0.54.0
- Create and checkout a new branch for the new release, e.g.
git checkout -b release-0.54.1
- Include the wanted changes to the branch by cherry-picking commits or merging branches.
- Update the release-date in CITATION.cff as in step 4 of normal release.
- Make a new patch version with bumpversion: the new version needs to be set manually, e.g.:
bumpversion --new-version 0.54.1 patch
. - Follow the normal release process from step 6 as needed.
- If necessary, change the GitHub milestones of the PRs included in this patch to point to the correct minor version (in case the milestones have originally been set to next minor release, e.g. 0.55).
- Home
- Getting started
- System requirements
- Optional features and dependencies
- Usage with Docker
- Architecture
- Commands
- Web user interface
- REST API
- Corpus formats
- Project configuration
- Analyzers
- Transforms
- Language detection
- Hugging Face Hub integration
- Achieving good results
- Reusing preprocessed training data
- Running as a WSGI service
- Backward compatibility between Annif releases
- Backends
- Development flow, branches and tags
- Release process
- Creating a new backend