Skip to content
This repository has been archived by the owner on Apr 2, 2024. It is now read-only.
Vineeth Pothulapati edited this page May 9, 2022 · 55 revisions

Release checklist

Table of contents

Step-by-step release process

Prepare release PR

  • Update version and appVersion in deploy/helm-chart/Chart.yml
  • Update Promscale, PromMigrator, and supported promscale_extension versions in pkg/version/version.go
  • (optionally) Update prom-migrator version in build/.goreleaser.yml (2 places)
  • Run ./scripts/generate-deploy-script.sh
  • Finalize CHANGELOG, adding release version and date
  • Commit: git commit -a -m "Prepare for the 0.1.0-alpha.4 release"
  • Create PR & Merge when ready

Prepare git tag

  • git pull the master branch with PR merged && triple check that you have the right commit checked out.
  • tag commit: git tag -a 0.1.0-alpha.1 -m "Release 0.1.0-alpha.1"
  • push tag to main repo (not in fork!) git push origin 0.1.0-alpha.1

Create GitHub release notes

The goreleaser GitHub Action will automatically create a new draft release with the generated binaries, docker images, and a changelog attached. When it is created contact PM to validate if release notes are correct and click green publish button.

(Optional) Update tobs

  • Update chart/Chart.yaml: change version, app-version and dependencies.timescale-prometheus.version
  • Update chart/values.yml: change promscale.image to the appropriate tag.
  • Update version.go
  • Update version in install-cli.sh
  • Run helm dependency update chart/
  • Run bash generate-deploy-script.sh
  • Run cd cli && go mod tidy && cd ..
  • Commit: git commit -a -m "Release 0.1.0-alpha.4"
  • PR, test locally, merge
  • git tag -a 0.1.0-alpha.1 -m "Release 0.1.0-alpha.1" && git push origin 0.1.0-alpha.1

Post-release

  • Update Version and PrevReleaseVersion in pkg/version/version.go to next devel version
  • Commit: git commit -a -m "Prepare for the next development cycle"
  • Create PR & Merge when ready
  • Update in Promscale docs to point to the latest release as done in this PR

Take a breath. You're done releasing.

Release notes guide

Here are a couple of good examples of release notes which can be used for comparison:

The following sections describe the different aspects of the release which should be highlighted.

Headline Features

Describe the major features of this release. Point to announcements or blog posts for reference.

Thanks

It's nice to shout out to community members who've contributed some changes. Use the following to find all authors (and then figure out who are internal and external on your own):

git shortlog --summary --numbered --email <PREV_RELEASE>..<CURRENT_RELEASE>

Deprecations

Highlight functionality which has been deprecated in this release, and give and indication of when users can expect that the deprecated functionality will be removed.

Backwards-incompatible changes

Highlight functionality which has been removed in this release, and point out the alternatives (if present).

Upgrade notes

Provide any notes on special steps that users must take during the upgrade, e.g. configuration changes which must (or can) be made.

Changelog

This will be automatically populated by goreleaser. Remove all bors merge commits and dependabot version bump commits.

Clone this wiki locally