From 4887abc5773b33ab1e213ed5f528dfebd242e2cd Mon Sep 17 00:00:00 2001 From: salmonik Date: Sun, 1 Nov 2026 22:23:00 +0100 Subject: v4.4.0: stable installers that follow the newest published build Adds web/latest.php: a plain-text feed of the newest version with each artifact's filename and SHA-256. The per-release generated installers are replaced by stable web/install.sh and web/install.ps1; both read the feed, pick the newest build, verify it, install per-user and add a launcher. Publishing a new app version no longer regenerates or versions the installers. publish.sh drops the installer renderer and Python dependency. deploy.sh now also verifies latest.php against the local artifacts and that the served installer scripts match the repository. --- docs/GUI-PLAN.md | 12 ++++++------ docs/TESTING.md | 16 +++++++++------- 2 files changed, 15 insertions(+), 13 deletions(-) (limited to 'docs') diff --git a/docs/GUI-PLAN.md b/docs/GUI-PLAN.md index a322057..c0370a0 100644 --- a/docs/GUI-PLAN.md +++ b/docs/GUI-PLAN.md @@ -169,13 +169,13 @@ frame rate on integrated graphics and the Windows interactive pass. - `publish.sh` builds the GUI with the `gui-release` profile for Linux and Windows and names the app `zagan-bet-gui---[.exe]`. -- It renders a bash installer and a PowerShell installer next to each app. - Both embed the app's SHA-256, verify the file (or download it), install - per-user and add a launcher: `.desktop` plus an SVG icon on Linux, a - Start-menu shortcut on Windows. Templates live in `scripts/installers/`; - `render-installer.py` fills them in. +- The installers are stable, unversioned site files: `install.sh` and + `install.ps1` read `latest.php`, pick the newest build for the machine, + verify its SHA-256, install per-user and add a launcher (`.desktop` plus an + SVG icon on Linux, a Start-menu shortcut on Windows). Publishing a new + version does not regenerate them. - The download page scans `bin/gui`, `bin/client` and `bin/server`, lists - apps, installers, clients and servers, and includes every file in the + apps, stable installers, clients and servers, and includes every file in the `sha256sum` block. A Source section links the public git repository () for the GPL corresponding source. `deploy.sh` verifies every artifact kind over the public URL. diff --git a/docs/TESTING.md b/docs/TESTING.md index c32ac22..09ceb82 100644 --- a/docs/TESTING.md +++ b/docs/TESTING.md @@ -272,14 +272,16 @@ terminal client; a saved login from one signs in the other. 1. Set the version in `Cargo.toml` and `gui/Cargo.toml` (same MAJOR.MINOR), run `cargo test --workspace`, and commit. `publish.sh` refuses a dirty tree because the site links the committed git history as the GPL source. -2. `./scripts/publish.sh` (add `DEST=` and `URL_BASE=` to stage elsewhere). It - builds the GUI with `gui-release`, the terminal clients and servers, and - renders the bash/PowerShell installers with each app's SHA-256. +2. `./scripts/publish.sh` (add `DEST=` to stage elsewhere). It builds the GUI + with `gui-release` and the terminal clients and servers. The installers are + stable site files and are not regenerated. 3. `php -S 127.0.0.1:8899 -t ` and `./scripts/deploy.sh http://127.0.0.1:8899/` to upload and verify - every app, installer, client and server against the page's checksums. -4. On a clean user account: download an app with its installer, run the - installer, and launch the new menu entry. The installer must refuse a - corrupted download. + every app, client and server against the page's checksums, the stable + installers, and the newest-version feed at `latest.php`. +4. On a clean user account: run the stable installer + (`ZAGAN_SITE=http://127.0.0.1:8899 ./web/install.sh`) and launch the new + menu entry. It must install the newest version even when an older app sits + next to it, and refuse a corrupted download. 5. Repeat on Windows for the `.ps1` installer and the Start-menu shortcut. -- cgit v1.2.3