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
- 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-YYMM
and base it on the master
branch.
- If creating a hotfix release, name the branch
release-prep-YYMMp
and base it on the tag of the last release.
- Cherry pick any necessary commits.
- Update the version constants in
CMake/ScmRevGen.cmake
, and commit the result.
- Set
DOLPHIN_VERSION_MAJOR
to YYMM
.
- Set
DOLPHIN_VERSION_MINOR
to the patch number. If creating a hotfix release, use the number corresponding to the patch letter (for example, a
is 1
, b
is 2
, etc). Otherwise, set to 0
.
- The version constants commit should be the last one in the branch.
- 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.
- 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
beta
update track through the Update Tracks
interface 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-ff
is important, as we require a merge commit.