Skip to content

document release steps #40

@jakoch

Description

@jakoch

Let's try to assemble and refine the steps for doing a release of Fifechan.

We need this document, because maintainers might change and we need to transfer the knowledge of "how to do a release properly" to the next person having the maintainer role.
In the end, it should from a checklist guide for the maintainer.

The content of this ticket is later moved into the developer manual.


FifeGUI Release Steps

This is a checklist documenting the steps required to do a FifeGUI release.

1. Prerequisites

  • you need to be maintainer (with push-access to the repository)
  • you need to have access to Github Actions
    • so that you can delete and re-trigger builds manually, when things go bust, while building and releasing automatically
  • your local Git repo must be synced with the main branch

2. Release Preparation & Versioning

  • pick new version number (e.g., 1.2.3).
  • update to new version number
  • update AUTHORS
  • update CHANGELOG
    • roll changelog data from the "unreleased" section to the new version number section
    • link the new header (by adding a new reference at the end of the changelog)
    • fix link to unreleased (by updating the old version number with the new version number)
  • git commit + git push - add changes until everything is updated and ready
  • pick release commit
    • this is the golden commit = the base for the release tag
    • check that the commit message doesn't contain [skip ci]
    • check that the builds of this commit are all green on CI services

3. Release Execution (Tagging)

The release is done automatically by tagging the commit.
The build artifacts of the tag are then released to Github Releases.

  • Identify the hash of the verified "Golden Commit".
  • git tag -a <tagname=version> <git-hash of release commit>
    • e.g. git tag -a 1.2.3 9fceb02: you are tagging the commit 9fceb02 as version 1.2.3.
  • git push origin <tagname=version>
    • e.g. git push origin 1.2.3: this pushes the single tag "0.1.3" to "origin"
  • wait for CI services to complete the Tag build
  • wait for CI services to deploy the build artifacts to Github Releases

4. Post-Release

  • Verify Release Page: Check that all build artifacts for the releae are attached.
  • Announce release in IRC channel.
  • Announce release in Discord channel.
    • Update the Overview Channel in the Unknown Horizon Discord Server
  • (Optional) Update website: update download links.

5. Emergency Rollback (If Build Fails)

  • Delete local tag: git tag -d <version>
  • Delete remote tag via CLI (git push --delete origin <version>) or GitHub UI.
  • Fix issues on branch, create new commit, and repeat from Step 2.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions