-
Notifications
You must be signed in to change notification settings - Fork 428
Release Overview
A new milestone must be created for every release. A date must be set for the milestone, so community is aware of upcoming release. All changes part of the new release must be tagged with the milestone. This allows community to know scope of change for the new release.
Anyone can track release progress using the milestone page for the project. We welcome community recommendations for scope of new milestone.
Once all issues in scope of a milestone are completed, a new release must be created.
Before creating a new release, we must perform following sanity checks:
- Latest commit in main branch has no failing test
- Documentation for project is up-to-date
Assume we are going to release version X.Y.Z (X, Y and Z follows semantic versioning). After ensuring pre-release checks are okay, we go ahead and perform following actions
- Update CHANGELOG file
- Create release brach from main branch with name release-X.Y.Z
- Locally check out release branch
- Create an annotated tag for new release using
git tag -a vX.Y.Z -m vX.Y.Z
- Push the annotated tag to Github
git push origin vX.Y.Z
(assumed origin is Github)
Pushing a new tag to Github triggers release action for the project (check workflow configuration for more details). Annotated tag is used to capture version information as part of build process (check Makefile
for details)
A draft release should be created for vX.Y.Z. Please wait for 4-5 mins for release artefacts to be created. Once created, they will be available as assets in draft release.
- Modify draft release and populate it with release notes. Every PR part of new release, since last release, must be mentioned here with a small note
- Once release notes are prepared, publish the release
Yay! We have a new release out for the project.
- Create a placeholder milestone for the next release
Let the community know about the new release. If there are any communication channels for community announcements, make use of it. Gather feedback from community about release. We can now plan scope for next release.