Update RELEASE.md and bring in some doc files we release with

This commit is contained in:
Mike Dilger 2024-07-22 11:44:37 +12:00
parent 1db04433fe
commit bb3c819492
10 changed files with 214 additions and 121 deletions

56
docs/DEPENDENCIES.txt Normal file
View File

@ -0,0 +1,56 @@
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

15
docs/README.flatpak.txt Normal file
View File

@ -0,0 +1,15 @@
Using the flatpak:
------------------
1) Install with:
flatpak install --user gossip.0.11.1.flatpak
2) Run with:
flatpak run com.mikedilger.gossip
3) If you get an eframe/glutin error, switch to the wgpu backend with this command, then
afterwards you can run it normally as in step (2)
flatpak run com.mikedilger.gossip wgpu_renderer true

10
docs/README.upgrading.txt Normal file
View File

@ -0,0 +1,10 @@
If you are running very old versions, this version may not work directly
until you run prior versions as explained in this file.
If you are running a version older than 0.8.x, you must first install
version 0.8.x (e.g. 0.8.2) and run that once. Then heed the next paragraph.
If you are running a version older than 0.11x, you must first install
version 0.9.x or 0.10.x (e.g. 0.10.1) and run that once.
Then you can install and run this version.

View File

@ -1,163 +1,149 @@
# RELEASE # RELEASE
0. DON'T update dependencies ('cargo update'). Do that kind of stuff right after releasing. Because that stuff presents risk. ## Phase 1 - Test and stabilize the codebase
1. Stabilize the code. Make all these happy: ### Don't update dependencies
````bash Don't do a `cargo update`. Too risky right before a release.
cargo clippy Do that kind of stuff right *after* releasing.
cargo fmt
cargo test
````
1. Test it on Windows and MacOS. Then repeat at step 1 if fixes are needed. ### Test it on Windows and MacOS.
1. Update the documentation including: Yes, actually do this. We often find problems.
- README.md ### Test it with a new user on Linux, Windows and MacOS.
- LICENSE.txt may need a copyright range update
- Help page in the UI
1. Update packaging files: Many problems come up for new users that we normally never see.
- packaging/debian/Dockerfile may need a new rust version ### fmt, clippy, test
- packaging/windows/gossip.VERSION.wxs needs creating and a UUID update
1. Edit Cargo.toml and change the version (remove the -unstable). ```bash
Compile so you get a new Cargo.lock cargo clippy
cargo test
cargo fmt
```
### Update documentation
- Commit these 2 new Cargo files as a commit named after the version. Update the following
1. Tag this as vVERSION, and push the tag - README.md
- LICENSE.txt may need a copyright range update
- Help page in the UI
1. Tag again with -unstable ### Pre-update the packaging files
- build to get Cargo.lock, - packaging/debian/Dockerfile may need a new rust version
- commit both as next commit, - packaging/windows/gossip.VERSION.wxs will need 3 edits
- push, - Update the Package.Version near the top
- checkout the release commit again for the rest. - Update the SummaryInformation.Description near the bottom
- Update the Package.ProductCode GUID near the top to a new random one
1. Build the debian: ## Phase 2 - Release
````bash - Create a new release branch (if not a point release)
cd debian - Update */Cargo.toml to change the version number
./deb.sh - 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:
1. Build the appimage: ```bash
git push github
git push --tags github
```
````bash ## Phase 3 - Build the packages
cd appimage
./build-appimage.sh
````
1. Build the flatpak: ### Debian
- Follow the [Flatpak README](flatpak/README.md) ```bash
cd debian
./deb.sh
```
1. Build the windows: ### AppImage
- Follow the [Windows README](windows/README.md) ```bash
cd appimage
./build-appimage.sh
```
1. Build the macos: ### Flatpak
````bash - Follow the [Flatpak README](flatpak/README.md)
cd macos
./build_macos.sh
./build_macos_intel.sh
````
1. Bundle the files, create SHA256 hashes ### Windows
files in files/ - Follow the [Windows README](windows/README.md)
create changelog.txt like this: ### MacOS
git log --oneline v0.8.2..v0.9.0 > changelog.txt ```bash
cd macos
./build_macos.sh
./build_macos_intel.sh
```
1. Upload release to github ## Phase 4 - Describe the release
1. Update the AUR packages Review the changes from last time, and create a summary description in a README.txt file
and put that into a packaging directory.
1. Announce release on nostr under gossip account ## Phase 5 - Bundle
----------------- ### Copy binaries into the release directory:
This is a draft of the steps taken to make a release. You should have six binary artifacts from the build phase, like this:
I intend to flesh this out as I actually make releases.
Update crates from the bottom up: - gossip-$VERSION-1_amd64.deb
- gossip-$VERSION-Darwin-arm64.dmg
- gossip-$VERSION-Darwin-x86_64.dmg
- gossip.$VERSION.flatpak
- gossip.$VERSION.msi
- gossip-$VERSION-x86_64.AppImage.tar.gz
gossip Copy these into the release directory.
├── 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: ### Copy these into the release directory:
<https://github.com/mikedilger/qrcode-rust> (unlikely, stale for >3 years)
<https://github.com/mikedilger/egui>
nostr-types - gossip/filter.rhai.example
-- cargo update, and check for new versions, maybe update dependencies - gossip/LICENSE.txt
-- cargo test - gossip/packaging/
-- cargo clippy; cargo fmt - gossip/docs/README.flatpak.txt
-- FORK 0.N: - gossip/docs/README.macos.txt
-- all deps switch to released versions - gossip/docs/README.upgrading.txt
-- version 0.N
-- package/publish
-- version to 0.N.1-unstable
-- master:
-- version to 0.N+1.0-unstable
gossip-relay-picker ### Create a changelog and put into the release directory
-- 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 Substituting for $PREV, $CURRENT and $PACKAGINGDIR:
-- 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
----------------- ```bash
git log --oneline v$PREV..v$CURRENT > $PACKAGINGDIR/changelog-$CURRENT.txt
```
Package & Publish of gossip: ### Create a file with the SHA hashes
Package for windows: ```bash
SHA256sum * > ./SHA256sums.txt
```
* main version, as .msi ## Phase 6 - Publish
* main version with lang-cjk, as .msi
Package for debian: On GitHub, make a new release.
* main version, as .msi Use the git tag of the release
* main version with lang-cjk, as .msi
Create github release (it will create source tar files) Drag all the files into the release
* Post the windows .msi files In the release description, copy the contents of README.txt
* Post the debian .deb files
Update aur.archlinux.org PKGBUILD 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

