On a release, all modules will be tagged with the same version. We use multimod
for releases.
As a prerequisite, run make install-tools
to ensure the necessary tooling is available.
To make a new release, follow these steps:
- Make sure CI passes on main and there are no release blockers.
- Choose the new version number,
${VERSION}
. We follow semantic versioning and are currently doingv0.x.y
releases. - Checkout to a new branch.
- Update the version number on
versions.yaml
and commit the changes. - Run
chloggen update -v ${VERSION}
to update the changelog and commit the changes. - Run
make prerelease
and checkout to the branch created by this step. Open a PR tomain
from this branch and get it merged. - Checkout and pull the main branch locally. Run
git show HEAD
and make sure that it points to the commit from the previously merged PR. - Run
make push-tags
to push the tags. - Check that the new version is available on the Github repository.
If something goes wrong, it is important that you do not remove or modify a tag once it has been pushed to Github.
Instead, follow these steps:
- Add a
retract
directive to all affectedgo.mod
files, open a PR and commit it. - Fix the issue(s) in the release and commit the changes.
- Follow the usual release process.
This will make tooling and bots ignore the retracted version. If a project has already updated to the new version, you may want to notify them directly.