Releasing¶
Pull requests¶
Pull request titles must follow Conventional Commits, like
fix: honour sslmode or feat(cli): add --foo. The allowed types are feat, perf, fix,
hotfix, bug, docs, test, revert, refactor, ci, build and chore; a ! marks a
breaking change (feat!: ...).
The type sets a label on the pull request, which decides where it appears in the release notes, and which part of the version the next release raises:
| Title type | Label | Release notes | Version |
|---|---|---|---|
feat, perf |
enhancement |
🚀 Features | minor |
fix, hotfix, bug |
bug |
🐛 Bug Fixes | patch |
refactor |
refactor |
🧰 Maintenance | minor |
docs |
documentation |
🧰 Maintenance | patch |
ci, build |
ci |
🧰 Maintenance | patch |
chore, test |
chore, test |
🧰 Maintenance | patch |
revert |
revert |
without a category | patch |
...!:, or BREAKING CHANGE in the description |
breaking |
💥 BREAKING CHANGES | major |
Dependabot pull requests (chore(deps), ci(deps), build(deps), docs(deps)) are listed under
Maintenance as well.
Making a release¶
release-drafter keeps a draft release up to
date with every pull request that is merged into main, with the next version and the release
notes.
To release, review the draft on the releases page and publish it. That starts:
- release.yml
- builds the binaries for Linux (x86_64, ARM64) and macOS (Intel, Apple silicon), and attaches them to the release with their checksums
- builds the container image for
linux/amd64andlinux/arm64on native runners, and pushes it to the GitHub Container Registry (ghcr.io/pgvillage-tools/pg_tps_optimizer) with the version tag andlatest, using theGITHUB_TOKENof the workflow (no secrets needed)
- build-and-publish-docs.yaml: publishes the docs for version
X.Y.x(patch releases update their minor version) and moveslatestto it
Documentation versions¶
The documentation site has a version per minor release (0.3.x, 0.4.x, ...), selectable at the
top of the page; latest is the newest release.
To publish the documentation of a branch before a release, run Build and publish documentation
manually (Actions → Build and publish documentation → Run workflow). It publishes the selected
branch as version dev.