View File

@ -1 +0,0 @@
../../LICENSE.txt

View File

@ -1 +0,0 @@
../macos/README.macos.txt

View File

@ -1,3 +0,0 @@
Gossip is a nostr client for desktop
The newest version, as well as a better README file, is available at https://github.com/mikedilger/gossip

View File

@ -1 +0,0 @@
../../filter.rhai.example

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Package Codepage="1252" Manufacturer="Gossip" ProductCode="{f28a7475-145f-4b6a-aecc-4753bf9ac965}" Language="1033" Name="Gossip" Version="0.11.1" UpgradeCode="{F1794F78-CFB1-4056-A1F7-DA48B956456C}" InstallerVersion="200">
<StandardDirectory Id="DesktopFolder" />
<StandardDirectory Id="ProgramFilesFolder">
<Directory Id="Gossip" Name="Gossip">
<Directory Id="INSTALLDIR" Name="Gossip">
<Component Id="MainExecutable" Guid="{1B8CD459-FB86-42B1-8A42-B4D9848179DD}" Bitness="always32">
<Shortcut Id="startmenuShortcut" Directory="ProgramMenuDir" Icon="gossip.ico" IconIndex="0" WorkingDirectory="INSTALLDIR" Name="Gossip" Advertise="yes" />
<Shortcut Id="desktopShortcut" Directory="DesktopFolder" Icon="gossip.ico" IconIndex="0" WorkingDirectory="INSTALLDIR" Name="Gossip" Advertise="yes" />
<File Id="GossipEXE" Name="gossip.exe" KeyPath="yes" Source="gossip.exe" />
</Component>
</Directory>
</Directory>
</StandardDirectory>
<StandardDirectory Id="ProgramMenuFolder">
<Directory Id="ProgramMenuDir" Name="Gossip">
<Component Id="ProgramMenuDir" Guid="{508C7945-FD8F-429D-AF84-6CDBA5AAC575}" Bitness="always32">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" Directory="ProgramMenuDir" />
<RegistryValue Id="regfVKS7tdq5lPRijYcmmmk_.ClslQ" Key="Software\Gossip\gossip" Root="HKCU" Type="string" Value="" KeyPath="yes" />
</Component>
</Directory>
</StandardDirectory>
<Icon Id="gossip.ico" SourceFile="gossip.ico" />
<Feature Id="Complete" Level="1">
<ComponentRef Id="ProgramMenuDir" />
<ComponentRef Id="MainExecutable" Primary="yes" />
</Feature>
<Media Id="1" EmbedCab="yes" Cabinet="cab1.cab" />
<SummaryInformation Description="Gossip 0.11.1 Installer" />
</Package>
</Wix>