Release checklist:
==================

1) Finish up the NEWS file and insert a release date

2) Check if the README is up-to-date with respect to required versions of
   3rd party components like Qt or monotone

3) Type the to-be-released version number in guitone.pro into the constant
   GUITONE_VERSION

4) Tag the release: mtn tag REV guitone-MAJOR.MINOR.BUGFIX, f.e. "guitone-0.6.3",
   while .BUGFIX is optional

5) TGZ release (source, all):

    $ mtn co -d your.db -r t:guitone-MAJOR.MINOR.BUGFIX guitone-MAJOR.MINOR.BUGFIX
    $ rm -rf guitone-MAJOR.MINOR.BUGFIX/_MTN
    $ tar czvf guitone-MAJOR.MINOR.BUGFIX.tgz guitone-MAJOR.MINOR.BUGFIX

6) EXE release (binary, win32, mingw):

   Ensure that you've downloaded and installed the Inno Setup's Quick Start Package 
   from http://www.jrsoftware.org/isdl.php before you continue.

    $ mtn co -d your.db -r t:guitone-MAJOR.MINOR.BUGFIX guitone-release
    $ cd guitone-release
    $ qmake -config release && make

    Now open guitone-MAJOR.MINOR.BUGFIX/res/win32/guitone.iss in ISTool and set
    the variables APPVERS to MAJOR.MINOR.BUGFIX. Also set the path to your binary
    Qt/mingw installation properly so the setup script can find and pack the needed
    Qt libraries into the installer. Hit Ctrl+F5 to compile and run the setup.
    
    After the setup ran through successfully without errors, _test_ the installation.
    If everything is fine again, upload the created setup file on the server.

7) DMG release (binary, Mac OS X):

    $ mtn co -d your.db -r t:guitone-MAJOR.MINOR.BUGFIX guitone-MAJOR.MINOR.BUGFIX
    $ cd guitone-MAJOR.MINOR.BUGFIX
    $ qmake -config relase && make
    $ ./osx_bundle.sh dmg
    $ mv bin/guitone.dmg bin/guitone-MAJOR.MINOR.BUGFIX.dmg
    
    Finally _test_ the binary: Use otool -L to check if all non-system
    libraries (Qt*, Sparkle) and the guitone binary itself have set their
    dependencies as @executable path. Check if the created disk image is 
    properly mountable and contains all needed files.

8) ssh into guitone@thomaskeller.biz, create a new directory MAJOR.MINOR.BUGFIX
   under /httpdocs/releases. Upload NEWS and README as well as the created files
   from the above steps 4-6

9) symlink /httpdocs/releases/MAJOR.MINOR.BUGFIX to /httpdocs/releases/latest

10) Pull the branch biz.thomaskeller.guitone.website and check it out:
    $ mtn pull -d your.db thomaskeller.biz biz.thomaskeller.guitone.website \
      -k your@key
    $ mtn co -d your.db -b biz.thomaskeller.guitone.website guitone-web
    $ cd guitone-web

11) Edit appcast.xml and insert a new entry for the latest release. Take NEWS
    as starting point by replacing all occurences of /^ -/ with <li> and wrap
    the whole list in <ul>...</ul>
    Add / edit enclosures for each of the above released files, don't forget to
    set filesize, checksum and sparkle version attributes properly (the latter
    is used to determine client-side if new updates are available).

12) Check-in appcast.xml and push your changes to the server. Test the feed in
    your browser and optionally for validity by some feed validator 
    (validome.org or feedvalidator.org)

13) Make an announcement on monotone-devel and freshmeat. Include /from=fm/ in
    the direct download URLs for freshmeat to enable proper download tracking.
    Also announce it on qt-apps.org while using /from=qtapps/ as identifier in
    any download URLs
