Releasing Geary

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 and 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.

  1. Check the minimum versions of software dependencies listed in INSTALL and debian/control matches the versions specified in src/CMakeLists.txt.

  2. Ensure it builds against the flatpak-builder manifest org.gnome.Geary.json

  3. 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.

  4. 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.


  1. Make sure it builds and all unit tests pass: make test should succeed

  2. Run through the testing checklist, preferably also on oldest targeted LTS release.

  3. Browse through the list of bugs targeted for this release, test to ensure they are fixed.
  4. Check Geary still works fine with all supported providers, and against a generic IMAP server.

Making the release

  1. Check out the branch to be released locally
  2. Do both a git pull and git status to check for remote and local changes

  3. Update the version number in CMakeLists.txt

  4. Update desktop/

    1. Add a new <release> tag with the right details

    2. Update with a brief list of new features (for major releases), or bug fixes (minor releases)
    3. Check it validates: make && appstream-util validate build/desktop/org.gnome.Geary.appdata.xml

  5. Update NEWS:

    1. Generate a new header from the built release notes: make && appstream-util appdata-to-news build/desktop/org.gnome.Geary.appdata.xml

    2. Prepend this to the NEWS file
    3. Get a list of contributors using, append this below the generated release notes

  6. Update debian/changelog using a brief version of the NEWS file. In emacs:

    1. M-x debian-changelog-add-version

    2. Update version number and distribution
    3. Copy and paste generated release notes.
    4. M-x debian-changelog-finalise-and-save

  7. Update THANKS with the details of people who contributed patches

  8. Run make test again to ensure everything is still file

  9. Do one last git pull, then commit the changes above and do a git push

  10. Tag the release: git tag -a geary-VER, where VER is the version number

  11. Push the tag to the repo: git push origin geary-VER

  12. Generate a xz-compressed tarball using make dist

  13. Upload to and install it

Post-release builds

  1. Flatpak:
    1. Update the tarball name and SHA256 hash in org.gnome.Geary.json of the Geary Flathub repo

    2. Keep an eye on on the Flathub builds starting and completing successfully

  2. Geary Team PPA:

    2. Upload builds to the Geary Release PPA by running from directory below the Geary source tree

    3. Check your email that they were uploaded okay
    4. Keep an eye on the builds completing successfully

Let people know

Once the builds have successfully completed, update the wiki and send an email!

  1. Fire up the new release
  2. Compose a release email with a short summary, and the contents of NEWS
  3. Address it to and

  4. Set the reply-to address as

  5. Hit Send

Sit back, relax, and bask in the radiance of the latest Geary version making people's email lives a bit better.

Apps/Geary/ReleaseProcess (last edited 2018-02-13 01:18:50 by MichaelGratton)