2023-10-05 06:49:14 +00:00
|
|
|
# RELEASE
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
## Phase 1 - Test and stabilize the codebase
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### Don't update dependencies
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +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
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### Test it on Windows and MacOS.
|
2024-04-14 22:31:01 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
Yes, actually do this. We often find problems.
|
2024-04-14 22:31:01 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### Test it with a new user on Linux, Windows and MacOS.
|
2024-04-14 22:31:01 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
Many problems come up for new users that we normally never see.
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### fmt, clippy, test
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
```bash
|
|
|
|
cargo clippy
|
|
|
|
cargo test
|
|
|
|
cargo fmt
|
|
|
|
```
|
|
|
|
### Update documentation
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
Update the following
|
2023-09-27 01:54:29 +00:00
|
|
|
|
2024-07-21 23:44:37 +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
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### Pre-update the packaging files
|
2024-04-14 22:31:01 +00:00
|
|
|
|
2024-07-21 23:44:37 +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
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
## Phase 2 - Release
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +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
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
```bash
|
|
|
|
git push github
|
|
|
|
git push --tags github
|
|
|
|
```
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
## Phase 3 - Build the packages
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### Debian
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
```bash
|
|
|
|
cd debian
|
|
|
|
./deb.sh
|
|
|
|
```
|
2024-04-14 22:31:01 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### AppImage
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
```bash
|
|
|
|
cd appimage
|
|
|
|
./build-appimage.sh
|
|
|
|
```
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### Flatpak
|
2023-10-05 06:49:14 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
- Follow the [Flatpak README](flatpak/README.md)
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### Windows
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
- Follow the [Windows README](windows/README.md)
|
2024-01-01 19:39:08 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### MacOS
|
2024-01-01 19:39:08 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
```bash
|
|
|
|
cd macos
|
|
|
|
./build_macos.sh
|
|
|
|
./build_macos_intel.sh
|
|
|
|
```
|
2024-01-01 19:39:08 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
## Phase 4 - Describe the release
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +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.
|
2023-09-26 20:34:56 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
## Phase 5 - Bundle
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### Copy binaries into the release directory:
|
2023-09-15 02:19:28 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
You should have six binary artifacts from the build phase, like this:
|
2023-03-07 01:23:51 +00:00
|
|
|
|
2024-07-21 23:44:37 +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
|
2024-07-21 23:44:37 +00:00
|
|
|
- gossip-$VERSION-x86_64.AppImage.tar.gz
|
2023-04-26 17:05:08 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
Copy these into the release directory.
|
2023-04-26 17:05:08 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### Copy these into the release directory:
|
2023-03-07 01:23:51 +00:00
|
|
|
|
2024-07-21 23:44:37 +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
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### Create a changelog and put into the release directory
|
2023-03-11 23:16:27 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
Substituting for $PREV, $CURRENT and $PACKAGINGDIR:
|
2023-03-11 23:16:27 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
```bash
|
2024-07-27 22:43:31 +00:00
|
|
|
git log --reverse --oneline v$PREV..v$CURRENT > $PACKAGINGDIR/changelog-$CURRENT.txt
|
2024-07-21 23:44:37 +00:00
|
|
|
```
|
2023-10-05 06:49:14 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
### Create a file with the SHA hashes
|
2023-03-07 01:23:51 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
```bash
|
|
|
|
SHA256sum * > ./SHA256sums.txt
|
|
|
|
```
|
2023-10-05 06:49:14 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
## Phase 6 - Publish
|
2023-03-07 01:23:51 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
On GitHub, make a new release.
|
2023-10-05 06:49:14 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
Use the git tag of the release
|
2023-03-07 01:23:51 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
Drag all the files into the release
|
2023-10-05 06:49:14 +00:00
|
|
|
|
2024-07-21 23:44:37 +00:00
|
|
|
In the release description, copy the contents of README.txt
|
2023-03-07 01:23:51 +00:00
|
|
|
|
2024-07-21 23:44:37 +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
|