Update release documentation (#6472)

This commit is contained in:
pajlada
2025-09-21 11:38:21 +02:00
committed by GitHub
parent a40debb8ee
commit 4927ad8bb7
2 changed files with 257 additions and 8 deletions
+134
View File
@@ -0,0 +1,134 @@
# Checklist for making a beta release (e.g. 2.3.4-beta.1)
I will be using `2.3.4-beta.1` as the example release in this document.
## In the release PR
- [ ] Updated version code in `src/common/Version.hpp`
```diff
- inline const QString CHATTERINO_VERSION = QStringLiteral("2.3.3");
+ inline const QString CHATTERINO_VERSION = QStringLiteral("2.3.4-beta.1");
```
- [ ] Updated version code in `CMakeLists.txt`
This can only be "whole versions", so we have to "round it" to the next stable release.
```diff
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 `releases` key in `resources/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.
```diff
<releases>
+ <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>
<release version="2.3.3" date="2020-01-01">
<url>https://github.com/Chatterino/chatterino2/releases/tag/v2.3.3</url>
</release>
```
- [ ] Updated version code in `.CI/chatterino-installer.iss`
This can only be "whole versions", so we have to "round it" to the next stable release.
```diff
#define MyAppName "Chatterino"
- #define MyAppVersion "2.3.3"
+ #define MyAppVersion "2.3.4"
#define MyAppPublisher "Chatterino Team"
```
- [ ] Update the changelog `## Unversioned` section to the new version `CHANGELOG.md`
Make sure to leave the `## Unversioned` line unchanged for easier merges
```diff
# Changelog
## Unversioned
+
+ ## 2.3.4-beta.1
- Bugfix: Foo (#1)
```
## After the PR has been merged
- [ ] Tag the release
Ensure you're on the correct release locally
```sh
git tag v2.3.4-beta.1 --annotate --message v2.3.4-beta.1
git push origin v2.3.4-beta.1
```
- [ ] Manually run the [create-installer](https://github.com/Chatterino/chatterino2/actions/workflows/create-installer.yml) workflow.
This is only necessary if the tag was created after the CI in the main branch finished.
- [ ] Ensure changelog on website is up-to-date
## After all GitHub actions have ran
### Prepare the binaries
- [ ] Make a new directory in your `chatterino-releases` directory
- [ ] 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 to `Chatterino-Ubuntu-20.04.deb`
- `Chatterino-ubuntu-22.04-*.deb`, renamed to `Chatterino-Ubuntu-22.04.deb`
- `Chatterino-ubuntu-24.04-*.deb`, renamed to `Chatterino-Ubuntu-24.04.deb`
- `chatterino-windows-x86-64-*-symbols.pdb.7z`, renamed to `Chatterino-Windows-debug-symbols.pdb.7z`
- `chatterino-windows-x86-64-*.zip`
- [ ] Massage the portable release:
- Unzip `chatterino-windows-x86-64-*.zip`
- Edit the `modes` file to say `portable` and nothing else
- Copy the `updater.1` directory 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:
```sh
zip -r Chatterino.Portable.zip Chatterino2
```
- [ ] create a SHA256 checksum file:
```sh
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
```sh
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
+121 -6
View File
@@ -1,31 +1,146 @@
# Checklist for making a release # 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.
## In the release PR ## In the release PR
- [ ] Updated version code in `src/common/Version.hpp` - [ ] Updated version code in `src/common/Version.hpp`
```diff
- 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` - [ ] Updated version code in `CMakeLists.txt`
This can only be "whole versions", so if you're releasing `2.4.0-beta` you'll need to condense it to `2.4.0` If you made a beta release, this step will not be necessary.
```diff
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 `releases` key in `resources/com.chatterino.chatterino.appdata.xml` - [ ] Add a new release at the top of the `releases` key in `resources/com.chatterino.chatterino.appdata.xml`
This cannot use dash to denote a pre-release identifier, you have to use a tilde instead. The format for beta releases here differs, you have to use a tilde instead, and omit the period before the beta number.
```diff
<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` - [ ] Updated version code in `.CI/chatterino-installer.iss`
This can only be "whole versions", so if you're releasing `2.4.0-beta` you'll need to condense it to `2.4.0` If you made a beta release, this step will not be necessary.
```diff
#define MyAppName "Chatterino"
- #define MyAppVersion "2.3.3"
+ #define MyAppVersion "2.3.4"
#define MyAppPublisher "Chatterino Team"
```
- [ ] Update the changelog `## Unversioned` section to the new version `CHANGELOG.md` - [ ] Update the changelog `## Unversioned` section to the new version `CHANGELOG.md`
Make sure to leave the `## Unversioned` line unchanged for easier merges Make sure to leave the `## Unversioned` line unchanged for easier merges
```diff
# Changelog
## Unversioned
+
+ ## 2.3.4
- Bugfix: Foo (#2)
```
## After the PR has been created
- [ ] Ensure all GitHub API credentials from the `chatterino-ci` user are still valid - [ ] Ensure all GitHub API credentials from the `chatterino-ci` user are still valid
TODO: Add steps for how you can validate this, and for how to recreate the credentials. Also probably what exact credentials we need
## After the PR has been merged ## After the PR has been merged
- [ ] Tag the release - [ ] Tag the release
Ensure you're on the correct release locally
```sh
git tag v2.3.4 --annotate --message v2.3.4
git push origin v2.3.4
```
- [ ] Manually run the [create-installer](https://github.com/Chatterino/chatterino2/actions/workflows/create-installer.yml) workflow. - [ ] Manually run the [create-installer](https://github.com/Chatterino/chatterino2/actions/workflows/create-installer.yml) workflow.
This is only necessary if the tag was created after the CI in the main branch finished. This is only necessary if the tag was created after the CI in the main branch finished.
- [ ] **Stable release only** If the winget releaser action doesn't work as expected, you can run this manually using [Komac](https://github.com/russellbanks/Komac), replacing `v2.5.2` with the current release: - [ ] If the winget releaser action doesn't work as expected, you can run this manually using [Komac](https://github.com/russellbanks/Komac), replacing `v2.5.2` with 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` `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 - [ ] Ensure changelog on website is up-to-date
## After all GitHub actions have ran
### Prepare the binaries
- [ ] Make a new directory in your `chatterino-releases` directory
- [ ] 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 to `Chatterino-Ubuntu-20.04.deb`
- `Chatterino-ubuntu-22.04-*.deb`, renamed to `Chatterino-Ubuntu-22.04.deb`
- `Chatterino-ubuntu-24.04-*.deb`, renamed to `Chatterino-Ubuntu-24.04.deb`
- `chatterino-windows-x86-64-*-symbols.pdb.7z`, renamed to `Chatterino-Windows-debug-symbols.pdb.7z`
- `chatterino-windows-x86-64-*.zip`
- [ ] Massage the portable release:
- Unzip `chatterino-windows-x86-64-*.zip`
- Edit the `modes` file to say `portable` and nothing else
- Copy the `updater.1` directory 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:
```sh
zip -r Chatterino.Portable.zip Chatterino2
```
- [ ] create a SHA256 checksum file:
```sh
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
```sh
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 ## After the binaries have been uploaded to fourtf's bucket
- [ ] **Stable release only** Re-run the Publish Homebrew Cask on Release action - [ ] Re-run the Publish Homebrew Cask on Release action
- [ ] Update links in the Chatterino website to point to the new release - [ ] Update links in the Chatterino website to point to the new release