gossip/packaging/RELEASE.md

150 lines
3.1 KiB
Markdown
Raw Normal View History

2023-10-05 06:49:14 +00:00
# RELEASE
2023-09-15 02:19:28 +00:00
## Phase 1 - Test and stabilize the codebase
2023-09-15 02:19:28 +00:00
### Don't update dependencies
2023-09-15 02:19:28 +00:00
Don't do a `cargo update`. Too risky right before a release.
Do that kind of stuff right *after* releasing.
2023-09-15 02:19:28 +00:00
### Test it on Windows and MacOS.
2024-04-14 22:31:01 +00:00
Yes, actually do this. We often find problems.
2024-04-14 22:31:01 +00:00
### Test it with a new user on Linux, Windows and MacOS.
2024-04-14 22:31:01 +00:00
Many problems come up for new users that we normally never see.
2023-09-15 02:19:28 +00:00
### fmt, clippy, test
2023-09-15 02:19:28 +00:00
```bash
cargo clippy
cargo test
cargo fmt
```
### Update documentation
2023-09-15 02:19:28 +00:00
Update the following
2023-09-27 01:54:29 +00:00
- README.md
- LICENSE.txt may need a copyright range update
- Help page in the UI
2024-04-14 22:31:01 +00:00
### Pre-update the packaging files
2024-04-14 22:31:01 +00:00
- packaging/debian/Dockerfile may need a new rust version
- packaging/windows/gossip.VERSION.wxs will need 3 edits
- Update the Package.Version near the top
- Update the SummaryInformation.Description near the bottom
- Update the Package.ProductCode GUID near the top to a new random one
2024-04-14 22:31:01 +00:00
## Phase 2 - Release
2023-09-15 02:19:28 +00:00
- Create a new release branch (if not a point release)
- Update */Cargo.toml to change the version number
- COMPILE! at least once to get a new Cargo.lock
- Commit the three changed Cargo files with the commit description as the release number, e.g. "0.11.1"
- Tag the relase with a 'v' prefix, e.g. 'v0.11.1'
- Push the branch and the tag to github:
2023-09-15 02:19:28 +00:00
```bash
git push github
git push --tags github
```
2023-09-15 02:19:28 +00:00
## Phase 3 - Build the packages
2023-09-15 02:19:28 +00:00
### Debian
2023-09-15 02:19:28 +00:00
```bash
cd debian
./deb.sh
```
2024-04-14 22:31:01 +00:00
### AppImage
2023-09-15 02:19:28 +00:00
```bash
cd appimage
./build-appimage.sh
```
2023-09-15 02:19:28 +00:00
### Flatpak
2023-10-05 06:49:14 +00:00
- Follow the [Flatpak README](flatpak/README.md)
2023-09-15 02:19:28 +00:00
### Windows
2023-09-15 02:19:28 +00:00
- Follow the [Windows README](windows/README.md)
2024-01-01 19:39:08 +00:00
### MacOS
2024-01-01 19:39:08 +00:00
```bash
cd macos
./build_macos.sh
./build_macos_intel.sh
```
2024-01-01 19:39:08 +00:00
## Phase 4 - Describe the release
2023-09-15 02:19:28 +00:00
Review the changes from last time, and create a summary description in a README.txt file
and put that into a packaging directory.
## Phase 5 - Bundle
2023-09-15 02:19:28 +00:00
### Copy binaries into the release directory:
2023-09-15 02:19:28 +00:00
You should have six binary artifacts from the build phase, like this:
2023-03-07 01:23:51 +00:00
- gossip-$VERSION-1_amd64.deb
- gossip-$VERSION-Darwin-arm64.dmg
- gossip-$VERSION-Darwin-x86_64.dmg
2024-07-27 22:43:31 +00:00
- gossip-$VERSION.flatpak
- gossip-$VERSION.msi
- gossip-$VERSION-x86_64.AppImage.tar.gz
Copy these into the release directory.
### Copy these into the release directory:
2023-03-07 01:23:51 +00:00
- gossip/filter.rhai.example
- gossip/LICENSE.txt
- gossip/packaging/
- gossip/docs/README.flatpak.txt
- gossip/docs/README.macos.txt
- gossip/docs/README.upgrading.txt
2023-03-11 23:16:27 +00:00
### Create a changelog and put into the release directory
2023-03-11 23:16:27 +00:00
Substituting for $PREV, $CURRENT and $PACKAGINGDIR:
2023-03-11 23:16:27 +00:00
```bash
2024-07-27 22:43:31 +00:00
git log --reverse --oneline v$PREV..v$CURRENT > $PACKAGINGDIR/changelog-$CURRENT.txt
```
2023-10-05 06:49:14 +00:00
### Create a file with the SHA hashes
2023-03-07 01:23:51 +00:00
```bash
SHA256sum * > ./SHA256sums.txt
```
2023-10-05 06:49:14 +00:00
## Phase 6 - Publish
2023-03-07 01:23:51 +00:00
On GitHub, make a new release.
2023-10-05 06:49:14 +00:00
Use the git tag of the release
2023-03-07 01:23:51 +00:00
Drag all the files into the release
2023-10-05 06:49:14 +00:00
In the release description, copy the contents of README.txt
2023-03-07 01:23:51 +00:00
Publish as the latest release
## Phase 7 - Update Archlinux User Repository
- Update the AUR packages
## Phase 8 - Announce on NOSTR
- Announce release on nostr under gossip account
- Repost as Mike Dilger