20
Release Process
OatmealDome edited this page 2025-02-27 23:22:37 -05:00

Introduction

Creating a Dolphin Release does require some steps, but if you know what to do it's fairly straightforward.

Releases are versioned as follows: YYMM, where YY is the current year, and MM is the current month. Hotfix releases are versioned as follows: YYMMp, where p is the hotfix letter. For example, 2407 would be a release made in July 2024, and 2407a would be the first hotfix for that release.

Releases can only be created by core developers.

Details

  1. Perform a translation sync with Transifex if creating a major release.
  2. Create a new branch: git checkout -b <branch name> <base commit or tag>
    • If creating a major release, name the branch release-prep-YYMM and specify the commit that the release should be based on.
    • If creating a hotfix release, name the branch release-prep-YYMMp and base it on the tag of the last release.
  3. Cherry pick any necessary commits.
  4. Update the version constants in CMake/ScmRevGen.cmake, and commit the result.
  5. Push the branch to GitHub: git push -u origin <branch name>.
  6. Smoke test the produced builds.
    • The builds can be downloaded at https://dolphin-emu.org/download/list/release-prep-YYMM/1/.
    • Now is the time to fix any last-minute issues. Additional builds can be created by pushing new commits to GitHub.
  7. Create an annotated tag: git tag -a <version> -m "Release for some date"
  8. Push the tag to GitHub: git push origin <version>.
  9. The release builds will automatically show up on the normal download page.
  10. Publish the corresponding Progress Report, if any.
    • After publishing, post the link to the Progress Report onto Twitter, Mastodon, Bluesky, etc.
  11. Push the new release to the beta update track through the Update Tracks interface on the dolphin-emu.org admin panel.
  12. Merge the release branch back into master: git checkout master, git merge --no-ff <branch name>.
    • --no-ff is important, as we require a merge commit.