Difference between revisions of "Release checklist"

From Bitfighter
 
(24 intermediate revisions by 2 users not shown)
Line 1: Line 1:
# Make sure all code is checked in to HG
+
# 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
 
# 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 + 2) (found by running 'hg summary')
+
#* 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 the OSX Bitfighter target build scriptThis is needed for Sparkle to properly update
+
#* '''Important:''' Make sure version.h parsing works in CMakeIt will output to the console when it is run.
# Re-checkin to HG, so version numbers are correct, and everything aligns correctly NOTE THAT THE TAG WILL COUNT AS A VERSION!
+
# 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 HG.  Use format "bitfighter-016"
+
# Tag the release in git.  Use format "bitfighter-021"
 
# Build for Windows:
 
# Build for Windows:
#* Compile the game with the release version
+
#* Installers (32/64-bit use NSIS):
#* Run NSI to create windows installer
+
#** Compile the game as a '''RelWithDebInfo''' version (to help with debugging problems)
#* Test installer
+
#** Compile the updater 'gup'
# Build for Mac
+
#** Build notifier; use script in notifier/pyinstaller/ (Or copy the one from previous release into: notifier/pyinstaller/dist/.  Remember to match architecture.)
#* Build the DMG target in XCode
+
#** Build package using the PACKAGE target in Visual Studio
#* Test DMG
+
#** Test the installers:
# Upload to Google Code
+
#*** Brand new install with no preference folder created
#* Upload Windows version to Google code
+
#*** Old preference updating in %appdata%/Bitfighter
#* Upload Mac version to Google code
+
#* Portable build:
#* Run script found in bitfighter-tools repo to build and upload source tarball
+
#** 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
 +
#* 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
 
#* Test downloads
# Put copy of 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 wget https://bitfighter.googlecode.com/files/bitfighter-018a.tar.gz -O /var/www/html/files/bitfighter-latest.tar.gz
+
#** 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
# 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
 
# Rebuild any servers that need rebuilding
 
# Update master.ini:
 
# Update master.ini:
Line 37: Line 48:
 
#** Update latest_released_cs_protocol (if needed)
 
#** Update latest_released_cs_protocol (if needed)
 
#* [motd_clients] section:
 
#* [motd_clients] section:
#** Add a new line for the old build version
+
#** Add a new line for a message for a particular release (like if a bad client was released)
 
# 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 all releases page
+
#* 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)
#* https://freecode.com/projects/bitfighter/releases
+
#* 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
+
#* 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 /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 this Release checklist

Latest revision as of 08:58, 6 June 2021

  1. Make sure all code is checked into version control and pushed to github
    • Disable any experimental features in development
  2. Update checkIfThisIsAnUpdate() in main.cpp and add any update tasks
  3. Update joystick definition file from https://github.com/gabomdq/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt
  4. Make sure dedicated server compiles
  5. Update README and luadoc
  6. 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.
  7. Re-checkin to git, so version numbers are correct, and everything aligns correctly NOTE THAT THE TAG WILL COUNT AS A VERSION!
  8. Tag the release in git. Use format "bitfighter-021"
  9. 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'
  10. Build for OSX (x86_64)
    • Each architecture is a different DMG
    • Test DMGs
  11. Build for Linux
  12. Upload all builds to bitfighter.org/files/
    • Test downloads
  13. Put copy of source tarball at static URL to help maintainers:
  14. Rebuild any servers that need rebuilding
  15. 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)
  16. Update auto-update file (/var/www/html/files/getDownloadUrl.php) on master server
  17. 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
  18. Post announcement in forums
  19. Announce new version via email
  20. 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)
  21. Update /topic on #bitfighter IRC channel
  22. Update discord server (or tell a community member to do it)
  23. Update the Building Bitfighter page if needed
  24. Update this Release checklist