Things to do when making a release. Instructions here are for git.

  • If there's a NEWS file, summarize important changes in it, and name the release (see Release Names)
  • If it's a C project:
    • Replace UNRELEASED with the new version number in @since docstrings.
    • Bump the version number in configure.ac: * If the package has a nano version like 1.2.3.1, set it to 0 and increment the minor version to 1.2.4. * If the package has a version like 1.2.3+, remove the + and increment the minor version to 1.2.4. * If the package has a _release, set it to 1 and increment the minor version.
    • If it's ?TelepathyGlib and it adds ABI, whitelist new symbols. Newly introduced symbols can be found in reference docs as follows (which will also list typedefs and macros, which should not be included in the .abi file): git diff telepathy-glib-$PREVIOUS_VERSION..HEAD docs/reference/telepathy-glib-sections.txt | grep '^+[^+]' | cut -c2-
  • If it's a Python project:
    • Bump the version number in setup.py.
  • git commit -am "version $VERSION"
  • Check it works If you're lucky, you can now just run make maintainer-make-release to automate all of the following steps, including generating a release mail. If not, you could update the project's copy of tools/telepathy.am from the canonical copy in telepathy-glib, or follow these manual steps?

  • If it's a C project:

    • make check (partly for one last check, partly to keep gtk-doc happy)
    • make distcheck
  • If it's a Python project:
    • python setup.py distcheck (if available) or python setup.py sdist (otherwise)
  • git tag -s "$PACKAGE-$VERSION" -m "$PACKAGE $VERSION"
  • Generate a signature: gpg --detach-sign -a $TARBALL
  • If it's a project that uses tools/telepathy.am, run make maintainer-upload-release which will upload tarball, signature and the docs to fd.o. Otherwise, manually upload tarball and its signature to annarchy.freedesktop.org:/srv/telepathy.freedesktop.org/www/releases/$PACKAGE.
  • Send an announce email to telepathy@lists.freedesktop.org and ftp-release@lists.freedesktop.org:
    • If there's a NEWS file, paste the latest entry into the announcement.
    • If not, summarize important changes.
    • Include the URLs to the tarball and the signature for that tarball.
  • If a C project:
    • If the package has a nano version, set it to 1.
    • If the package uses the 1.2.3+ convention (Mission Control), append a "+".
    • If the package has a _release, set it to 0.
    • git commit -am "version $VERSION"
  • git push
  • git push --tags