0.1.0-1-alpha.2-fix.1

This commit is contained in:
2026-09-16 23:35:07 +02:00
parent 9256e9e2d5
commit f8b93050d8
10 changed files with 143 additions and 13 deletions

View File

@@ -1,5 +1,5 @@
// file: Android/game-reflex-poc/build.gradle // file: Android/game-reflex-poc/build.gradle
// version: 11 // version: 12
plugins { plugins {
id 'com.android.application' id 'com.android.application'
@@ -18,7 +18,7 @@ android {
minSdk 21 minSdk 21
targetSdk 36 targetSdk 36
versionCode 1 versionCode 1
versionName '0.1.0-1-alpha.2' versionName '0.1.0-1-alpha.2.fix.1'
} }
compileOptions { compileOptions {

View File

@@ -1,5 +1,5 @@
// file: Android/game-snake-poc/build.gradle // file: Android/game-snake-poc/build.gradle
// version: 11 // version: 12
plugins { plugins {
id 'com.android.application' id 'com.android.application'
@@ -18,7 +18,7 @@ android {
minSdk 21 minSdk 21
targetSdk 36 targetSdk 36
versionCode 1 versionCode 1
versionName '0.1.0-1-alpha.2' versionName '0.1.0-1-alpha.2.fix.1'
} }
compileOptions { compileOptions {

View File

@@ -1,5 +1,5 @@
# file: Cargo.toml # file: Cargo.toml
# version: 28 # version: 29
[workspace] [workspace]
resolver = "3" resolver = "3"
@@ -18,7 +18,7 @@ members = [
] ]
[workspace.package] [workspace.package]
version = "0.1.0-1-alpha.2" version = "0.1.0-1-alpha.2.fix.1"
edition = "2024" edition = "2024"
license = "MIT" license = "MIT"
repository = "https://git.sasedev.com/Sasedev/games" repository = "https://git.sasedev.com/Sasedev/games"

View File

@@ -1,5 +1,7 @@
// file: crates/apps/game-reflex-poc-tauri/build.rs // file: crates/apps/game-reflex-poc-tauri/build.rs
// version: 1 // version: 2
//! Tauri build script skipped for the WebAssembly library target.
fn main() { fn main() {
let target_arch = std::env::var("CARGO_CFG_TARGET_ARCH"); let target_arch = std::env::var("CARGO_CFG_TARGET_ARCH");

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

View File

@@ -1,7 +1,7 @@
{ {
"$schema": "https://schema.tauri.app/config/2", "$schema": "https://schema.tauri.app/config/2",
"productName": "Reflex POC Tauri", "productName": "Reflex POC Tauri",
"version": "0.1.0-1-alpha.2", "version": "0.1.0-1-alpha.2.fix.1",
"identifier": "com.sasedev.games.reflex.tauri", "identifier": "com.sasedev.games.reflex.tauri",
"build": { "build": {
"frontendDist": "../../../Tauri/game-reflex-poc/frontend" "frontendDist": "../../../Tauri/game-reflex-poc/frontend"

View File

@@ -1,5 +1,5 @@
# file: crates/games/game-reflex-poc/Cargo.toml # file: crates/games/game-reflex-poc/Cargo.toml
# version: 2 # version: 3
[package] [package]
name = "game-reflex-poc" name = "game-reflex-poc"
@@ -13,7 +13,6 @@ publish.workspace = true
[dependencies] [dependencies]
engine-v1-common = { path = "../../engines/engine-v1-common" } engine-v1-common = { path = "../../engines/engine-v1-common" }
engine-v1-platform-api = { path = "../../engines/engine-v1-platform-api" } engine-v1-platform-api = { path = "../../engines/engine-v1-platform-api" }
engine-v1-sdl = { path = "../../engines/engine-v1-sdl" }
[dev-dependencies] [dev-dependencies]
game-logging-lib = { path = "../../common/game-logging-lib" } game-logging-lib = { path = "../../common/game-logging-lib" }

View File

@@ -1,5 +1,5 @@
# file: crates/games/game-snake-poc/Cargo.toml # file: crates/games/game-snake-poc/Cargo.toml
# version: 2 # version: 3
[package] [package]
name = "game-snake-poc" name = "game-snake-poc"
@@ -13,7 +13,6 @@ publish.workspace = true
[dependencies] [dependencies]
engine-v1-common = { path = "../../engines/engine-v1-common" } engine-v1-common = { path = "../../engines/engine-v1-common" }
engine-v1-platform-api = { path = "../../engines/engine-v1-platform-api" } engine-v1-platform-api = { path = "../../engines/engine-v1-platform-api" }
engine-v1-sdl = { path = "../../engines/engine-v1-sdl" }
[dev-dependencies] [dev-dependencies]
game-logging-lib = { path = "../../common/game-logging-lib" } game-logging-lib = { path = "../../common/game-logging-lib" }

View File

@@ -0,0 +1,114 @@
<!-- file: deltas/0.1.0/1-alpha.2.fix.1.md -->
<!-- version: 1 -->
# 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`.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/development/008-WASM_TAURI_POC.md --> <!-- file: docs/development/008-WASM_TAURI_POC.md -->
<!-- version: 1 --> <!-- version: 2 -->
# POC WebAssembly embarqué dans Tauri # POC WebAssembly embarqué dans Tauri
@@ -95,3 +95,19 @@ Critères :
Ce POC ne choisit aucune régie publicitaire. 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. 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.