summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-11-01 21:35:30 +0100
committersalmonik <salmonik@tuta.io>2026-11-01 21:38:36 +0100
commit7830b3c5e89f0339949940b8986bf4849ad7f223 (patch)
treed4ebb4f10583cef1da3b181e093dd5d65ac8a0bb /docs
parentv4.2.1: plain-language game copy and a balance fetch on login (diff)
downloadzagan-bet-7830b3c5e89f0339949940b8986bf4849ad7f223.tar.gz
zagan-bet-7830b3c5e89f0339949940b8986bf4849ad7f223.zip
v4.3.0: package the desktop app with verifiable installers
publish.sh builds the GUI with the gui-release profile, names it zagan-bet-gui-<version>-<platform>-<arch>, and renders a bash and a PowerShell installer next to each app. Both embed the app's SHA-256, verify the file (or fetch it), install per-user and add a launcher: a desktop entry plus an SVG icon on Linux, a Start-menu shortcut on Windows. The download page gains a Desktop app section with the apps and installers, keeps the terminal client and server, links the public git repository for the GPL source, and lists every file in the sha256sum block. deploy.sh verifies all four artifact kinds. Publishing refuses a dirty tree so the linked history matches the binaries.
Diffstat (limited to 'docs')
-rw-r--r--docs/GUI-PLAN.md31
-rw-r--r--docs/TESTING.md17
2 files changed, 38 insertions, 10 deletions
diff --git a/docs/GUI-PLAN.md b/docs/GUI-PLAN.md
index 89cf495..f058e41 100644
--- a/docs/GUI-PLAN.md
+++ b/docs/GUI-PLAN.md
@@ -162,18 +162,29 @@ Measured on Linux at 1080p with llvmpipe software GL:
162**Gate:** the screenshot set is ready for review. Remaining for the gate: 162**Gate:** the screenshot set is ready for review. Remaining for the gate:
163frame rate on integrated graphics and the Windows interactive pass. 163frame rate on integrated graphics and the Windows interactive pass.
164 164
165## Phase 5 — packaging 165## Phase 5 — packaging (code complete, v4.3.0)
166## Phase 5 — packaging 166
167 167- `publish.sh` builds the GUI with the `gui-release` profile for Linux and
168- `publish.sh` emits `zagan-bet-gui-<version>-<platform>-<arch>[.exe]`. 168 Windows and names the app `zagan-bet-gui-<version>-<platform>-<arch>[.exe]`.
169- Bash and PowerShell installers that verify the SHA-256, install to the user 169- It renders a bash installer and a PowerShell installer next to each app.
170 directory, and create `.desktop`/Start-menu entries. 170 Both embed the app's SHA-256, verify the file (or download it), install
171- Download page lists raw binaries and installers; add the source-code link. 171 per-user and add a launcher: `.desktop` plus an SVG icon on Linux, a
172 172 Start-menu shortcut on Windows. Templates live in `scripts/installers/`;
173**Gate:** `deploy.sh` verifies both artifact kinds; a clean machine installs 173 `render-installer.py` fills them in.
174from the page and launches. 174- The download page scans `bin/gui`, `bin/client` and `bin/server`, lists
175 apps, installers, clients and servers, and includes every file in the
176 `sha256sum` block. A Source section links the public git repository
177 (<https://git.2137697.xyz/zagan-bet.git>) for the GPL corresponding source.
178 `deploy.sh` verifies every artifact kind over the public URL.
179- `publish.sh` refuses to run from a dirty tree so the linked history matches
180 the binaries.
181
182**Gate:** deploy verification passes for apps, installers, clients and
183servers; the Linux installer is exercised in a clean HOME. The Windows
184installer needs a Windows machine before the gate closes.
175 185
176## Testing split 186## Testing split
187## Testing split
177 188
178- `View`/`Command` tests in the core: flows, gating, state. Always. 189- `View`/`Command` tests in the core: flows, gating, state. Always.
179- The TUI adapter remains the regression net through Phases 1–2. 190- The TUI adapter remains the regression net through Phases 1–2.
diff --git a/docs/TESTING.md b/docs/TESTING.md
index 613cd08..c32ac22 100644
--- a/docs/TESTING.md
+++ b/docs/TESTING.md
@@ -266,3 +266,20 @@ terminal client; a saved login from one signs in the other.
266 the row is upgraded to bcrypt. 266 the row is upgraded to bcrypt.
267- Spin several times and confirm `plays` grows by one row per spin while 267- Spin several times and confirm `plays` grows by one row per spin while
268 `users.balance` changes by `winnings - bet`. 268 `users.balance` changes by `winnings - bet`.
269
270## Packaging checklist
271
2721. Set the version in `Cargo.toml` and `gui/Cargo.toml` (same MAJOR.MINOR),
273 run `cargo test --workspace`, and commit. `publish.sh` refuses a dirty tree
274 because the site links the committed git history as the GPL source.
2752. `./scripts/publish.sh` (add `DEST=` and `URL_BASE=` to stage elsewhere). It
276 builds the GUI with `gui-release`, the terminal clients and servers, and
277 renders the bash/PowerShell installers with each app's SHA-256.
2783. `php -S 127.0.0.1:8899 -t <staging>` and
279 `./scripts/deploy.sh <staging> http://127.0.0.1:8899/` to upload and verify
280 every app, installer, client and server against the page's checksums.
2814. On a clean user account: download an app with its installer, run the
282 installer, and launch the new menu entry. The installer must refuse a
283 corrupted download.
2845. Repeat on Windows for the `.ps1` installer and the Start-menu shortcut.
285