How to make a release
*********************

Cleanup and pre-testing
=======================
Check if there are any open patches, pull requests or important stashes
laying around. Engage, triage and finalize/delay. It sucks to be waiting
for feedback too long, especially if you're an outsider.

Ideally make a speed run through one of the games to find any regressions.
BG2 intro area and TOB up to Saradush will test a lot of subsystems in a
short time.

Fix, revert or delay the release as needed.

Preparing and testing GIT
=========================

* Make sure that version numbers in 
    configure.in
    gemrb/includes/globals.h 
  are correct for the upcoming version.

* Update NEWS with highlights since the last release 

* Make sure that GemRB GIT is in compilable and runnable state
  - download a clean GIT tree and test it.
  - the minimal test should not fail
  - Make distribution .tar.gz (see Source release below) and test it as well -
    especially make sure all needed files are included.

* Tag current GIT to version number e.g. v0.9.0
  i.e. in the gemrb root directory do
    ver=0.8.2
    git tag -a -m "GemRB $ver" v$ver
    git push origin v$ver

* After you're done, update the version with a -git suffix, so it will be
  easier to tell if people are running release builds or not

Source release
==============

* via cmake/autotools:
  make dist


Linux binary release
====================

  ./autogen.sh
  ./configure --prefix=/usr/local
  make
  make install DESTDIR=/tmp/fakeroot
  cd /tmp/fakeroot/usr/local
  copy ~/GemRB-binary.cfg over etc/GemRB.cfg, rename to etc/gemrb.cfg
  strip bin/gemrb lib/* lib/gemrb/*
  sudo chown -R 0:0 *
  sudo tar cvzf ../gemrb-0.2.5-linux_i386.tar.gz *


Windows binary release
======================

If gembot is around on IRC, ask tomprince to make a build for the tagged revision:
  gembot: force build --revision=701453842c7cb5783 nmake-msvc++10 release build
  gembot: watch nmake-msvc++10

It will tell you where to see the report and on the last (upload) step,
there will also be a link for the binary download. Rename it, upload
it to the main sourceforge windows directory and mark it as default for
the platform.

Release and Announcements
=========================

* Write the release notes if necessary. They are mainly for packagers, so
create them if there are structural or build related changes. New config
options should also be mentioned here if they're not part of the changelog.

* Put the tarballs/binaries into Releases on SF
  - go to the Files section
  - click on the sources subdir
  - add a new similarly-named folder
  - use "add file" to upload the sources and release notes
  - change the file properties to set the default platforms (under "view details")

* Test the downloads from sourceforge.net

* Announce on SF, #GemRB in channel and title, LGDB and Gibberlings3:
    - our forum
    - modding news (Lynx, Avenger, Mike1072, Theacefes, Grim Squeaker, DavidW and cmorgan have access)
  (a template is available in admin/announcement.template)
    - homepages: sidebar (versions and news), news, start (version), changelog (status
      and log swap), old_changelogs
    - we also have a Google+ page, but it is currently mostly unused

* Run admin/restart_news.sh to restart the NEWS cycle
