Skip to content

Release Overview

Shashank Sinha edited this page May 5, 2022 · 2 revisions

Milestone

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.

Pre-release checks

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

Release process

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.

Post-release actions

  • 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.

Clone this wiki locally