Release checklist - Gang-Garrison-2/Gang-Garrison-2 GitHub Wiki

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.txt

There 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.php

Only 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.html

Only for release. Same as above, get the source code for this file from the httpdocs directory. On line 40 there is this:

Gang Garrison 2 2.x.x
Correct as appropriate.

Upload and cleanup

For 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 git

If 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 post

Only 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 GameJolt

Only for release. Upload the zip file as a new package on GameJolt. Tick Windows as platform.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.txt

There 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.php

Only 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.html

Only for release. Same as above, get the source code for this file from the httpdocs directory. On line 40 there is this:

Gang Garrison 2 2.x.x
Correct as appropriate.

Upload and cleanup

For 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 git

If 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 post

Only 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 GameJolt

Only for release. Upload the zip file as a new package on GameJolt. Tick Windows as platform.

⚠️ **GitHub.com Fallback** ⚠️