When a given commit on the
development branch is supposedly ready for release, we go through the following checklist:
- Update the version numbers of each package that's been changed using
git diff release.
- Update the version number of the data format if the data format has been changed.
- Update the version number of the API if the API has been changed.
- Add new release section in the changelog.
scripts/gen-changelog-release-section.hsto add all the version numbers to the changelog.
- Make sure that CI passes.
- Make a release candidate commit.
- Deploy to
testingand wait for the end-to-end tests to pass. If the end-to-end tests don't pass, that means we broke either forward or backward compatibility. In that case we revert testing to the previous release commit and start over with the release checklist.
- Deploy to staging.
- Wait for end-to-end tests to pass again.
- Run the release script to create the appropriate tags
- Make a GitHub release with the contents of the changelog.
- Upload the release-zip with static binaries to the artefacts of the GitHub release
- Double-check that
releasenow all point to the same version.