[[!meta title="Doing Releases"]]
- Validate autobuilds: green recently? updated with all
-Werror
classes that we've eradicated recently? - Stop merging things
- Create a draft "pre-release" "Save draft"
via GitHub's release GUI,
converting ikiwiki release notes to GitHub via the
html2text
pipeline below - File an issue for results of patch testing (and rebasing)
- Manually test that popular [[patches]] apply and build, and perhaps even that their runtime behavior looks right
- 3 people
- 1 with a working PGP key and passphrase and a clean
git
checkout - 2 reviewers so release PRs can be merged immediately (currently these people)
- 1 with a working PGP key and passphrase and a clean
- 15 minutes for the autobuilds to run green
- 1 person with access to Open Build Service (currently these people)
Ensure release notes and CHANGES.md
are in sync (if we're still using both), then:
[[!format sh """ vi Makefile # bump RELEASE_VERSION make release-changes release-copyright git diff make release-commit """]]
Requires 2 reviewers (as any PR).
Don't use GitHub's release notes GUI for this (can't PGP-sign tags). Instead:
[[!format sh """ make release-tag make release-tag-push """]]
The first line of the tag description is the release name without the dash, i.e. "notqmail 1.09". The rest of it is a reduced version of the release notes: just the bullet points, no intermediate headlines or other comments.
Don't automate this, but do walk the list like so:
[[!format sh """ for i in $(git branch -r | grep origin/patches/notqmail/ | sed -e 's|origin/||'); do git checkout $i git rebase main git push -f origin HEAD done """]]
[[!format sh """ make release-tarballs make release-signatures """]]
Copy the website's release notes to clipboard in GitHub format one last time:
[[!format sh """
cat html/releases/1.09/index.html
| sed -e 's| href="../../| href="https://notqmail.org/|g'
-e 's| href="../| href="https://notqmail.org/releases/|g'
| html2text --body-width 0
| sed -e '1d'
| grep -v '^Last edited '
| grep -v '^Mirror: '
| pbcopy
"""]]
From the release notes GUI:
- Find the draft release already in progress.
- Edit it.
- At top, for "Choose a tag", choose the newly created tag.
- At bottom, for "Attach binaries", upload the 4 artifacts (2 tarballs, 2 sigs).
- At center, for the release notes, select-all and paste
- At bottom, set as the latest release, and publish!
Merge the local (or prod) branch to main
.
Maybe also push copies of the release artifacts?
- Mailing lists:
- the qmail list
- maybe a new
users@
list at notqmail.org?
- Discussion forums:
- Social media
- Open Build Service
- RPM builds:
notqmail.spec
(bump version number) - Debian builds:
notqmail.dsc
(bump version number) - for the
.tar.gz
link:_service
(update tarball link)
- RPM builds:
- Gentoo (
DerDakon
) - pkgsrc (
schmonz
)
- Remember where we thought we wanted to go from here
- Add/change/defer/remove as needed