release process - Poobslag/turbofat GitHub Wiki

It would be nice to automate more of this. But, we don't want to waste time automating a process while it's still in flux.

Weekly Releases

Before releasing

Ensure all Gut tests pass. Most importantly, the backwards compatibility tests for save data, but the other tests are important too.

Apply any community monster updates.

Update the PO templates and message files:

  • Run ReleaseToolkit.tscn and click Run All
  • Run ./pybabel-extract.sh

Quit the Godot editor, and run ./generate-export-presets.sh to update the version number.

Add and push the resulting changes to GitHub with a comment like Update version to 0.4300.

Building the artifacts

In the Export Presets Dialog select Export All -> Release

Run the package.sh script to assemble the export results into artifacts suitable for uploading to GitHub and itch.io.

Upload the files to GitHub

Navigate to the Turbo Fat releases page and Draft a new release.

Set the fields appropriately:

Field Value
Tag Version v?.????
Target main
Release title ?.????
Description A few paragraphs about what changed in this release

Upload the Windows, Linux, Android and HTML5 releases to GitHub.

Announce the release on Discord.

Monthly Releases

Monthly releases are less frequent and involve some extra steps.

  • Create a development diary for YouTube.

    • When uploading the video, make sure to set its keywords: Godot, Turbo Fat, Gamedev
    • Make sure to link to Steam, itch.io, Github and Discord in the video description.
    Turbo Fat is an open-source game made with Godot. It is available for free on itch.io and GitHub.
    
    Steam: https://store.steampowered.com/app/2213410/Turbo_Fat/
    itch.io: https://poobslag.itch.io/turbo-fat
    GitHub: https://github.com/Poobslag/turbofat
    Twitter: https://twitter.com/poobslag/
    Discord: https://discord.gg/yU6aurT
    
    • Make the video easier to find:
      • Add the video to the 'Turbo Fat Development Diary' playlist
      • Post Youtube link to Bluesky, Twitter, Discord, Reddit
  • Test out the HTML5 release locally; Waterfox works OK (Chrome and FireFox can not run HTML5 games locally.)

  • Perform a 'Weekly Release', as described above.

  • Upload the Windows, Linux, Android and HTML5 releases to itch.io.

  • Create an itch.io development log.

  • Update the Steam page describing what you did this month

    • Steamworks -> Community & Moderation -> Post/Manage Events & Announcements
    • Create a 'news' item
    • Create an 800x450 image
    • Publish

Announce the release on Discord, Bluesky and Twitter.

Releasing to Steam

This process is still new, and these instructions will change.

  • Quit the Godot editor (to avoid project.godot conflicts.)
  • Change to the steam branch, by running git checkout steam.
  • Merge the steam branch with the main branch, by running git merge main.
  • Test the game:
    • Run the Release Toolkit.
    • Run the Gut tests.
    • Launch and play the game.
  • Quit the Godot editor, and run ./generate-export-presets.sh to update the version number.
  • Add and push the resulting changes to GitHub with a comment like Update version to 0.1100.
  • In the Export Presets Dialog select Export All -> Release
  • Run the package.sh script to assemble the export results into artifacts suitable for uploading to Steam.
  • extract the <turbofat-dir>\project\export\windows-steam\turbofat-win-v0.1100.zip file to <sdk-dir>\tools\ContentBuilder\content\turbofat-win
  • rename the .exe, .pck and .bat files to turbofat.exe, turbofat.pck and turbofat-troubleshoot.bat
  • edit turbofat-troubleshoot.bat to point to turbofat.exe
  • extract the <turbofat-dir>\project\export\linux-x11-steam\turbofat-linux-v0.8500.zip file to <sdk-dir>\tools\ContentBuilder\content\turbofat-linux
  • rename the .pck and .x86_64 files to turbofat.pck and turbofat.x86_64
  • Test the exported game before uploading it:
    • Run the <sdk-dir>\tools\ContentBuilder\content\turbofat-troubleshoot.bat file.
    • Examine the <home>\AppData\Roaming\Godot\app_userdata\Turbo Fat\logs\godot.log file to make sure Steam did not return any errors.
  • Launch SteamPipeGUI and uploading the resulting build to Steam.
  • In SteamWorks, navigate to SteamPipe -> Builds and assign the new builds to a branch.

Milestone Releases

Milestone releases are less frequent and involve some extra steps.

  • Before the release, try out the game on different target platforms.
  • Perform a 'Monthly Release', as described above. Use a round version number like 'v0.1100'
  • Update the screenshots in the /img folder.
  • Update the screenshots and cover image on Steam and itch.io.
  • Back up the code (.zip) and resources to google drive.
  • Back up the code and resources to a thumb drive.
  • Back up the lore and design docs.
  • Spend the following week refactoring.
⚠️ **GitHub.com Fallback** ⚠️