Skip to content

How to Release

Srishti Thakkar edited this page May 11, 2022 · 6 revisions

This repository comprises the following different components, each of which will be maintained and released separately. The components are

  • Pravega Operator
  • Pravega
  • Bookkeeper Operator
  • Bookkeeper
  • Zookeeper Operator
  • Zookeeper

This document contains all steps that need to be followed if you are willing to release a new version of the charts for any of the above components.

Steps to Release the charts for a given component

Assuming for the sake of the example that you want to release the charts for the bookkeeper-operator where the version of the charts is 0.2.0. In order to do that, the following steps would need to be followed

Step 1. Verify the Chart Version

The value for the field appVersion within the Chart.yaml file reflects the correct version of the image that this chart would help install. If the changes being published include a change in the appVersion field, the MAJOR version should be incremented and PATCH version should be reset for the version field within the Chart.yaml file.

The following points need to be kept in mind while versioning the charts

  • The chart version should follow semantic versioning
  • Any breaking (backwards incompatible) changes to a chart should bump up the MAJOR version
  • A change to the appVersion should bump up the MINOR version
  • Any bug fixes to the charts for a given appVersion should bump up the PATCH version

Also ensure that the fields are correctly updated in the chart README.

Step 2. Create a release on GitHub

On the GitHub repository page, go to releases and create a new draft. On the draft:

  • Create a new tag corresponding to the release
    Fill out the tag field and name it in accordance to the component being released and the version of the chart, for eg. in our case, the tag would be named as bookkeeper-operator-0.2.0
  • Do not check the pre-release box

Step 3. Prepare the release notes

Create a release notes text file containing the following

  • Some introductory text, highlighting the important changes going in the release.
  • A full list of commits that you can get with the following command. Add the list to the release notes file and attach it the notes box in the release draft.
    git log <commit-id-of-last-release>..<current-commit-id>

Step 4. Publishing

Once this is all done, publish the release by clicking on the Publish release button on the draft page.

Step 5. Build the artifacts

Clone this repository, checkout to master branch and then run the following command to create the packaged charts in a temporary placeholder. For the sake of the demonstration, let us assume that this placeholder is the folder ~/tmp/ which would have been created beforehand

helm package charts/bookkeeper-operator --destination ~/tmp/

This would create the file bookkeeper-operator-0.2.0.tgz

Step 6. Publish the artifacts

This includes pushing the packaged charts to the gh-pages branch, which can be done by executing the following commands

git checkout gh-pages 
cp ~/tmp/bookkeeper-operator-0.2.0.tgz .
helm repo index .
git add .
git commit -s -m "Publishing bookkeeper-operator-0.2.0 charts"
git push origin gh-pages

Step 7. Bump up the Chart Version

Create a pull request to bump up the version field within the Chart.yaml file of the bookkeeper-operator by incrementing the PATCH version. Merge this change to the master.