3.6 KiB
RELEASE
-
DON'T update dependencies ('cargo update'). Do that kind of stuff right after releasing. Because that stuff presents risk.
-
Stabilize the code. Make all these happy:
cargo clippy cargo fmt cargo test
-
Test it on Windows and MacOS. Then repeat at step 1 if fixes are needed.
-
Update the documentation including:
- README.md
- LICENSE.txt may need a copyright range update
- Help page in the UI
-
Update packaging files:
- packaging/debian/Dockerfile may need a new rust version
- packaging/windows/gossip.VERSION.wxs needs creating and a UUID update
-
Edit Cargo.toml and change the version (remove the -unstable). Compile so you get a new Cargo.lock
- Commit these 2 new Cargo files as a commit named after the version.
-
Tag this as vVERSION, and push the tag
-
Tag again with -unstable
- build to get Cargo.lock,
- commit both as next commit,
- push,
- checkout the release commit again for the rest.
-
Build the debian:
cd debian ./deb.sh
-
Build the appimage:
cd appimage ./build-appimage.sh
-
Build the flatpak:
- Follow the Flatpak README
-
Build the windows:
- Follow the Windows README
-
Build the macos:
cd macos ./build_macos.sh ./build_macos_intel.sh
-
Bundle the files, create SHA256 hashes
files in files/
create changelog.txt like this:
git log --oneline v0.8.2..v0.9.0 > changelog.txt
-
Upload release to github
-
Update the AUR packages
-
Announce release on nostr under gossip account
This is a draft of the steps taken to make a release. I intend to flesh this out as I actually make releases.
Update crates from the bottom up:
gossip ├── eframe │ ├── egui │ ├── egui-winit │ └── egui_glow ├── egui-winit ├── egui_extras ├── gossip-relay-picker │ └── nostr-types │ └-- speedy ├── nostr-types └── qrcode
Try to push our dependency changes upstream: https://github.com/mikedilger/qrcode-rust (unlikely, stale for >3 years) https://github.com/mikedilger/egui
nostr-types -- cargo update, and check for new versions, maybe update dependencies -- cargo test -- cargo clippy; cargo fmt -- FORK 0.N: -- all deps switch to released versions -- version 0.N -- package/publish -- version to 0.N.1-unstable -- master: -- version to 0.N+1.0-unstable
gossip-relay-picker -- cargo update, and check for new versions, maybe update dependencies -- cargo test -- cargo clippy; cargo fmt -- FORK 0.N: -- all deps switch to released versions -- version 0.N -- package/publish -- version to 0.N.1-unstable -- master: -- version to 0.N+1.0-unstable
gossip -- cargo update, and check for new versions, maybe update dependencies -- cargo test -- cargo clippy; cargo fmt -- FORK 0.N: -- all deps switch to released versions -- version 0.N -- package/publish (see below) -- version 0.N.1-unstable -- master -- version 0.N+1.0-unstable
Package & Publish of gossip:
Package for windows:
- main version, as .msi
- main version with lang-cjk, as .msi
Package for debian:
- main version, as .msi
- main version with lang-cjk, as .msi
Create github release (it will create source tar files)
- Post the windows .msi files
- Post the debian .deb files
Update aur.archlinux.org PKGBUILD