update for new release process as of July 2024

OatmealDome 2024-07-04 19:02:15 -04:00
parent a479da9baa
commit 9adf61344d

@ -1,28 +1,26 @@
## Introduction ## Introduction
Doing a Dolphin Release does require some steps, but if you know what to do it's fairly straightforward. Creating a Dolphin Release does require some steps, but if you know what to do it's fairly straightforward.
Releases are supposed to be tagged on the "stable" branch. Whenever a major release is about to be released, the "master" branch needs to be merged into "stable". For hotfix releases, the important commits should be cherry-picked manually from master. Releases are versioned as follows: `YYMM`, where `YY` is the current year, and `MM` is the current month. If creating a hotfix release, a letter is appended to the end of the version number. For example, `2407a` would be the first hotfix for a release made in July 2024.
Releases can only be created by [core developers](https://github.com/orgs/dolphin-emu/teams/core-developers).
## Details ## Details
1. Merge master into the 'stable' branch such that after merge "stable == master". All following steps refer to that branch. 1. Perform a translation sync with Transifex if creating a major release.
2. Switch the Dolphin i18n Bot to the 'stable' branch to make sure the stable release is being translated. 2. Create a new branch named `release-prep-xxxx`, where `xxxx` is the version number: `git checkout -b release-prep-xxxx <commit or tag>`
3. Push regression fixes to the 'stable' branch, these will be merged into master at the end, but may be merged to master during this process. * If creating a major release, use the commit that the release should be based on.
4. Update `PRODUCT_VERSION` in `Installer/Installer.nsi`. And update the `DOLPHIN_VERSION_MAJOR` and `DOLPHIN_VERSION_MINOR` lines in `CMakeLists.txt`. * If creating a hotfix release, use the tag of the last release.
5. Create an **annotated** tag named after the version number. 3. Cherry pick any necessary commits.
6. Perform a **clean** Windows build of the "Release x64" configuration. 4. Update `DOLPHIN_VERSION_MAJOR` and `DOLPHIN_VERSION_MINOR` in `CMake/ScmRevGen.cmake`, and commit the result.
7. Install NSIS if you haven't already; Create the Windows installers via the `Installer_win32.nsi` and `Installer_x64.nsi` files respectively (stored inside the `Installer` subdirectory). 5. Push the branch to GitHub: `git push -u origin release-prep-xxxx`.
8. XX I'm using this to compile for macOS, but it needs to be updated as post-4.0.1 has libusbx built in and LTO should be in the CMakeLists: `cmake . -DCMAKE_C_FLAGS="-O4 -DNDEBUG" -DCMAKE_CXX_FLAGS="-O4 -DNDEBUG -DLIBUSB_INCLUDE_DIR=/opt/usb/include/libusb-1.0 -DLIBUSB_LIBRARIES=/opt/usb/lib/libusb-1.0.0.dylib && make -j8` 6. Smoke test the produced builds.
9. For macOS, create a dmg as follows: `hdiutil create dolphin-4.0.1.dmg -volname "Dolphin 4.0.1" -fs HFS+ -srcfolder Binaries -ov` * The builds can be downloaded at `https://dolphin-emu.org/download/list/release-prep-xxxx/1/`.
10. TODO: Create Non-Windows installers. * Now is the time to fix any last-minute issues. Additional builds can be created by pushing new commits to GitHub.
11. Create a changes summary for broad consumption. 7. Create an **annotated** tag: `git tag -a xxxx -m "Release for some date"`
12. Write release announcement as a blog article on the homepage 8. Push the tag to GitHub: `git push origin xxxx`.
13. Upload installers to homepage 9. The release builds will automatically show up on the normal download page.
14. Publish announcement blog article 10. Publish the corresponding Progress Report, if any.
15. Create a minimalistic forum thread about the release (cf. [the 4.0 announcement](https://forums.dolphin-emu.org/Thread-dolphin-4-0-release-announcement)) and update the blog article to link to this thread for discussion. * After publishing, post the link to the Progress Report onto Twitter, Mastodon, Bluesky, etc.
16. Forward announcement to social media (Facebook, …). 11. Merge the release branch back into master: `git checkout master`, `git merge --no-ff xxxx`
17. Update the forum header to say that a new release has happened (Admin CP, Templates&Style, Templates, Simpl Templates, Header Templates, header, Options, Full Edit, then update the html with the new version and links)
18. Update the wiki templates, [Sitenotice](https://wiki.dolphin-emu.org/index.php?title=MediaWiki:Sitenotice) and [Anonnotice](https://wiki.dolphin-emu.org/index.php?title=MediaWiki:Anonnotice), with the appropriate version and links.
19. Merge stable back to master to bump the version number.
20. Switch the Dolphin i18n Bot back to the 'master' branch and push the new translation strings.