Release checklist
From Bitfighter
- Make sure all code is checked in to HG
- Disable any experimental features in development
- Update checkIfThisIsAnUpdate() in main.cpp and add any update tasks
- Make sure dedicated server compiles
- Update version.h:
- Change ZAP_GAME_RELEASE to new version
- Change BUILD_VERSION to (current commit number + 2) (found by running 'hg summary')
- If new client-server is incompatible with the old, update CS_PROTOCOL_VERSION
- If new client-master is incompatible with the old, update MASTER_PROTOCOL_VERSION
- Important: Make sure version.h parsing works in the OSX Bitfighter target build script. This is needed for Sparkle to properly update
- Re-checkin to HG, so version numbers are correct, and everything aligns correctly NOTE THAT THE TAG WILL COUNT AS A VERSION!
- Tag the release in HG. Use format "bitfighter-016"
- Build for Windows:
- Compile the game with the release version
- Run NSI to create windows installer
- Test installer
- Build for Mac
- Build the DMG target in XCode
- Test DMG
- Upload to Google Code
- Upload Windows version to Google code
- Upload Mac version to Google code
- Run script found in bitfighter-tools repo to build and upload source tarball
- Test downloads
- Put copy of tarball at static URL to help maintainers:
- On bitfighter.org:
- sudo wget https://bitfighter.googlecode.com/files/bitfighter-018a.tar.gz -O /var/www/html/files/bitfighter-latest.tar.gz
- File will be available from http://bitfighter.org/files/bitfighter-latest.tar.gz
- On bitfighter.org:
- Build for various Linux distros
- Use Open Build Service (or tell other distros about the new release.) Link: https://build.opensuse.org/package/show?package=bitfighter&project=games
- Flag old package as being out of date on Arch: https://aur.archlinux.org/packages/bitfighter/
- Note for next release: "That way, you can ask the maintainer to point the pkgbuild to the http://bitfighter.googlecode.com/files/ … est.tar.gz and it will always be the newest version whenever someone installs through AUR. That would bypass the need for communication between dev <-> maintainer to update for every release."
- Rebuild any servers that need rebuilding
- Update master.ini:
- [host] section:
- Update latest_released_client_build_version
- Update latest_released_cs_protocol (if needed)
- [motd_clients] section:
- Add a new line for the old build version
- [host] section:
- Update auto-update file (/var/www/html/files/getDownloadUrl.php) on master server
- Sign the Mac files with our private key for the Sparkle updates
- Update versions/dates in the php file (add sparkle signatures)
- Update bitfighter website
- Add new release to all releases page
- Update download page to show new release
- Add story to main page on website announcing new release
- Update luadoc/doxygen
- Post announcement in forums
- Announce new version via email
- Post the update to gaming web sites
- Update /topic on #bitfighter IRC channel
- Update the Building Bitfighter page