Difference between revisions of "Release Checklist"

From Mudlet
Jump to navigation Jump to search
Line 34: Line 34:
 
## ☐ [[Howto:Update Downloads|update downloads on mudlet.org]]
 
## ☐ [[Howto:Update Downloads|update downloads on mudlet.org]]
 
## ☐ [automated] create changelog with [https://github.com/Mudlet/Mudlet/actions/workflows/generate-changelog.yml a github action]
 
## ☐ [automated] create changelog with [https://github.com/Mudlet/Mudlet/actions/workflows/generate-changelog.yml a github action]
## ☐ make a proper github release (it will be automatically posted to mudlet.org on publish)
+
## ☐ create a proper github release
 +
## ☐ [automated] insert list of translators into the post ([https://www.mudlet.org/thank-translators/crowdin.php tool])
 +
## ☐ [automated] insert list of coders into the post ([https://github.com/Mudlet/Mudlet/actions/workflows/generate-coder-attribution.yml tool])
 +
## ☐ publish release post, it will be automatically posted to mudlet.org on save
 
## ☐ delay rest of announcements until 3-4 days past the release; post when there are no verified issues in update
 
## ☐ delay rest of announcements until 3-4 days past the release; post when there are no verified issues in update
 
## ☐ post to #announcements in Discord. Publish the post, then add a follow-up @everyone tag. This will notify folks in the Mudlet server without showing the @everyone tag in all other syncronised servers
 
## ☐ post to #announcements in Discord. Publish the post, then add a follow-up @everyone tag. This will notify folks in the Mudlet server without showing the @everyone tag in all other syncronised servers

Revision as of 17:52, 8 January 2024

Mudlet release checklist

  1. 5 days before the release (14 if it's a long one)
    1. ☐ announce start of testing in Discord channel #mudlet-testing with the list of additions/improvements/fixes (but not infrastructure), and add link to latest download builds (from Latest Branch Snapshots, but double check that sha matches the latest commit).
    2. ☐ [automated] update mudlet.ts with the latest translations strings for translators to translate
    3. ☐ [automated] update mudlet_en_US.ts with the latest translation strings, translate/update the few plural forms it contains as necessary and then generate the binary translation mudlet_en_US.qm file and merge it into the repo (see Translating Mudlet - English (American) translation).
    4. ☐ merge outstanding approved pull requests
    5. ☐ create a new release-<version> branch off development
    6. ☐ go through every single commit (in main repo and installers) and ensure all new functionality is documented
    7. ☐ [automated] update Geyser docs
    8. ☐ [automated] update built-in packages and scripts (IRE mapping script, ...)
    9. ☐ [automated] update edbee to latest in our fork, and the subsequent submodule
    10. ☐ update Patreon supporters in About tab
    11. ☐ check all regressions to see if any must be fixed before the release
    12. ☐ get testers to sign off (via Discord reaction) that they tested the release and it is fine with them
      1. if a tester doesn't sign off for 2 releases, notify them, if they don't do it on the next one, remove them from the testers team
    13. ☐ go through every single commit and write up a newspost with the latest highlights
  2. on release day
    1. ☐ create a new release in the 'release' channel in dblsqd. Make sure to enter the changelog right away, as it cannot be edited after. Include the full version number and a link to the release post (example). A command-line variant of this is: dblsqd release -a mudlet -c release -m "<message>. <a href="https://mudlet.org/4-##">See the changelog</a>." <version, ie 4.11.0>
    2. ☐ merge latest translations from Crowdin
    3. ☐ merge all Area 51 functions into main wiki
    4. purge Lua_Functions cache to ensure the latest functions are visible
    5. ☐ merge latest autocomplete json
    6. ☐ update mudlet.pro and CMakeLists.txt to new version and strip out BUILD to be empty in release branch (release process starts here)
    7. ☐ tag in git
    8. ☐ manually create source code package following this
    9. ☐ reset BUILD in release branch to be -dev
    10. ☐ wait for the builds to complete...
    11. ☐ manually upload artifacts to https://www.mudlet.org/wp-content/files/?C=M;O=D through webmin. Linux and macOS ones will be available as artifacts on the Github job, while Windows is an artifact on the Appveyor job.
    12. ☐ manually link uploaded artifacts to dblsqd[1]:
    13. ☐ test that all binaries launch and work
    14. ☐ create the next milestone in github
    15. ☐ update repo-metadata.yml to the next release version
    16. ☐ close current github milestone
    17. update downloads on mudlet.org
    18. ☐ [automated] create changelog with a github action
    19. ☐ create a proper github release
    20. ☐ [automated] insert list of translators into the post (tool)
    21. ☐ [automated] insert list of coders into the post (tool)
    22. ☐ publish release post, it will be automatically posted to mudlet.org on save
    23. ☐ delay rest of announcements until 3-4 days past the release; post when there are no verified issues in update
    24. ☐ post to #announcements in Discord. Publish the post, then add a follow-up @everyone tag. This will notify folks in the Mudlet server without showing the @everyone tag in all other syncronised servers
    25. ☐ post news to https://launchpad.net/mudlet
    26. ☐ post thread on forums.mudlet.org
    27. ☐ post update on achaea, starmourn, imperian, lusternia, pkuxkx.net, softpedia
    28. ☐ post update on twitter, reddit, http://arkadia.rpg.pl, muder.ru
    29. ☐ email to [email protected] about the update
    30. ☐ submit mudlet windows installer to avg and avast whitelisting
    31. ☐ merge development into master branch
    32. ☐ update Linux distro maintainers, Chocolatey maintainer, flag package outdated on arch (release process ends here)
    33. ☐ merge, don't squash or rebase, the release branch into development (but don't delete right away, keep it around for a potential hotfix if needed. Delete after the next release is done). Do it right away so next day's PTB's versions is the new release.
    34. create polls for most popular changes


[1]:

 dblsqd push -a mudlet -c release -r "<release>" -s mudlet --type "standalone" --attach linux:x86_64 "https://www.mudlet.org/wp-content/files/Mudlet-<release>-linux-x64.AppImage.tar"
 dblsqd push -a mudlet -c release -r "<release>" -s mudlet --type "standalone" --attach mac:x86_64 "https://www.mudlet.org/wp-content/files/Mudlet-<release>.dmg"
 dblsqd push -a mudlet -c release -r "<release>" -s mudlet --type "standalone" --attach win:x86 "https://www.mudlet.org/wp-content/files/Mudlet-<release>-windows-installer.exe"


Individual contributor TODOs