Checklist of stuff that needs to be doing at release time,
not necessarily in the optimal order, but I tried to make it pretty much right.

Spring engine:
Before you start:
- make sure changelog is up to date (including version number!)
- talk to people to fix their apps which get included in the installer (Lobby, Downloader...)

Then proceed:
- make sure all packages build correctly (test building on buildbot, test-generate source packages (and check them if they work))
- set buildbot to only produce builds if forced to (comment out schedulers)
- test source package linux (or not if you feel brave)
- test source package windows (ditto)
- test installer (NEVER EVER SKIP THIS NO MATTER HOW SMALL THE CHANGES)

- bump version number in installer/springsettings.nsh to e.g. "0.76b1"
- bump version number in rts/Game/GameVersion.cpp
- tag the released revision in SVN as e.g. "tags/spring_0.76b1"
- have buildbot compile installer and make source packages
- upload installer to fnord.clan-sy.com
- upload installer to the big Spring file sites (watch out for notification bots,
  it can create chaos if you upload early in release process and the upload gets
  widely announced already.)
- upload spring_X.XXbX_src.tar.bz2 to fnord.clan-sy.com
- upload spring_X.XXbX_src.zip to fnord.clan-sy.com
- upload spring_X.XXbX_src.tar.bz2 to Berlios (not too important)
- upload spring_X.XXbX_src.zip to Berlios (ditto)
- make news post (don't forget to thank contributors, link to installer and source)
- bump version number in rts/Game/GameVersion.cpp to e.g. "0.76b1+" (note the plus)
- enable automatic builds in buildbot again

TASServer (when only spring update):
- update updates.xml with OFFERFILE entries for current Spring version.
- as admin, do "reloadupdateproperties" in TASServer ($Local in TASClient)
- as admin, do "setlatestspringversion 0.76b1"  (replace version!)
- as admin, "broadcast" a message that everyone will be kicked due to upgrade
- as admin, kick all users from the server ("killall [reason]")
- set correct Spring version in the shell script that starts server, so it
  won't boot people if it ever gets restarted (e.g. power outage)

TASServer (full update, ie. Spring+TASServer):
- easiest is probably to release Spring separately, but usually this is
  impossible due to compatibility things.
- update updates.xml with OFFERFILE entries for current lobby version(s)
  and current Spring version.
- set correct spring version in the shell script that starts server.
- update sourcecode to latest version
- stop server
- compile server
- do whatever is needed to migrate data, if anything.
- start server
- hotfix the issues that usually arise during TASServer upgrade :-)
- commit the hotfixes
- tag the used server in SVN as e.g. "tags/Lobby/TASServer 0.35"
