Purpose of this document
------------------------
This document lists the steps needed to make a project release.


Before the release
------------------
- If necessary, update the TODO file
- Make sure that no debugging stuff has been forgotten in the code (e.g. search
  for "xxx")
- Check if the Preferences dialog opens on the "General" tab (sometimes when I
  fiddle around in Interface Builder, I forget to switch back to the "General"
  tab)
- Update the ChangeLog (should have been done continuously, anyway)
- Replace the "Changes in this release" section of the README with a collection
  of the most important entries from the ChangeLog
- Change the release date in the following files:
  - Roadmap
- Make sure that the version number is up to date in the following files
  (it should have been bumped already after the last release was made):
  - README
  - Info.plist
- Make sure that the copyright year is up to date in the following files (e.g.
  2009-2011 instead of 2009-2010):
  - All source files
  - Info.plist
- Set the active build configuration in Xcode to "Release" and build the project
- Perform tests suitable to make sure that everything still works as intended
  -> DO THIS OUTSIDE OF THE DEVELOPMENT ENVIRONMENT (= Xcode), i.e. launch the
     application from the Finder (yes, this can have an impact!)
- Commit final changes (check with "git status" that nothing was forgotten)


Make the release
----------------
- Tag and sign the release
  cd <projectdir>
  git tag -s -m "tagging release x.y" x.y <commit hash>
- Update the blessed repository
  cd <projectdir>
  git push
- Generate the source and binary distributions
  - Go to terminal
  - Launch "<path-to-project-folder>/makedist.sh 0.1"
  - The distribution files are placed in <project-folder>/dist
- Make the source and binary distributions available on the project website
  - Create a new directory in the public web space
  - Copy ChangeLog, README, disk image file (.dmg) and tar ball (.tar.gz)
    into the new directory
  - Update disk image and tar ball symlinks in the "current" directory
- Add the new version number to the bug tracker so that issues can be reported
  once the release has been made public
- Update the project website to announce the new release


After the release
-----------------
- Cleanup
  cd <projectdir>
  rm -r dist build
- Bump the version number to the next planned release; check above under
  "Before the release" which files are affected
