Release a eventyay version

You are a eventyay maintainer and want to release a new version? Hold on to your fancy hat or your favourite socks, here we go!

Boarding checks

  1. Are the translation files up to date?

  2. Are there pending checks for bad translations on Weblate?

  3. Are there pending translations from Weblate? Merge them.

  4. Are all locales with more than 75% coverage included in the release?

  5. Update the translation percentages from translate.Eventyay.com.

  6. If new translations were added, add new calendar locales (you have to download the release archive) and extract the locales from there), and make sure that flags (in input fields) for the new locale are shown.

  7. Are there warnings about missing migrations?

  8. Any blockers to see in our issues?

  9. Are there any TODOs that you have to resolve?

  10. Are there any @pytest.mark.xfail that you have to resolve?

  11. Are the Release Notes well-phrased and complete?

  12. Are there open pull requests that you should merge?

  13. Are all tests passing in CI?

  14. Have you written (and not pushed) a blog post? It should contain at least major features and all contributors involved in the release.

System checks

  1. Deploy the release-ready commit to an instance. Check if the upgrade and the instance works.

  2. Clean clone: git clone git@github.com:eventyay/eventyay eventyay-release && cd eventyay-release

  3. Set up your environment: mkvirtualenv eventyay-release && pip install -e . check-manifest twine wheel

  4. Run check-manifest locally.

Take-off and landing

  1. Bump version in app/eventyay/__init__.py.

  2. Add the release to the Release Notes.

  3. Make a release commit: RELEASE=vx.y.z; git commit -am "Release $RELEASE" && git tag -m "Release $RELEASE" $RELEASE

  4. Build a new release: rm -rf dist/ build/ eventyay.egg-info && python -m build -n

  5. Upload the release: twine upload dist/eventyay-*

  6. Push the release: git push

  7. Install/update the package somewhere.

  8. Publish the blog post.

  9. Add the release on GitHub (upload the archive you uploaded to PyPI, and add a link to the correct section of the Release Notes)

  10. Upgrade the docker repository to the current commit and tag the commit as vx.y.z.

  11. Increment version number to version+1.dev0 in app/eventyay/__init__.py.

  12. rm -rf eventyay-release && deactivate && rmvirtualenv eventyay-release

  13. Update version numbers in update checker (versions.py) and deploy.

  14. Update any plugins waiting for the new release.

  15. Check if the docker image build was successful.

  16. Post about the release on chaos.social, Twitter and LinkedIn.

  17. Notify interested parties (e.g. big self-hosted instances, prominent plugin developers) about the release.