Skip to content
This repository has been archived by the owner on May 6, 2022. It is now read-only.

Release Process

Mateusz Szostok edited this page Sep 16, 2019 · 33 revisions

This document is for core maintainers who will release a new version of the service catalog. Releases are listed on the milestones page.

The step-by-step instructions below should be followed to release a new version of service-catalog.

Before Creating the Release

  1. Ensure that all PRs in the milestone are merged, or move them out to the next appropriate open milestone
  2. Ensure that all issues in the milestone are closed or moved, as appropriate. Any open issues not automatically closed by PRs in the milestone should be manually closed with an explanatory comment

Creating the Release

  1. Close the milestone that will be released. And create a new milestone for the next release, if appropriate.
  2. Submit a single pull request to do all of the following:
    1. Updates all documentation (i.e. chart README for catalog and ups-broker and test-broker to reference the new tagged images you are about to create
    2. Updates all Helm chart values to reference the new tagged images you are about to create (i.e. the values.yaml in the catalog chart and ups-broker chart) and test-broker.
    3. Update the chart version in the Chart.yaml
    4. After that PR passes CI, you can merge it w/o review
  3. Create a new GitHub release
    1. Use v$MILESTONE as the tag name (for example, if the milestone is 0.0.1, the tag name should be v0.0.1)
    2. Reference the commit of the PR you just merged (not master) as the "Target"
    3. In the notes for the release you can include a list of key PRs that have been merged. The github query to get the list of commits, which also shows the PRs, looks similar to this: https://github.com/kubernetes-incubator/service-catalog/compare/v0.0.15...master Just replace "v0.0.15" with the name of the previous release. A similar local command to get the first line message text of those commits is git log --pretty=format:%s HEAD...v0.1.9 | tail -r
    4. Add links to binaries the release notes for svcat
    VERSION=v0.1.20
    macOS: https://download.svcat.sh/cli/${VERSION}/darwin/amd64/svcat
    Windows: https://download.svcat.sh/cli/${VERSION}/windows/amd64/svcat.exe
    Linux: https://download.svcat.sh/cli/${VERSION}/linux/amd64/svcat
    
  4. Travis will automatically build and push Docker images to our quay.io repository with the newly released Git tag.
#!/bin/sh
# from mhb
# cargo install fastmod
# cargo install semver-binary
# get the tags
# get the last tag by approx semver
# cut off the 'v' at the beginning 
PREV_VERSION=$(git tag --sort=version:refname | tail -n 1 | cut --characters=2- )
VERSION=$(semver-binary -p ${PREV_VERSION})
fastmod --accept-all --dir charts -e md,yaml ${PREV_VERSION} ${VERSION}
# print out the release notes
echo '# SVCat Binaries'
echo macOS: https://download.svcat.sh/cli/v${VERSION}/darwin/amd64/svcat
echo Windows: https://download.svcat.sh/cli/v${VERSION}/windows/amd64/svcat.exe
echo Linux: https://download.svcat.sh/cli/v${VERSION}/linux/amd64/svcat
echo '# Changes'
git log --pretty=format:%s HEAD...v${PREV_VERSION} | sed '$ a \' | tac

After Creating the Release

Email the release notes out to the mailing list

Clone this wiki locally