Releasing the Promscale extension
August 31, 2022 ยท View on GitHub
The following are step-by-step instructions for releasing the Promscale extension.
Create an issue to track the release
Create a new issue titled "Release <version to be released here>". Copy everything below this line into that issue, and use it to keep track of the release tasks.
Pre-release
- Create a git branch named
pre-release-x.x.x - Ensure
upgradeable_fromintemplates/promscale.controlcontains the previously released version. - Update
CHANGELOG.mdwith release version and date, ensuring that all relevant changes are reflected. - Update the version in all places with
./update-version.sh <version-here> - Freeze any new incremental sql scripts released in this version in
incremental_freeze_test - Create a PR from the
pre-release-x.x.xbranch. Get it approved. Merge the PR to master.
Release
- Create a tag on the master branch
git tag <new version> - Push the tag
git push origin <new version> - CI will trigger and create a draft release with assets attached.
- Prepare extension release notes, share with team asking for feedback.
- Attach release notes to draft release created above.
- Wait for CI to generate the packages files
- Create a PR to update the HA image in timescaledb-docker-ha. EXAMPLE
- In the timescaledb-docker-ha repo, update
TIMESCALE_PROMSCALE_EXTENSIONSin theMakefileto include the version just released - Update the CHANGELOG entry in the timescaledb-docker-ha repo and wait for the CI to complete and request review from the Cloud team and merge it when approved.
- Create a new PR in the timescaledb-docker-ha repo. Stamp the version in the CHANGELOG. Merge it with master and push the correct tag to trigger CI (see instructions in the repo) EXAMPLE
- Publish the GitHub release on the promscale_extension repo.
Post-Release
- Create a new git branch named
post-release-x.x.x - Run
make post-releasewhich will generate thesql/promscale--x.x.x.sqlfile of the version just released and create all the upgrade path sql files. - Add and commit the newly created sql files to git. They are ignored by default. e.g.
git add sql/*--0.5.5.sql --force - Determine the development version (determined by bumping the patch version and appending
-dev) - Set the version in all places necessary with
./update-version.sh <develop-version> - Update
upgradeable_fromin templates/promscale.control to add the previously released version - Update
e2e/tests/config/mod.rsto refer to the new docker images - Create a PR and get it merged
- Bump the version in the promscale repo's
EXTENSION_VERSIONfile to the version just released (Renovate should automatically create a PR for this).