6.0 KiB
Checklist for making a stable release (e.g. 2.5.4)
I will be using 2.3.4 as the example release in this document.
Before making the release
- Are there any issues or PRs still labeled to be included in this release? If yes, remove the label/milestone.
- Do the scopes in
src/providers/twitch/TwitchAccountManager.cppmatch the ones in the website repo? https://github.com/Chatterino/website/blob/main/pages/client_login.tsx
In the release PR
-
Updated version code in
src/common/Version.hpp- inline const QString CHATTERINO_VERSION = QStringLiteral("2.3.4-beta.1"); + inline const QString CHATTERINO_VERSION = QStringLiteral("2.3.4"); -
Updated version code in
CMakeLists.txt
If you made a beta release, this step will not be necessary.project(chatterino - VERSION 2.3.3 + VERSION 2.3.4 DESCRIPTION "Chat client for twitch.tv" HOMEPAGE_URL "https://chatterino.com/" ) -
Add a new release at the top of the
releaseskey inresources/com.chatterino.chatterino.appdata.xml
The format for beta releases here differs, you have to use a tilde instead, and omit the period before the beta number.<releases> + <release version="2.3.4" date="2020-02-03"> + <url>https://github.com/Chatterino/chatterino2/releases/tag/v2.3.4</url> + </release> <release version="2.3.4~beta1" date="2020-02-02"> <url>https://github.com/Chatterino/chatterino2/releases/tag/v2.3.4-beta.1</url> </release> -
Updated version code in
.CI/chatterino-installer.iss
If you made a beta release, this step will not be necessary.#define MyAppName "Chatterino" - #define MyAppVersion "2.3.3" + #define MyAppVersion "2.3.4" #define MyAppPublisher "Chatterino Team" -
Update the changelog
## Unversionedsection to the new versionCHANGELOG.md
Make sure to leave the## Unversionedline unchanged for easier merges# Changelog ## Unversioned + + ## 2.3.4 - Bugfix: Foo (#2)
After the PR has been created
You will need to add the skip-changelog-checker label to the PR since we are doing something you're not meant to do in a normal PR.
- Ensure all GitHub API credentials from the
chatterino-ciuser are still valid
Sign into thechatterino-ciuser and validate that theWinGetandHomebrewPersonal access tokens are valid: https://github.com/settings/tokens - Make a new tag on
pajlada/serialize,pajlada/signals, andpajlada/settingscalledchatterino/2.3.4pointing at the commit hash Chatterino uses.
After the PR has been merged
- Tag the release
Ensure you're on the correct release locallygit tag v2.3.4 --annotate --message v2.3.4 git push origin v2.3.4 - Manually run the create-installer workflow.
This is only necessary if the tag was created after the CI in the main branch finished. - If the winget releaser action doesn't work as expected, you can run this manually using Komac, replacing
v2.5.2with the current release:
komac update ChatterinoTeam.Chatterino --version 2.5.2 --urls https://github.com/Chatterino/chatterino2/releases/download/v2.5.2/Chatterino.Installer.exe - Ensure changelog on website is up-to-date
After all GitHub actions have ran
Prepare the binaries
- Make a new directory in your
chatterino-releasesdirectory - Find the Create installer action for the release-tagged commit and download:
Chatterino.Installer.exe
- Find the Build action for the release-tagged commit and download:
Chatterino-ubuntu-20.04-*.deb, renamed toChatterino-Ubuntu-20.04.debChatterino-ubuntu-22.04-*.deb, renamed toChatterino-Ubuntu-22.04.debChatterino-ubuntu-24.04-*.deb, renamed toChatterino-Ubuntu-24.04.debchatterino-windows-x86-64-*-symbols.pdb.7z, renamed toChatterino-Windows-debug-symbols.pdb.7zchatterino-windows-x86-64-*.zip
- Massage the portable release:
- Unzip
chatterino-windows-x86-64-*.zip - Edit the
modesfile to sayportableand nothing else - Copy the
updater.1directory from an old portable release. Tree structure should look like this:Chatterino2 ├── chatterino.exe ... ├── updater.1 │ ├── ChatterinoUpdater.exe │ ├── ICSharpCode.SharpZipLib.dll │ └── SharpZipLib_LICENSE.txt ... - Zip up the portable release again:
zip -r Chatterino.Portable.zip Chatterino2 - Unzip
- create a SHA256 checksum file:
sha256sum * > sha256-checksums.txt - Verify release structure
. ├── Chatterino-10.15.dmg ├── Chatterino.dmg ├── Chatterino.Installer.exe ├── Chatterino.Portable.zip ├── Chatterino-Ubuntu-20.04.deb ├── Chatterino-Ubuntu-22.04.deb ├── Chatterino-Ubuntu-24.04.deb ├── Chatterino-Windows-debug-symbols.pdb.7z └── sha256-checksums.txt - Notarize the macOS releases
xcrun notarytool submit Chatterino-10.15.dmg --wait --keychain-profile notarytool-password --keychain /Users/pajlada/Library/Keychains/chatterino-2025.keychain-db ... xcrun notarytool submit Chatterino.dmg --wait --keychain-profile notarytool-password --keychain /Users/pajlada/Library/Keychains/chatterino-2025.keychain-db ...
Creating the release
- Create a GitHub release & upload all files in your release directory
- Link the release to fourtf and ask him to start the release process from his end
After the binaries have been uploaded to fourtf's bucket
- Re-run the Publish Homebrew Cask on Release action
- Update links in the Chatterino website to point to the new release
- Remove the "hold for release" label on all issues and PRs.