Making a release
Jelte Fennema-Nio edited this page Jan 26, 2024
·
31 revisions
- Check out the
pgbouncer
andpgbouncer.github.io
repositories next to each other. - Make sure that you can build both pgbouncer and the web site locally.
- Check that Cirrus CI is building successfully.
- Update libusual and uthash if changes are pending.
git submodule update --recursive --remote
- Update the version number in
NEWS.md
andconfigure.ac
- Choose a "funny name" for the release in
NEWS.md
- Add all the changes to the changelog entry
git commit -m 'vX.Y.Z'
- Create a PR
- Wait for reviews
- Update the releasedate in
NEWS.md
- Wait for the CI build to complete and download the release tarball from there. (Use the first job, just for consistency.)
- DO NOT MERGE THE PR YET.
- Copy the release tarball into a new directory under
downloads/files/X.Y.Z
. (This is the canonical location of the release tarball. The GitHub releases feature is secondary.) -
make doc
(This updates_data/downloads.json
,changelog.md
, and other files, and copies over documentation files from thepgbouncer
repository.) - Write a release post in
_posts
. -
git commit -a -m 'vX.Y.Z'
(no tag) - DO NOT PUSH YET
Only continue with these steps if you're happy with all the changes. First double check:
- The release date in the
NEWS.md
file. - The "funny name" in the
NEWS.md
file - The release date in the filename of the release post in
_posts
. - The version numbers everywhere.
If you checked those then continue with the following steps:
- Merge the PR on the code repo using "squash merge". Make sure the commit is called
vX.Y.Z
(without PR number) - In the code repo:
git checkout master
git pull
git tag -am '' pgbouncer_X_Y_Z
git push --tags
- In the website repo:
git push
- Make a GitHub release from the tag. (Copy the already Markdown-formatted part of the changelog from
NEWS.md
. But adjust the line breaks, since GitHub interprets them differently.)- To the release, attach the tarball and also the Windows binary zip files built on CI.
For consistency, announcements should link to the release post on the web site and use the text from the post.