Difference between revisions of "Release checklist"
From Bitfighter
Watusimoto (Talk | contribs) |
Watusimoto (Talk | contribs) |
||
(10 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | # Make sure all code is checked | + | # Make sure all code is checked into version control and pushed to github |
#* Disable any experimental features in development | #* Disable any experimental features in development | ||
# Update checkIfThisIsAnUpdate() in main.cpp and add any update tasks | # 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 | # Update joystick definition file from https://github.com/gabomdq/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt | ||
# Make sure dedicated server compiles | # Make sure dedicated server compiles | ||
+ | # Update README and luadoc | ||
# Update version.h: | # Update version.h: | ||
#* Change ZAP_GAME_RELEASE to new version | #* Change ZAP_GAME_RELEASE to new version | ||
− | #* Change BUILD_VERSION to (current commit number + 1) (found by running ' | + | #* 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-server is incompatible with the old, update CS_PROTOCOL_VERSION | ||
#* If new client-master is incompatible with the old, update MASTER_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. | #* '''Important:''' Make sure version.h parsing works in CMake. It will output to the console when it is run. | ||
− | # Re-checkin to | + | # 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 | + | # Tag the release in git. Use format "bitfighter-021" |
− | # Build for Windows (32 | + | # Build for Windows: |
− | #* Compile the game as a ''' | + | #* Installers (32/64-bit use NSIS): |
− | #* Compile ' | + | #** Compile the game as a '''RelWithDebInfo''' version (to help with debugging problems) |
− | #* Build notifier; use script in notifier/pyinstaller/ | + | #** Compile the updater 'gup' |
− | #* Build package using the PACKAGE target in Visual Studio | + | #** Build notifier; use script in notifier/pyinstaller/ (Or copy the one from previous release into: notifier/pyinstaller/dist/. Remember to match architecture.) |
− | #* Test the installers | + | #** Build package using the PACKAGE target in Visual Studio |
− | #* | + | #** Test the installers: |
− | # Build for OSX ( | + | #*** 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-021-win32-portable.zip' | ||
+ | # Build for OSX (x86_64) | ||
#* Each architecture is a different DMG | #* Each architecture is a different DMG | ||
#* Test DMGs | #* Test DMGs | ||
Line 28: | Line 36: | ||
#** Use Open Build Service (or tell other distros about the new release.) Link: https://build.opensuse.org/package/show?package=bitfighter&project=games | #** 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) | #** 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/ | # Upload all builds to bitfighter.org/files/ | ||
#* Test downloads | #* Test downloads | ||
# Put copy of source tarball at static URL to help maintainers: | # Put copy of source tarball at static URL to help maintainers: | ||
#* On bitfighter.org: | #* On bitfighter.org: | ||
− | #** sudo ln -s /var/www/html/files/bitfighter- | + | #** sudo ln -s /var/www/html/files/bitfighter-021.tar.gz /var/www/html/files/bitfighter-latest.tar.gz |
#* File will be available from http://bitfighter.org/files/bitfighter-latest.tar.gz | #* File will be available from http://bitfighter.org/files/bitfighter-latest.tar.gz | ||
# Rebuild any servers that need rebuilding | # Rebuild any servers that need rebuilding | ||
Line 44: | Line 51: | ||
# Update auto-update file (/var/www/html/files/getDownloadUrl.php) on master server | # 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 | #* 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) | #* Update versions/dates in the php file (add sparkle signatures) | ||
# Update bitfighter website | # Update bitfighter website | ||
− | #* Add new release to | + | #* Add new release to releases page |
#* Update download page to show new release | #* Update download page to show new release | ||
+ | #* Save latestchanges.html to changelog.html and update latestchanges.html | ||
#* Add story to main page on website announcing new release | #* Add story to main page on website announcing new release | ||
#* Update luadoc/doxygen | #* Update luadoc/doxygen | ||
# Post announcement in forums | # Post announcement in forums | ||
# Announce new version via email | # Announce new version via email | ||
− | # Post the update to gaming web sites | + | # Post the update to gaming web sites (and update screenshots) |
− | + | #* http://www.lgdb.org/node/1076/edit <-- Appears dead 6/2021 | |
− | #* http://www.lgdb.org/node/1076/edit | + | #*linuxgames.com (No BF news has been published since 017, try including a screen shot) <-- Appears dead 6/2021 |
− | #*linuxgames.com (No BF news has been published since 017, try including a screen shot) | + | |
#* GameJolt | #* GameJolt | ||
#* itch.io | #* itch.io | ||
Line 61: | Line 70: | ||
#** Update all downloads (will need to download all copies of installer from bf.org to local machine first) | #** 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 /topic on #bitfighter IRC channel | ||
− | # Update the [[Building Bitfighter]] page | + | # Update discord server (or tell a community member to do it) |
− | + | # Update the [[Building Bitfighter]] page if needed | |
− | Update | + | # Update this Release checklist |
− | + | ||
− | + | ||
− | + | ||
− | + |
Latest revision as of 08:58, 6 June 2021
- 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-021"
- Build for Windows:
- Installers (32/64-bit use NSIS):
- Compile the game as a RelWithDebInfo version (to help with debugging problems)
- Compile the updater 'gup'
- Build notifier; use script in notifier/pyinstaller/ (Or copy the one from previous release into: notifier/pyinstaller/dist/. Remember to match 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-021-win32-portable.zip'
- Installers (32/64-bit use NSIS):
- 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-021.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 releases page
- Update download page to show new release
- Save latestchanges.html to changelog.html and update latestchanges.html
- 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 <-- Appears dead 6/2021
- linuxgames.com (No BF news has been published since 017, try including a screen shot) <-- Appears dead 6/2021
- 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 discord server (or tell a community member to do it)
- Update the Building Bitfighter page if needed
- Update this Release checklist