openMSX Catapult Release Process
================================

This is a kind of recipe for doing releases. Having it written down
decreases the change of forgetting a small but crucial step during the
hectic work of getting a release out.

Preparing for a release
-----------------------

- Tell all developers to commit only fixes.
- Verify the documentation is up-to-date.
  Currently most documentation is in "doc".
- Write release notes in "doc/release-notes.txt".
- Add the change list to "doc/release-history.txt".

Creating a release candidate
----------------------------

- Update the release date in the release notes.
- Edit the version number in build/version.mk:
    VERSION=1.2.3
  The version should be the version of openMSX for which this Catapult
  release is intended.
  Set RELEASE_FLAG to true.
- Update build/version.py similar to build/version.mk.
- Update the release date in "doc/release-notes.txt" and
  "doc/release-history.txt".
- Tag the SVN archive:
    svn copy \
      https://openmsx.svn.sourceforge.net/svnroot/openmsx/wxcatapult/trunk \
      https://<host>/svnroot/openmsx/wxcatapult/tags/RELEASE_1_2_3 \
      -m "Tagging release 1.2.3."
- Export the tagged code:
    svn export https://<host>/svnroot/openmsx/wxcatapult/tags/RELEASE_1_2_3 \
        openmsx-catapult-1.2.3
  This step makes sure that exactly the tagged code will be released.
  Export instead of checkout gets rid of the SVN admin directories.
- Create the distribution tar.gz file:
    make dist
- Save the created file somewhere you can find it again:
    mv derived/dist/openmsx-catapult-1.2.3.tar.gz
      <some_dir>/openmsx-catapult-1.2.3.tar.gz
  This is the release candidate.

Sanity check on release candidate
---------------------------------

This is a small check to be performed by the release coordinator.

- Test build:
  * Compile and check for warnings:
      make
  * Test installation:
      su
      make install
- Start openMSX Catapult with the supported openMSX releases.
- Verify the version number in the About dialog.

If the sanity check is passed, distribute tar.gz to fellow developers and
testers.

Post-release
------------

- Put "Released openmsx-catapult-1.2.3." entry in the ChangeLog in SVN.
- Set RELEASE_FLAG to false in build/version.mk and build/version.py.
