Release steps

MUST DO

  • make sure everything is in shape
    • try to build it in as many way as possible changing the configure flags
    • run each build against some testcases [maybe try to automate it if possible]
    • Double check documentation, manpages and doxy, grammar mistakes won't make the code fail but look bad.
  • prepare the release documents
    • NEWS : should contain a synthetic summary of the changes, git-shortlog may help a lot
    • ChangeLog : should contain a relatively list of the changes, git log with the right format string can do that for us, if there is time delete the less meaningful commits
    • RELEASE : write a short essay on what we did and why people should use the new revision. Mention of known issue should be done there.
  • tag the release
    • use git-tag -s -m “Release $version” v$version
  • prepare the tarball
    $ git archive --format=tar --prefix=$app-$version/ v$version | (cd /var/tmp/ && tar xf -)
    $ cd /var/tmp/$app-$version
    $ ./autogen.sh
    $ doxygen
    $ cd ..
    $ tar -jcf $app-$version.tar.bz2 $app-$version
  • put it on the website updating the pages and preparing a release newsitem.

OPTIONAL

  • create packages for commonly used distributions.
  • ping freshmeat.net
  • have a party