136 lines
4.1 KiB
Markdown
136 lines
4.1 KiB
Markdown
# Release Packaging and Behavior Testing (Windows)
|
|
|
|
## Artifact Layout
|
|
|
|
Current release package type: portable ZIP.
|
|
|
|
Expected contents (Bevy package):
|
|
|
|
- `sprimo-app.exe`
|
|
- `assets/sprite-packs/default/manifest.json`
|
|
- `assets/sprite-packs/default/sprite.png`
|
|
- `README.txt`
|
|
|
|
Expected contents (Tauri package):
|
|
|
|
- `sprimo-tauri.exe`
|
|
- `WebView2Loader.dll`
|
|
- `assets/sprite-packs/default/manifest.json`
|
|
- `assets/sprite-packs/default/sprite.png`
|
|
- `README.txt`
|
|
|
|
Generated outputs:
|
|
|
|
- `dist/sprimo-windows-x64-v<version>.zip`
|
|
- `dist/sprimo-windows-x64-v<version>.zip.sha256`
|
|
|
|
## Commands
|
|
|
|
Use `just` for command entry:
|
|
|
|
```powershell
|
|
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.
|
|
|
|
1. Launch `sprimo-app.exe`; verify default sprite renders.
|
|
2. Verify no terminal window appears when launching release build by double-click.
|
|
3. Verify global hotkey recovery (`Ctrl+Alt+P`) forces visibility and top-most recovery.
|
|
4. Verify `SetFlags` applies always-on-top and visibility via API commands.
|
|
5. Verify `/v1/health` and `/v1/state` behavior with auth.
|
|
6. Verify `SetSpritePack`:
|
|
- valid pack switches runtime visuals
|
|
- invalid pack keeps current visuals and sets `last_error`
|
|
7. Restart app and verify persisted config behavior.
|
|
8. Confirm overlay background is transparent (desktop visible behind non-sprite pixels).
|
|
9. Confirm no magenta matte remains around sprite in default pack.
|
|
10. Confirm default startup window footprint is reduced (416x416 before runtime pack resize).
|
|
11. Run randomized backend API interaction and review summary output:
|
|
- `just random-backend-test`
|
|
- validate expected mix of `202`/`400`/`401` without process crash.
|
|
|
|
## Test Log Template
|
|
|
|
- Date:
|
|
- Artifact:
|
|
- Commit:
|
|
- Tester:
|
|
- Result:
|
|
- Notes:
|
|
|
|
## Issue Evidence Gate
|
|
|
|
Before release sign-off for a bug fix:
|
|
|
|
1. Link the issue file (`issues/issueN.md`) in the test log.
|
|
2. 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`
|
|
3. Record verification commands and outcomes in the issue:
|
|
- `cargo check --workspace`
|
|
- `cargo test --workspace`
|
|
- `just 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)
|
|
|
|
1. `just build-tauri-ui`
|
|
2. `just check-tauri`
|
|
3. `just check-runtime-core`
|
|
4. `just run-tauri` (smoke and runtime observation)
|
|
5. Verify invoke/event contract behavior:
|
|
- `current_state`
|
|
- `load_active_sprite_pack`
|
|
- `runtime:snapshot`
|
|
6. Verify API/runtime contract behavior against tauri process:
|
|
- `/v1/health`
|
|
- `/v1/state` with auth
|
|
- `/v1/command`
|
|
- `/v1/commands`
|
|
7. Verify tauri frameless drag:
|
|
- left-mouse drag moves window
|
|
- window remains non-resizable
|
|
- moved position updates runtime snapshot `x/y` and persists after restart
|
|
8. Run randomized backend API interaction:
|
|
- `just random-backend-test`
|
|
- verify command traffic remains stable and runtime stays alive.
|
|
9. Verify scale-fit behavior in tauri runtime:
|
|
- send `SetTransform.scale` values above `1.0`
|
|
- confirm full sprite remains visible and window auto-resizes without top clipping
|
|
|
|
### Packaged Mode (Required Once Tauri Packaging Exists)
|
|
|
|
When tauri packaging automation is available, repeat runtime behavior checks on packaged artifacts:
|
|
|
|
1. Launch packaged tauri app.
|
|
2. Re-run invoke/event/API checks from workspace mode.
|
|
3. Attach before/after screenshots and command summaries in linked issue.
|