5.6 KiB
5.6 KiB
Release Packaging and Behavior Testing (Windows)
Artifact Layout
Current release package type: portable ZIP.
Expected contents (Bevy package):
sprimo-app.exeassets/sprite-packs/default/manifest.jsonassets/sprite-packs/default/sprite.pngREADME.txt
Expected contents (Tauri package):
sprimo-tauri.exeWebView2Loader.dllassets/sprite-packs/default/manifest.jsonassets/sprite-packs/default/sprite.pngREADME.txt
Generated outputs:
dist/sprimo-windows-x64-v<version>.zipdist/sprimo-windows-x64-v<version>.zip.sha256
Commands
Use just for command entry:
just check
just test
just build-release-bevy
just package-win-bevy
just smoke-win-bevy
just build-release-tauri
just package-win-tauri
just smoke-win-tauri
just random-backend-test
Compatibility aliases:
just build-release-> Bevy release build.just package-win-> Bevy package.just smoke-win-> Bevy smoke package check.
Packaging script target selection:
- Bevy:
python scripts/package_windows.py package --frontend bevy - Tauri:
python scripts/package_windows.py package --frontend tauri
Behavior Test Checklist (Packaged App)
Run tests from an unpacked ZIP folder, not from the workspace run.
- Launch
sprimo-app.exe; verify default sprite renders. - Verify no terminal window appears when launching release build by double-click.
- Verify global hotkey recovery (
Ctrl+Alt+P) forces visibility and top-most recovery. - Verify
SetFlagsapplies always-on-top and visibility via API commands. - Verify
/v1/healthand/v1/statebehavior with auth. - Verify
SetSpritePack:- valid pack switches runtime visuals
- invalid pack keeps current visuals and sets
last_error
- Restart app and verify persisted config behavior.
- Confirm overlay background is transparent (desktop visible behind non-sprite pixels).
- Confirm no magenta matte remains around sprite in default pack.
- Confirm default startup window footprint is reduced (416x416 before runtime pack resize).
- Run randomized backend API interaction and review summary output:
just random-backend-test- validate expected mix of
202/400/401without process crash.
Test Log Template
- Date:
- Artifact:
- Commit:
- Tester:
- Result:
- Notes:
Issue Evidence Gate
Before release sign-off for a bug fix:
- Link the issue file (
issues/issueN.md) in the test log. - Ensure before/after screenshot evidence is referenced from the issue:
- before:
issues/screenshots/issueN-before-YYYYMMDD-HHMMSS.png - after:
issues/screenshots/issueN-after-YYYYMMDD-HHMMSS.png
- Record verification commands and outcomes in the issue:
cargo check --workspacecargo test --workspacejust qa-validate
Legacy issues may reference issues/screenshots/issueN.png as before evidence.
Tauri Runtime Behavior Testing
Authoritative workflow: docs/TAURI_RUNTIME_TESTING.md.
Bevy window-management verification workflow: docs/BEVY_WINDOW_VERIFICATION.md.
Workspace Mode (Required Now)
just build-tauri-uijust check-taurijust check-runtime-corejust run-tauri(smoke and runtime observation)- Verify invoke/event contract behavior:
current_stateload_active_sprite_packruntime:snapshot
- Verify API/runtime contract behavior against tauri process:
/v1/health/v1/statewith auth/v1/command/v1/commands
- Verify tauri frameless drag:
- left-mouse drag moves window
- window remains non-resizable
- moved position updates runtime snapshot
x/yand persists after restart
- Run randomized backend API interaction:
just random-backend-test- verify command traffic remains stable and runtime stays alive.
- Verify scale-fit behavior in tauri runtime:
- send
SetTransform.scalevalues above1.0 - confirm full sprite remains visible and window auto-resizes without top clipping
- Verify pop-out settings window behavior:
- open via tray
Settings - switch character and confirm immediate renderer reload + persistence after restart
- change scale slider and confirm runtime resize + persistence
- toggle
VisibleandAlways on topand confirm both runtime behavior + persistence
- Verify packaged tauri reload stability:
- run repeated character switch cycles (
default<->ferris) and move scale slider each cycle - ensure no runtime frontend exception is shown (debug overlay/console)
- ensure no visible magenta fringe remains around sprite edges after chroma-key conversion
- Verify packaged tauri scale anchoring and bounds:
- repeated scale changes resize around window center (no consistent bottom-right drift)
- window remains visible on the current monitor (no off-screen drift)
- no runtime scale-path exception appears (for example monitor lookup API errors)
- no runtime position-arg exceptions appear during scale (e.g. float passed to integer position API)
- at large scale values (>= 1.8), full sprite remains visible without clipping
- Verify packaged tauri frontend freshness:
- confirm package run reflects latest
frontend/tauri-uichanges (no stale embedded UI bundle)
- Verify packaged tauri overlay edge and scale consistency:
- place overlay over dark background and confirm no white strip/background bleed on left edge
- for same slider value, confirm main-window size is consistent across
default/ferris/demogorgon
Packaged Mode (Required Once Tauri Packaging Exists)
When tauri packaging automation is available, repeat runtime behavior checks on packaged artifacts:
- Launch packaged tauri app.
- Re-run invoke/event/API checks from workspace mode.
- Attach before/after screenshots and command summaries in linked issue.