update for new release process as of July 2024

OatmealDome 2024-07-04 19:02:15 -04:00
parent a479da9baa
commit 9adf61344d
1 changed files with 20 additions and 22 deletions

@ -1,28 +1,26 @@
## 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
1. Merge master into the 'stable' branch such that after merge "stable == master". All following steps refer to that branch.
2. Switch the Dolphin i18n Bot to the 'stable' branch to make sure the stable release is being translated.
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.
4. Update `PRODUCT_VERSION` in `Installer/Installer.nsi`. And update the `DOLPHIN_VERSION_MAJOR` and `DOLPHIN_VERSION_MINOR` lines in `CMakeLists.txt`.
5. Create an **annotated** tag named after the version number.
6. Perform a **clean** Windows build of the "Release x64" configuration.
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).
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`
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`
10. TODO: Create Non-Windows installers.
11. Create a changes summary for broad consumption.
12. Write release announcement as a blog article on the homepage
13. Upload installers to homepage
14. Publish announcement blog article
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.
16. Forward announcement to social media (Facebook, …).
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.
1. Perform a translation sync with Transifex if creating a major release.
2. Create a new branch named `release-prep-xxxx`, where `xxxx` is the version number: `git checkout -b release-prep-xxxx <commit or tag>`
* If creating a major release, use the commit that the release should be based on.
* If creating a hotfix release, use the tag of the last release.
3. Cherry pick any necessary commits.
4. Update `DOLPHIN_VERSION_MAJOR` and `DOLPHIN_VERSION_MINOR` in `CMake/ScmRevGen.cmake`, and commit the result.
5. Push the branch to GitHub: `git push -u origin release-prep-xxxx`.
6. Smoke test the produced builds.
* The builds can be downloaded at `https://dolphin-emu.org/download/list/release-prep-xxxx/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 xxxx -m "Release for some date"`
8. Push the tag to GitHub: `git push origin xxxx`.
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. Merge the release branch back into master: `git checkout master`, `git merge --no-ff xxxx`