Skip to content
This repository has been archived by the owner on Apr 2, 2024. It is now read-only.
James Guthrie edited this page Dec 3, 2021 · 55 revisions

Release checklist

Releasing promscale consists of the following steps:

Prepare and merge release PR

  • Update helm-chart/Chart.yml
  • Update Promscale, PromMigrator, and supported promscale_extension versions in pkg/version/version.go
  • Update prom-migrator and jaeger-query-proxy version in build/.goreleaser.yml (2 places each)
  • Run ./scripts/generate-deploy-script.sh
  • Commit: git commit -a -m "Prepare for the 0.1.0-alpha.4 release"
  • PR & Merge

Prepare git tag

  • git pull the master branch with PR merged && triple check that you have the right commit checked out.
  • tag: git tag -a 0.1.0-alpha.1 -m "Release 0.1.0-alpha.1" && git push origin 0.1.0-alpha.1

Export helm charts

Note: Currently only @cevian can upload the charts to the s3 bucket below.

  • Run helm package helm-chart/
  • Copy helm package into charts dir
  • in charts dir run
    • /usr/local/bin/aws --profile <profile> s3 sync s3://charts.timescale.com .
    • helm repo index .
    • /usr/local/bin/aws --profile <profile> s3 sync --acl public-read . s3://charts.timescale.com

Set GitHub release message

The goreleaser GitHub Action should automatically create a new release, but the release notes need to be updated.

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

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

Headline Features

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

Changelog

Determine the most recent release <PREV_RELEASE> and the current release <CURRENT_RELEASE>, and then run the following git command:

git log --oneline --no-merges --decorate=no <PREV_RELEASE>..<CURRENT_RELEASE>

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.

Docker images

Provide the command to pull the docker images

Template:

  • docker pull timescale/promscale:0.6.0
  • docker pull timescale/promscale:0.6

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"
  • PR & Merge

(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
  • make sure goreleaser action runs (manual run: cd cli && GITHUB_TOKEN=??? goreleaser && cd ..)
  • run helm package chart
  • Copy helm package into charts dir
  • in charts dir run
    • /usr/local/bin/aws --profile <profile> s3 sync s3://charts.timescale.com .
    • helm repo index .
    • /usr/local/bin/aws --profile <profile> s3 sync --acl public-read . s3://charts.timescale.com
Clone this wiki locally