Release Process - dolphin-emu/dolphin GitHub Wiki
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.
- Perform a translation sync with Transifex if creating a major release.
- Create a new branch:
git checkout -b <branch name> <base commit or tag>- If creating a major release, name the branch
release-prep-YYMMand base it on themasterbranch. - If creating a hotfix release, name the branch
release-prep-YYMMpand base it on the tag of the last release.
- If creating a major release, name the branch
- Add any necessary commits.
- If creating a major release and the previous release was a hotfix, merge the hotfix branch into the new release branch. The tree should generally be the same here as before the merge with the exception of
CMake/ScmRevGen.cmake. - If creating a hotfix release, cherry-pick the changes from
master.
- If creating a major release and the previous release was a hotfix, merge the hotfix branch into the new release branch. The tree should generally be the same here as before the merge with the exception of
- Update the version constants in
CMake/ScmRevGen.cmake, and commit the result.- Set
DOLPHIN_VERSION_MAJORtoYYMM. - Set
DOLPHIN_VERSION_MINORto the patch number. If creating a hotfix release, use the number corresponding to the patch letter (for example,ais1,bis2, etc). Otherwise, set to0.- This field must be set to a number as CPack does not support non-numerical values in the minor or patch version fields.
- The version constants commit should be the last one in the branch.
- Set
- Push the branch to GitHub:
git push -u origin <branch name>. - 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 (using
--force-with-lease). Remember that the version constants commit should be the last one in the branch, so the branch should be rebased or abandoned in favor of a fresh one.
- The builds can be downloaded at
- Create an annotated tag:
git tag -a <version> -m "Release for some date" - Push the tag to GitHub:
git push origin <version>. - The release builds will automatically show up on the normal download page.
- Publish the corresponding Progress Report, if any.
- After publishing, post the link to the Progress Report onto Twitter, Mastodon, Bluesky, etc.
- Push the new release to the
betaupdate track through theUpdate Tracksinterface on the dolphin-emu.org admin panel. - If this is a regular release, merge the release branch back into
master:git checkout master,git merge --no-ff <branch name>.-
--no-ffis important, as we require a merge commit.
-