From f8b93050d8a281d85de729d6143b053d5edd4339 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Wed, 16 Sep 2026 23:35:07 +0200 Subject: [PATCH] 0.1.0-1-alpha.2-fix.1 --- Android/game-reflex-poc/build.gradle | 4 +- Android/game-snake-poc/build.gradle | 4 +- Cargo.toml | 4 +- crates/apps/game-reflex-poc-tauri/build.rs | 4 +- .../apps/game-reflex-poc-tauri/icons/icon.png | Bin 0 -> 242 bytes .../game-reflex-poc-tauri/tauri.conf.json | 2 +- crates/games/game-reflex-poc/Cargo.toml | 3 +- crates/games/game-snake-poc/Cargo.toml | 3 +- deltas/0.1.0/1-alpha.2.fix.1.md | 114 ++++++++++++++++++ docs/development/008-WASM_TAURI_POC.md | 18 ++- 10 files changed, 143 insertions(+), 13 deletions(-) create mode 100644 crates/apps/game-reflex-poc-tauri/icons/icon.png create mode 100644 deltas/0.1.0/1-alpha.2.fix.1.md diff --git a/Android/game-reflex-poc/build.gradle b/Android/game-reflex-poc/build.gradle index 8882d93..f5f4f8c 100644 --- a/Android/game-reflex-poc/build.gradle +++ b/Android/game-reflex-poc/build.gradle @@ -1,5 +1,5 @@ // file: Android/game-reflex-poc/build.gradle -// version: 11 +// version: 12 plugins { id 'com.android.application' @@ -18,7 +18,7 @@ android { minSdk 21 targetSdk 36 versionCode 1 - versionName '0.1.0-1-alpha.2' + versionName '0.1.0-1-alpha.2.fix.1' } compileOptions { diff --git a/Android/game-snake-poc/build.gradle b/Android/game-snake-poc/build.gradle index 5cac17d..a48fe79 100644 --- a/Android/game-snake-poc/build.gradle +++ b/Android/game-snake-poc/build.gradle @@ -1,5 +1,5 @@ // file: Android/game-snake-poc/build.gradle -// version: 11 +// version: 12 plugins { id 'com.android.application' @@ -18,7 +18,7 @@ android { minSdk 21 targetSdk 36 versionCode 1 - versionName '0.1.0-1-alpha.2' + versionName '0.1.0-1-alpha.2.fix.1' } compileOptions { diff --git a/Cargo.toml b/Cargo.toml index e47c311..b98004d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ # file: Cargo.toml -# version: 28 +# version: 29 [workspace] resolver = "3" @@ -18,7 +18,7 @@ members = [ ] [workspace.package] -version = "0.1.0-1-alpha.2" +version = "0.1.0-1-alpha.2.fix.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/games" diff --git a/crates/apps/game-reflex-poc-tauri/build.rs b/crates/apps/game-reflex-poc-tauri/build.rs index e99a476..24848af 100644 --- a/crates/apps/game-reflex-poc-tauri/build.rs +++ b/crates/apps/game-reflex-poc-tauri/build.rs @@ -1,5 +1,7 @@ // file: crates/apps/game-reflex-poc-tauri/build.rs -// version: 1 +// version: 2 + +//! Tauri build script skipped for the WebAssembly library target. fn main() { let target_arch = std::env::var("CARGO_CFG_TARGET_ARCH"); diff --git a/crates/apps/game-reflex-poc-tauri/icons/icon.png b/crates/apps/game-reflex-poc-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fb9eef6eac80bc131de70786b9ba53fe6fc55764 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=J3U<-Ln`LHy}gn55QD(cfTkG= zCX$Vr64Npxl#E*>o0RrGdh^eFTIpNe*Slo5AH1`*VHrb|LokEx0?h`o3nC8O8C(lk zO;|55%{spS@ZZn7E + + +# Delta 0.1.0-1-alpha.2.fix.1 + +## Base + +Base déclarée : `0.1.0-1-alpha.2`, non validée. + +## Échecs observés + +### Build script Tauri + +Clippy strict remonte : + +```text +missing documentation for the crate +``` + +sur `build.rs`. + +Le build script reçoit une documentation de crate. + +### Contexte Tauri + +`tauri::generate_context!()` échoue car : + +```text +icons/icon.png +``` + +est absent. + +Une icône PNG minimale de développement est ajoutée. + +### Build WebAssembly + +Le build `wasm32-unknown-unknown` tirait `sdl3` via une dépendance inutile de la crate de gameplay. + +`game-reflex-poc` n'utilise aucun symbole SDL3 ; `game-snake-poc` non plus. + +Les dépendances directes suivantes sont donc retirées des deux crates jeu : + +```text +engine-v1-sdl +``` + +La frontière redevient : + +```text +gameplay -> engine-v1-common / engine-v1-platform-api +runner Desktop -> engine-v1-sdl +runner WASM/Tauri -> wasm-bindgen / Canvas +``` + +Le gameplay ne dépend plus d'un backend de rendu/input particulier. + +## Validation + +```bash +cargo fmt --all +cargo fmt --all -- --check + +python3 scripts/audit_rust_workspace_rules.py +python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates Tauri Android deltas history + +cargo check --workspace +cargo clippy --workspace --all-targets --all-features -- -D warnings + +cargo test -p engine-v1-platform-api --all-targets --all-features +cargo test -p game-reflex-poc --all-targets --all-features +cargo test -p game-snake-poc --all-targets --all-features +``` + +## Gate WASM + +Le target et `wasm-bindgen-cli` sont déjà installés sur la machine de validation. + +Relancer : + +```bash +python3 scripts/build_reflex_tauri_wasm.py +``` + +Attendu : + +```bash +test -f Tauri/game-reflex-poc/frontend/game_reflex_poc_tauri.js +test -f Tauri/game-reflex-poc/frontend/game_reflex_poc_tauri_bg.wasm +``` + +## Smoke Tauri + +Une fois le CLI Tauri et les dépendances système disponibles : + +```bash +cd crates/apps/game-reflex-poc-tauri +cargo tauri dev +``` + +Critères inchangés : + +- fenêtre locale 405 × 720 ; +- cible Reflex visible ; +- clic sur la cible comptabilisé ; +- déplacement de cible ; +- score visible ; +- aucun site distant requis. + +## Transition + +Si les gates passent, `0.1.0-1-alpha.2.fix.1` valide le POC WASM + Tauri. + +En cas d'échec imputable au projet, produire `0.1.0-1-alpha.2.fix.2`. diff --git a/docs/development/008-WASM_TAURI_POC.md b/docs/development/008-WASM_TAURI_POC.md index b739daf..db9ce85 100644 --- a/docs/development/008-WASM_TAURI_POC.md +++ b/docs/development/008-WASM_TAURI_POC.md @@ -1,5 +1,5 @@ - + # POC WebAssembly embarqué dans Tauri @@ -95,3 +95,19 @@ Critères : Ce POC ne choisit aucune régie publicitaire. Il valide seulement qu'une variante Tauri possède une WebView capable d'héberger une frontière Web distincte. Ads, rewarded ads, revive, analytics et autres services resteront derrière `engine-v1-platform-api` et feront l'objet de tranches dédiées. + +## Frontière de dépendances WASM + +Les crates de gameplay `game-reflex-poc` et `game-snake-poc` ne dépendent pas de `engine-v1-sdl`. + +Le backend SDL3 appartient aux runners natifs. Cette séparation est obligatoire pour que le graphe `wasm32-unknown-unknown` ne tire pas SDL3 ni ses dépendances natives. + +## Icône de développement + +Tauri attend une icône PNG lors de la génération du contexte natif. Le POC contient donc : + +```text +crates/apps/game-reflex-poc-tauri/icons/icon.png +``` + +Il s'agit d'une icône minimale de développement ; l'identité graphique définitive viendra plus tard.