This is ye olde faithful release checklist that I have used for a long time now, moved into the open from the old Development board. I updated it for doing beta releases just now. Some of the points suggest that someone else than me might prepare releases at some point... well, it never happened so far.
Update: Now adapted for the new updater tech we just rolled out, which makes the old "gg2update.exe" SFX archive obsolete.
I guess this is mostly useful for Wareya (who has betadev access) and me right now, but who knows.
Preparing the .gmk file- Update the VERSION constant.
This is only used to find out if the game is up to date when starting, so you'll want to use a higher number than the last version. Preferably, it should resemble the version number (e.g. v2.2.1 had a version number of 22100). Beta versions just count up from the last release version (e.g. 22101 for 2.2.2 beta 1). Release versions are always multiples of 100. - Update the PROTOCOL_UUID constant, unless the new version is completely compatible with the old one. Versions with the same UUID can see each other in the Lobby and connect. To create a new UUID, you can use the UUIDGenerator.html in the Source directory.
- Update the GAME_VERSION_STRING constant, which will be shown in the lobby.
- Update the version number in both the Other tab and the Info tab of Global Game Settings.
- Make sure that your installed extensions have the current versions
Git repository- Commit the modified source and tag it with the intended version (e.g. V2.4.3b2) using an annotated tag.
Preparing the release .zip file- Usually, only the files "Gang Garrison 2.exe" and "Source/Gang Garrison 2.gmk" need to be changed, so just make a new .zip from the one of the previous release with those two files replaced. Make sure the exe you copy in is corresponds to the source file.
- Make sure there's no gg2.ini file in the main directory, and no "Gang Garrison 2.gb1" or similar in the Source directory.
- For release: Give the new zip file a distinctive name, e.g. "Gang Garrison 2 v2.5.0.zip". For Beta: Name the new zip file "gg2update_beta.zip".
It's also possible to prepare it from scratch by copying files from the git repo:
- All the text files (licenses and readme) in the root of the GG2 repo are copied to the root of the zip file
- A Source subdirectory of the zip file is created. Copy gg2.gmk there, renamed to Gang Garrison 2.gmk, plus all the files in the Extensions subdirectory of the GG2 repo and the UUIDGenerator.html file.
- A Music subdirectory of the zip file is created. Copy the files from the Music subdirectory of the GG2 repo.
- Finally, export GG2 as an exe to Gang Garrison 2.exe in the root of the zip file
Prepare devmessages.txtThere are two devmessages.txt files, only update the appropriate one. The release file is
here, the beta one is
here. Change the version number to the one you put in the VERSION constant field. Update the description with a small list of changes. Use # for newline (GM style strings). Caution: The file has unix line endings (there is a newline after "Version"). Also beware of the fact that devmessages.txt specifies menu backgrounds as well. Don't touch that part unless you're changing the background too.
Prepare download.phpOnly for release. You need ftp or shell access to the server for this one. Download the source of the download.php file from the main web directory (httpdocs). Change the filename in the $download_URL_HTTP variable (at the top) to the filename of the new zip file. The server is a Linux system, so the filename is case sensitive. If you don't have server access do nothing.
Prepare downloads.htmlOnly for release. Same as above, get the source code for this file from the httpdocs directory. On line 40 there is this:
<div class="dl-header">Gang Garrison 2 2.x.x</div> Correct as appropriate.
Upload and cleanupFor beta, copy the gg2update_beta.zip and devmessages_beta.txt into the betadev home directory (preferably in that order).
For release, if you have access to the server, copy the files prepared above to the httpdocs directory in the following order:
static/Gang Garrison 2 vX.Y.Z.zip
download.php
devmessages.txt
downloads.html
Move the old zip file into the httpdocs/oldversions folder afterwards. If you want to reset the download counter, rename the file httpdocs/dlcounter.1234 to httpdocs/dlcounter.0 and record the old number in the file historic_values in the same directory.
If you don't have server access, send all the files to a dev who can do it. If you prepared everything as far as described above he should be able to update in a matter of minutes.
Commit website changes in gitIf you're a dev and have ganggarrison.com access, SSH in then cd into /var/www/ganggarrison and commit the changes to the html files.
Make Announcements postOnly for release. Copy the source of the previous version's announcement. It needs to have the "Previous/Current/Next" table at the top (make sure it's correct), the name of the release, the changelog, and the download link. If you are able to, edit the previous version's post to add the Next link.
Update GameJoltOnly for release.
Upload the zip file as a new package on GameJolt. Tick Windows as platform.