Update release documentation (#6472)
This commit is contained in:
@@ -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
|
||||
+123
-8
@@ -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
|
||||
|
||||
- [ ] 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`
|
||||
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`
|
||||
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`
|
||||
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`
|
||||
Make sure to leave the `## Unversioned` line unchanged for easier merges
|
||||
|
||||
- [ ] Ensure all GitHub API credentials from the `chatterino-ci` user are still valid
|
||||
```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
|
||||
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
|
||||
|
||||
- [ ] 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.
|
||||
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`
|
||||
- [ ] 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
|
||||
|
||||
- [ ] **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
|
||||
|
||||
Reference in New Issue
Block a user