0.1.0-1-alpha.2-fix.1
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
BIN
crates/apps/game-reflex-poc-tauri/icons/icon.png
Normal file
BIN
crates/apps/game-reflex-poc-tauri/icons/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 242 B |
@@ -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"
|
||||||
|
|||||||
@@ -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" }
|
||||||
|
|||||||
@@ -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" }
|
||||||
|
|||||||
114
deltas/0.1.0/1-alpha.2.fix.1.md
Normal file
114
deltas/0.1.0/1-alpha.2.fix.1.md
Normal 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`.
|
||||||
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user