Releasing XCB Modules

(based on cairo's release process) (requires the maintainer to have a gpg key to sign the tag)

Note that many of these steps can be automated by the X.Org release.sh script now.

  1. Update README

  2. Update NEWS

    • git shortlog <last version>..
    • Skip any fixes to bugs that didn't exist in the last release
    • Skip any typos or similar cosmetic changes
  3. Bump the package version in the top-level configure.ac

  4. Commit changed README, NEWS, and configure.ac

    • git commit -m "Release <name> <version>"
  5. check that all your changes are committed

    • git status must not show any uncommitted files and you must be on the master branch
    • git diff HEAD must not show anything
  6. autoreconf -vfi && ./configure && make distcheck

  7. Tag the repository

    • git tag -s -m "Release <name> <version>" <version>
    • verify with git verify-tag <version>
  8. Compose the release mail (but don't send yet!)

    • template off of last release mail
      • replace version, README, NEWS
      • git tag and keysign
      • MD5, SHA1, and SHA256 checksums + URL's of tarballs (md5sum, sha1sum, sha256sum)
      • note names of releasers
  9. Push the master branch and the tag with git push origin master <version>

  10. Copy the .gz and .bz2 tarballs to xcb.freedesktop.org:/srv/xcb.freedesktop.org/dist/ so they show up at http://xcb.freedesktop.org/dist/

  11. For libxcb, upload the doxygen generated docs from your build to xcb.freedesktop.org:/srv/xcb.freedesktop.org/manual so they show up at http://xcb.freedesktop.org/manual/

    • make && rsync -ar --progress --delete doc/manual/ xcb.freedesktop.org:/srv/xcb.freedesktop.org/manual
  12. Send the release mail to xorg and xcb lists

  13. Update the xcb wiki (news section on the main page, if necessary)