Skip to content
Jack Greiner edited this page Apr 28, 2024 · 22 revisions

Pre-work

  • Ensure translations are up to date. (meson compile naev-pot, commit, push, let Weblate do its thing.)
  • Ahead of a major release: log into Weblate, navigate to "Manage"/"Post Announcement" in the (lower) menu bar, and give the translators advance notice.
  • Communication: have the CHANGELOG ready, have a blarg post staged in naev-website:upcoming. Update content/downloads.md as well.
  • Make sure that the update (dat/events/updater.lua) triggers on the correct versions and update script as necessary.
  • Commit an update to meson.build which bumps the project version.
  • In case of a stable release, push an update to org.naev.naev.metainfo.xml.

Tagging

git tag v0.X.0-beta.1
git push origin v0.X.0-beta.1

Watch the workflow run:

  • Pre-Release (beta release)
  • Release (stable release)

If bad things happen

To redo a release:

  1. Delete the created release on the Github releases page
  2. Retag the release
    # Delete local tag (if you have it)
    git tag -d v0.X.0-beta.1
    # Push deletion
    git push origin :refs/tags/v0.X.0-beta.1
    # Retag locally
    git tag v0.X.0-beta.1
    # Push tag
    git push origin v0.X.0-beta.1

Website

Merge naev-website:upcoming to main and push. The website should update.

App Stores

Stable releases only:

  1. Visit the SteamWorks builds page.
  2. Create a new app branch if one does not exist, for the current patch series (e.g. '0.11.x').
    • Take note of the build number that is currently on the default branch.
  3. Update the 'previous' branch with the current build on the default branch.
    • If releasing a new version series (e.g. 0.12.0 from 0.11.x) make sure the previous version branch (e.g. 0.11.x) is set to the same build as the default branch, that branch will host the last patch for that version series.
  4. Update the default branch to the newly pushed build.
    • Workflows aren't allowed to touch the default branch, so this step is manual.

Update Steam Soundtrack

  1. Visit the SteamWorks builds page.
  2. Update the default branch to the newly pushed build.
    • Workflows aren't allowed to touch the default branch, so this step is manual.

Steam announcements:

  1. Visit the SteamWorks landing page
  2. Navigate to Community & Moderation, Post/Manage Events & Announcements, and clone/edit the appropriate template in the Drafts (hidden, unpublished) section.
    • Follow the instructions in the template.
    • You should be able to import HTML from the website.
  3. Ensure you link the announcement with the current build that is being announced
    • The beta branch for pre-release announcements
    • The default branch for stable release announcements.

Itch announcements:

  1. Visit the itch.io devlog page.
    • Can be done through the Itch client as well.
  2. Write a new post.
  3. Make sure the right files are attached to the devlog post
    • This should be the release artefacts for Linux, macOS and Windows (and the soundtrack for stable releases.)

Discord announcements

  1. Send an announcement in the #announcements channel letting people know a new release is available.

Branching after major releases

It's almost immediately useful to have a git branch for the new release series, in case bug fixes need to be backported, and also to have Weblate backport translation updates where possible. So:

  • Push a branch based off the released version (e.g., git checkout -b 0.10.x v0.10.0 && git push -u origin 0.10.x).
  • Sign into Weblate and do a manual VC update. (Follow link and press the "Update" button, so Weblate notices the new branch.)
  • Create a new component. Use the "Additional branch" tab to (e.g.) create "Naev-0.10.x" based on existing "Naev-0.9.x" using branch "0.10.x".
  • The operation takes a long time, and you may need to force-refresh the progress page. When the operation is done, it will show a checklist rather than a log.
  • From the new project's page, use the Manage>Add-ons menu option to add Update LINGUAS file and Update PO files to match POT (msgmerge).
  • Set up a Webhook to notify Weblate of repo activity. This may be a privileged operation only bobbens can do.
  • Navigate to the previous release's project and, assuming it's time, use the Manage>Removal menu option to delete it.

Rejoice

It's time to celebrate with pineapple pizza, Naev's official party food.

Clone this wiki locally