update for new release process as of July 2024
parent
a479da9baa
commit
9adf61344d
|
@ -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`
|
Loading…
Reference in New Issue