Release Checklist
=================

Set some useful variables.

    export VERSION=0.12.3 \
      && export BRANCH=0.12 \
      && export USERNAME=osmo \
      && export SVN_ROOT=svn+ssh://$USERNAME@svn.gna.org/svn/gaupol \
      && export SVN_SOURCE=$SVN_ROOT/branches/gaupol-0-12 \
      && export SVN_BRANCH=$SVN_ROOT/branches/gaupol-0-12 \
      && export SVN_TAG=$SVN_ROOT/tags/GAUPOL_0_12_3 \
      && export DL_ROOT=$USERNAME@download.gna.org:/upload/gaupol

Search for unfinished code.

    egrep -A 2 -B 2 -n "(BUG|FIX|NOTE|TODO):" \
      $(find gaupol -name "*.py" -print) \
      | egrep -v "(configobj.py|validate.py|^--$)"

Run (all) automatic checks.

    tools/pylint gaupol
    py.test --tb=no gaupol

Make final edits to files and commit changes.

    $EDITOR gaupol/__init__.py
    tools/pydoctor && tools/translate -t
    $EDITOR NEWS TODO
    tools/add-changelog
    $EDITOR ChangeLog po/ChangeLog
    svn commit

Tag source [and branch for patch releases].

    svn copy $SVN_SOURCE $SVN_TAG -m "Tagged for release $VERSION."
    svn copy $SVN_SOURCE $SVN_BRANCH -m "Branched at $BRANCH."

Build and upload tarballs.

    ./setup.py clean
    ./setup.py sdist_gna --formats bztar,gztar && cd dist
    $EDITOR $BRANCH/gaupol-$VERSION.changes
    $EDITOR $BRANCH/gaupol-$VERSION.news
    rsync -avr --rsh=ssh . $DL_ROOT
    cd .. && ./setup.py clean

Build and upload Windows installer, see "RELEASING.win32".

Edit website under "News", "Features" and "Download".

Send announcement mail.

    gaupol-announcements@gna.org
    http://www.mail-archive.com/gaupol-announcements@gna.org

Update web sites.

    http://gna.org/news/?group=gaupol
    http://www.gnomefiles.com/devs
    http://freshmeat.net/projects/gaupol
    http://users.tkk.fi/~otsaloma/gaupol/doc/
