-
Create a new release branch. I.e.
git checkout -b release-X.X.X main
. -
Update the version in
versions.yaml
and commit the change. -
Run the pre-release steps which updates
go.mod
andversion.go
files in modules for the new release.make multimod-prerelease
-
Merge the branch created by
multimod
into your release branch. -
Update
go.mod
andgo.sum
files.make tidy
-
Update CHANGELOG.md with new the new release.
make chlog-update VERSION=<vX.X.X>
-
Push the changes and create a Pull Request on GitHub.
Once the Pull Request with all the version changes has been approved and merged it is time to tag the merged commit.
IMPORTANT: It is critical you use the crrect commit that was pushed in the Pre-Release step! Failure to do so will leave things in a broken state.
IMPORTANT: There is currently no way to remove an incorrectly tagged version of a Go module. It is critical you make sure the version you push upstream is correct. Failure to do so will lead to minor emergencies and tough to work around.
make push-tags REMOTE=<upstream> COMMIT=<hash>
Create a Release for the new <new tag>
on GitHub.
The release body should include all the release notes
for this release taken from CHANGELOG.md.