Release checklist
From Bitfighter
- Make sure all code is checked into version control and pushed to github
- Disable any experimental features in development
- Update checkIfThisIsAnUpdate() in main.cpp and add any update tasks
- Update joystick definition file from https://github.com/gabomdq/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt
- Make sure dedicated server compiles
- Update README and luadoc
- Update version.h:
- Change ZAP_GAME_RELEASE to new version
- Change BUILD_VERSION to (current commit number + 1) (found by running 'git rev-list --all --count')
- 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 CMake. It will output to the console when it is run.
- Re-checkin to git, so version numbers are correct, and everything aligns correctly NOTE THAT THE TAG WILL COUNT AS A VERSION!
- Tag the release in git. Use format "bitfighter-019g"
- Build for Windows:
- Installers (32-bit is NSI, 64-bit is MSI):
- Compile the game as a RelWithDebInfo version (to help with debugging problems)
- Compile the updater 'gup'
- Build notifier; use script in notifier/pyinstaller/ (Or just copy the one from previous release into: notifier/pyinstaller/dist/. Remember to mach architecture.)
- Build package using the PACKAGE target in Visual Studio
- Test the installers:
- Brand new install with no preference folder created
- Old preference updating in %appdata%/Bitfighter
- Portable build:
- Copy installed 'Bitfighter' folder from Win32 installer (found in Program Files) to some other place to create the portable build
- Remove 'Uninstall.exe'. Add 'standalone.txt'
- Remove any bitfighter.ini or log files found
- Zip up folder and name zip like 'Bitfighter-019e-win32-portable.zip'
- Installers (32-bit is NSI, 64-bit is MSI):
- Build for OSX (x86_64)
- Each architecture is a different DMG
- Test DMGs
- Build for Linux
- Create source package for Linux distros. Use the 'create_tarball.sh' script from the bitfighter tools repo. Note the excludes list inside the script which strips out non-Linuxy stuff
- Standalone build
- 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/ (login, click "Flag as out of date" link on right)
- Upload all builds to bitfighter.org/files/
- Test downloads
- Put copy of source tarball at static URL to help maintainers:
- On bitfighter.org:
- sudo ln -s /var/www/html/files/bitfighter-019f.tar.gz /var/www/html/files/bitfighter-latest.tar.gz
- File will be available from http://bitfighter.org/files/bitfighter-latest.tar.gz
- On bitfighter.org:
- 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 a message for a particular release (like if a bad client was released)
- [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
- See README: https://github.com/bitfighter/bitfighter-tools/tree/master/signing_tools
- keys are found in /root/ on the bitfighter server
- Update versions/dates in the php file (add sparkle signatures)
- Sign the Mac files with our private key for the Sparkle updates
- 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 (and update screenshots)
- http://www.lgdb.org/node/1076/edit
- linuxgames.com (No BF news has been published since 017, try including a screen shot)
- GameJolt
- itch.io
- Add news item
- Update all downloads (will need to download all copies of installer from bf.org to local machine first)
- Update /topic on #bitfighter IRC channel
- Update the Building Bitfighter page if needed
- Update this Release checklist