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 Extract Localizables
  • 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 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 and Twitter.

Releasing to Steam

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

  • Change to the steam branch, by running git checkout steam.
  • Rebase the steam branch with the main branch, by running git rebase main.
  • Quit the Godot editor, and run ./generate-export-presets.sh to update the version number. Use a round version number like 'v0.1100'.
  • Add and force 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 and .pck files to turbofat.exe and turbofat.pck
  • 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-linux.pck and turbofat-linux.x86_64
  • Launch SteamWorksGUI, 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** ⚠️