These are the steps that should be taken when cutting a new Geary release.
If you are new to releasing GNOME software, you'll need an account on both git.gnome.org and master.gnome.org. It's also worth reading through the Maintainer's Corner and in particular, Making a Release.
Note that Geary currently uses pre-release version incrementing.
Check it builds
Stable, point releases should be checked against the current stable branch, while new versions can be checked against master.
Check the minimum versions of software dependencies listed in INSTALL and debian/control matches the versions specified in src/CMakeLists.txt.
Ensure it builds on with the minimum supported versions of GTK+, Vala, WebKitGTK, etc. The easiest way to do this is install the oldest targeted distro in a VM using Boxes or similar, and compile and test it there.
- Ensure the Ubuntu package config in the source tree builds against the minimum targeted version of Ubuntu. Again, the easiest way to do this is to install it in a VM and build it there.
Run through the testing checklist, preferably also on oldest targeted LTS release.
- Browse through the list of bugs targeted for this release, test to ensure they are fixed.
- Check Geary still works fine with all supported providers, and against a generic IMAP server.
Making the release
- Check out the branch to be released locally
Do both a git pull and git status to check for remote and local changes
Update the version number in CMakeLists.txt
- Add a new section for the release with the new version number and today's date
Get a list of changes using git log --oneline LASTREL.., where LASTREL is the tag of the last release on the current branch
- Summarise new features if any (most important first), then bugs fixed if any (most important first). Smaller changes and code cleanup can be noted, but shouldn't be listed. This file is read by non-hackers, so keep it non-technical.
- Include b.g.o. bug numbers if there is one
Include patch author names if they aren't listed in THANKS
- Ensure all b.g.o. bugs that were targeted for this release and have been marked as fixed have the included
- Include a list of UI and User Guide translation languages updated, and the name of the people that contributed the translations
Update debian/changelog using a brief version of the NEWS file. In emacs:
- Update version number and distribution
- Copy, paste and trim NEWS
Update THANKS with the details of people who contributed patches
Do one last git pull, then commit the changes above and do a git push
Tag the release: git tag -a geary-VER, where VER is the version number
Push the tag to the repo: git push origin geary-VER
Generate a xz-compressed tarball, you can use git archive, but the easiest way to do that is to download new tag as a .tar.gz from the git web interface
- Upload to master.gnome.org and install it
Update the tarball name and SHA256 hash in org.gnome.Geary.json of the stable branch of the gnome-apps-nightly repo
- Keep an eye on on the builds starting and completing successfully on #flatpak-builds on Freenode
- Geary Team PPA:
Edit KEY, DIST, EXTRA_DISTS and VERSION geary-release.sh
Upload builds to the Geary Release PPA by running geary-release.sh from directory containing Geary source tree
- Check your email that they were uploaded okay
Keep an eye on the builds completing successfully
Let people know
Once the builds have successfully completed, update the wiki and send an email!
- Fire up the new release
- Compose a release email with a short summary, and the contents of NEWS
Address it to firstname.lastname@example.org and email@example.com
Set the reply-to address as firstname.lastname@example.org
- Hit Send
Sit back, relax, and bask in the radiance of the latest Geary version making people's email lives a bit better.