gossip/packaging/RELEASE.md

156 lines
3.3 KiB
Markdown
Raw Normal View History

2023-10-05 06:49:14 +00:00
# RELEASE
2023-09-15 02:19:28 +00:00
0. DON'T update dependencies. DON'T 'cargo update'. Do that kind of stuff right after
releasing. Because that stuff presents risk.
1. Update the documentation including:
README.md
help page in the UI
2. Stabilize the code. Make all these happy:
2023-10-05 06:49:14 +00:00
````bash
cargo clippy
cargo fmt
cargo test
````
2023-09-15 02:19:28 +00:00
3. 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.
4. Tag this as vVERSION, and push the tag
2023-09-27 01:54:29 +00:00
4b. Tag again with -unstable,
build to get Cargo.lock,
commit both as next commit,
push,
checkout the release commit again for the rest.
2023-09-15 02:19:28 +00:00
5. Build the debian:
2023-10-05 06:49:14 +00:00
````bash
cd debian
./deb.sh
````
2023-09-15 02:19:28 +00:00
2023-10-05 06:49:14 +00:00
6. Build the appimage:
2023-09-15 02:19:28 +00:00
2023-10-05 06:49:14 +00:00
````bash
cd appimage
cargo appimage --features="lang-cjk,video-ffmpeg"
````
2023-09-15 02:19:28 +00:00
2023-10-05 06:49:14 +00:00
7. Build the windows:
2023-09-15 02:19:28 +00:00
2023-10-05 06:49:14 +00:00
````bash
cd windows
````
2023-09-15 02:19:28 +00:00
2023-10-05 06:49:14 +00:00
and follow the [Windows README](windows/README.md)
2023-09-15 02:19:28 +00:00
2023-10-05 06:49:14 +00:00
8. Build the macos:
````bash
cd macos
./build_macos.sh
./build_macos_intel.sh
````
2023-09-15 02:19:28 +00:00
9. Bundle the files, create SHA256 hashes
2024-01-01 19:39:08 +00:00
files in files/
create changelog.txt like this:
git log --oneline v0.8.2..v0.9.0 > changelog.txt
2023-09-15 02:19:28 +00:00
10. Upload release to github
11. Update the AUR packages
12. Announce release on nostr under gossip account
2023-09-15 02:19:28 +00:00
-----------------
2023-03-07 01:23:51 +00:00
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
2023-06-24 00:09:45 +00:00
│ └-- speedy
├── nostr-types
└── qrcode
2023-03-07 01:23:51 +00:00
Try to push our dependency changes upstream:
2023-10-05 06:49:14 +00:00
<https://github.com/mikedilger/qrcode-rust> (unlikely, stale for >3 years)
<https://github.com/mikedilger/egui>
2023-03-07 01:23:51 +00:00
2023-03-11 23:16:27 +00:00
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
-- verison 0.N
-- package/publish (see below)
-- version 0.N.1-unstable
-- master
-- version 0.N+1.0-unstable
2023-10-05 06:49:14 +00:00
-----------------
2023-03-11 23:16:27 +00:00
Package & Publish of gossip:
2023-03-07 01:23:51 +00:00
Package for windows:
2023-10-05 06:49:14 +00:00
* main version, as .msi
* main version with lang-cjk, as .msi
2023-03-07 01:23:51 +00:00
Package for debian:
2023-10-05 06:49:14 +00:00
* main version, as .msi
* main version with lang-cjk, as .msi
2023-03-07 01:23:51 +00:00
Create github release (it will create source tar files)
2023-10-05 06:49:14 +00:00
* Post the windows .msi files
* Post the debian .deb files
2023-03-07 01:23:51 +00:00
Update aur.archlinux.org PKGBUILD