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 against the flatpak-builder manifest org.gnome.Geary.json
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.
Make sure it builds and all unit tests pass: make test should succeed
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 <release> tag with the right details
- Update with a brief list of new features (for major releases), or bug fixes (minor releases)
Check it validates: make && appstream-util validate build/desktop/org.gnome.Geary.appdata.xml
Generate a new header from the built release notes: make && appstream-util appdata-to-news build/desktop/org.gnome.Geary.appdata.xml
- Prepend this to the NEWS file
Get a list of contributors using contributors.sh, append this below the generated release notes
Update debian/changelog using a brief version of the NEWS file. In emacs:
- Update version number and distribution
- Copy and paste generated release notes.
Update THANKS with the details of people who contributed patches
Run make test again to ensure everything is still file
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 using make dist
- Upload to master.gnome.org and install it
- Geary Team PPA:
Edit KEY, DIST, EXTRA_DISTS and VERSION in geary-ppa.sh
Upload builds to the Geary Release PPA by running geary-ppa.sh from directory below the 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.