December 24, 2024, 07:31:13 am

The Gang Garrison 2 Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

NOTICE: Wondering where all the forums have gone?

Join the community Discord server!

Pages: [1]

Author Topic: GG2 release checklist  (Read 23988 times)

MedO

  • Owns this place
  • *****
  • Karma: 151
  • Offline Offline
  • Posts: 1754
GG2 release checklist
« on: January 06, 2011, 07:52:51 am »

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. :P

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.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:
<div class="dl-header">Gang Garrison 2 2.x.x</div>
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.
« Last Edit: April 23, 2018, 04:29:31 pm by MedO »
Logged
Quote from: Alfred North Whitehead
It is the business of the future to be dangerous; and it is among the merits of science that it equips the future for its duties.

Quote from: John Carmack
[...] if you have a large enough codebase, any class of error that is syntactically legal probably exists there.

ajf

  • (Ex-?)Developer and forum/web admin
  • *****
  • Karma: 7
  • Offline Offline
  • Posts: 3421
  • she's never quite as dead as you think
Re: GG2 release checklist
« Reply #1 on: July 08, 2013, 09:44:23 am »

Why devmessages.txt then download.php? Makes more sense to do the latter first, otherwise people will be told about an update and then download an old version!
Logged
did you know that spinning stars work like this???

I've seen things you people wouldn't believe. execute_strings on fire off the shoulder of Overmars. I watched object-beams glitter in the dark near the room_goto_fix. All those moments will be lost in time, like tears...in...rain. Time to die.

MedO

  • Owns this place
  • *****
  • Karma: 151
  • Offline Offline
  • Posts: 1754
Re: GG2 release checklist
« Reply #2 on: July 08, 2013, 01:39:38 pm »

Oh, good catch. It was in that order because it used to be gg2update.exe first.

Not that it really matters much, aside from "the large update file first" because all the othes will go up at roughly the same time anyway :)
« Last Edit: July 08, 2013, 01:40:44 pm by MedO »
Logged
Quote from: Alfred North Whitehead
It is the business of the future to be dangerous; and it is among the merits of science that it equips the future for its duties.

Quote from: John Carmack
[...] if you have a large enough codebase, any class of error that is syntactically legal probably exists there.

ajf

  • (Ex-?)Developer and forum/web admin
  • *****
  • Karma: 7
  • Offline Offline
  • Posts: 3421
  • she's never quite as dead as you think
Re: GG2 release checklist
« Reply #3 on: October 01, 2013, 05:50:11 pm »

With the new site design, it's news.html and downloads.html that need editing, index.html doesn't.

We should also remember to edit news.html when we make new announcements...
Logged
did you know that spinning stars work like this???

I've seen things you people wouldn't believe. execute_strings on fire off the shoulder of Overmars. I watched object-beams glitter in the dark near the room_goto_fix. All those moments will be lost in time, like tears...in...rain. Time to die.

ajf

  • (Ex-?)Developer and forum/web admin
  • *****
  • Karma: 7
  • Offline Offline
  • Posts: 3421
  • she's never quite as dead as you think
Re: GG2 release checklist
« Reply #4 on: October 05, 2013, 08:10:41 am »

Edited to reflect new release process. More complex than before. Oh well.
Logged
did you know that spinning stars work like this???

I've seen things you people wouldn't believe. execute_strings on fire off the shoulder of Overmars. I watched object-beams glitter in the dark near the room_goto_fix. All those moments will be lost in time, like tears...in...rain. Time to die.

Phantom Brave

  • All Hail Classicwell
  • Moderator
  • *****
  • Karma: 70
  • Offline Offline
  • Posts: 12532
  • Another one --
Re: GG2 release checklist
« Reply #5 on: November 06, 2013, 10:42:38 am »

Since it has different standards than release, I'll make a stripped down
Beta release guide

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. You do NOT want people cross-hosting betas.
  • 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 (annotated!) it with the intended version (e.g. V2.7b6).

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.7b6.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 Dev Discissions post
Make a new non-sticky thread in Developer Discussion containing the beta version number in the title, the changelog in the body, and a download link.

Upload and cleanup
Copy the gg2update_beta.zip and devmessages_beta.txt into the betadev home directory (preferably in that order). Edit the Dev Discussions post to include the link.
« Last Edit: March 28, 2018, 03:15:05 pm by MedO »
Logged

http://steamcommunity.com/id/wareya/
ladies and gentlemen i would like to announce that the fact of the matter is up that the fact of the matter is a fact and it matters

ajf

  • (Ex-?)Developer and forum/web admin
  • *****
  • Karma: 7
  • Offline Offline
  • Posts: 3421
  • she's never quite as dead as you think
Re: GG2 release checklist
« Reply #6 on: March 29, 2014, 07:35:19 pm »

Since I made news.html finally not need to be manually edited, I've removed that (horrible) step.
Logged
did you know that spinning stars work like this???

I've seen things you people wouldn't believe. execute_strings on fire off the shoulder of Overmars. I watched object-beams glitter in the dark near the room_goto_fix. All those moments will be lost in time, like tears...in...rain. Time to die.
Pages: [1]
 

Page created in 0.03 seconds with 37 queries.