0.3.1-0-pre.1
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/000-README.md -->
|
||||
<!-- version: 1 -->
|
||||
<!-- version: 2 -->
|
||||
|
||||
# Plans de versions games.sasedev
|
||||
|
||||
@@ -11,4 +11,5 @@ Le `ROADMAP.md` reste la trajectoire macroscopique du projet ; les deltas décri
|
||||
|
||||
## Plans
|
||||
|
||||
- [`001-V0_3_0_WEB_SNAKE_POC_PLAN.md`](001-V0_3_0_WEB_SNAKE_POC_PLAN.md) — plan actif de `0.3.0`, baseline Snake et premier POC Web direct.
|
||||
- [`001-V0_3_0_WEB_SNAKE_POC_PLAN.md`](001-V0_3_0_WEB_SNAKE_POC_PLAN.md) — plan clôturé de `0.3.0`, baseline Snake et premier POC Web direct.
|
||||
- [`002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md`](002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md) — plan actif de `0.3.1`, second host Snake Tauri Android.
|
||||
|
||||
176
docs/plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md
Normal file
176
docs/plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md
Normal file
@@ -0,0 +1,176 @@
|
||||
<!-- file: docs/plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Plan v0.3.1 — second host Snake Tauri Android
|
||||
|
||||
## But de la version
|
||||
|
||||
`0.3.1` doit ajouter un second host Snake réellement exécutable sous Tauri Android en réutilisant la baseline Web/WASM validée par `0.3.0`.
|
||||
|
||||
La version ne doit ni déplacer le gameplay hors de `game-snake-poc`, ni créer un second adapter Snake, ni transformer immédiatement les similitudes Web/Tauri en framework générique.
|
||||
|
||||
Base stable : `0.3.0`.
|
||||
|
||||
Cadrage : [`../studies/024-V0_3_1_TAURI_ANDROID_SNAKE_AUDIT.md`](../studies/024-V0_3_1_TAURI_ANDROID_SNAKE_AUDIT.md).
|
||||
|
||||
## Décisions acquises
|
||||
|
||||
- la nouvelle crate sera `crates/apps/game-snake-poc-tauri` ;
|
||||
- `0.3.1` valide uniquement sa cible Android ;
|
||||
- `game-snake-poc` reste inchangé sauf défaut réellement découvert ;
|
||||
- `game-snake-poc-wasm` reste l'unique adapter Snake WASM et recevra seulement la généralisation de provenance nécessaire au second host ;
|
||||
- le frontend Tauri part du comportement réellement validé dans `Web/game-snake-poc`, avec adaptation de lifecycle et logging ;
|
||||
- `lib.rs` est une façade/reexport et `tauri.rs` reste l'assemblage Tauri ;
|
||||
- le tracing frontend utilise `@fltsci/tauri-plugin-tracing` ;
|
||||
- les hooks Tauri possèdent le build frontend/WASM ;
|
||||
- aucun nouveau chemin de build n'est piloté par Python ;
|
||||
- `README.md` et `USAGE.md` seront créés avec l'app : architecture pour le premier, prérequis/commandes/smokes pour le second ;
|
||||
- `cargo tauri android init/dev/build` sont les commandes mobiles de référence ;
|
||||
- SimpleBar et `resize-observer-polyfill` ne sont pas ajoutés au host Tauri sans besoin démontré.
|
||||
|
||||
## Scope
|
||||
|
||||
La version couvre :
|
||||
|
||||
- création de la crate/app Tauri Snake ;
|
||||
- initialisation de la cible Android par Tauri ;
|
||||
- pipeline Rust/WASM + Vite/TypeScript possédé par Tauri sans Python ;
|
||||
- consommation de `game-snake-poc-wasm` ;
|
||||
- shell Canvas, contrôles touch et comportement responsive nécessaires au jeu ;
|
||||
- assets communs et spécifiques Snake ;
|
||||
- lifecycle mobile/WebView ;
|
||||
- provenance `Android / Wasm / TauriWebView` ;
|
||||
- tracing Rust/Tauri/frontend ;
|
||||
- politique de sortie/Back conforme au moteur ;
|
||||
- build/package et smoke sur AVD/appareil disponible aux jalons prévus ;
|
||||
- comparaison du code Web direct/Tauri après fonctionnement réel afin de décider s'il existe une extraction commune justifiée.
|
||||
|
||||
Hors scope : Tauri Desktop Snake comme cible validée, iOS, Android SDL3 multi-ABI additionnel, réseau realtime, Uroburas, ads, billing, auth et leaderboard.
|
||||
|
||||
## Prévision souple
|
||||
|
||||
### `0-pre.1` — cadrage et règles
|
||||
|
||||
Audit complet de l'archive stable, règles, baseline Web/WASM, Tauri Reflex, références Desk KSP accessibles, environnement Android historique et commandes Tauri mobiles actuelles.
|
||||
|
||||
Livraison : étude `024`, présent plan, correction des règles Tauri Android, clarification `PlatformFamily`, index documentaires et ouverture de la version technique `0.3.1-0-pre.1`.
|
||||
|
||||
Aucun scaffold Tauri Snake n'est créé.
|
||||
|
||||
### `0-pre.2` — host Tauri Android minimal
|
||||
|
||||
Créer `game-snake-poc-tauri` avec :
|
||||
|
||||
- manifest Cargo/build script/config Tauri/capabilities ;
|
||||
- `lib.rs` façade, `tauri.rs` assemblage et modules propriétaires minimaux ;
|
||||
- point d'entrée `run()` mobile annoté `#[cfg_attr(mobile, tauri::mobile_entry_point)]` dans le module propriétaire puis réexporté par `lib.rs` ;
|
||||
- frontend Vite/TypeScript minimal ;
|
||||
- bridge tracing initialisé ;
|
||||
- hooks de build natifs, sans Python ;
|
||||
- cible Android initialisée via Tauri ;
|
||||
- chargement du même adapter `game-snake-poc-wasm` après généralisation minimale de provenance ;
|
||||
- `README.md` et `USAGE.md` initiaux.
|
||||
|
||||
La tranche vise un premier démarrage Tauri Android minimal, pas encore toute la finition input/lifecycle.
|
||||
|
||||
Gate utilisateur : audits, Cargo workspace strict, build WASM nécessaire, `cargo tauri android dev` sur un AVD ou appareil disponible. `cargo tauri android build` reste reporté aux phases finales sauf besoin diagnostique.
|
||||
|
||||
### `0-pre.3` — shell Snake, Canvas, input et assets
|
||||
|
||||
Réutiliser sélectivement le host Web validé :
|
||||
|
||||
- rendu Canvas et session fixed-step ;
|
||||
- shell responsive pertinent ;
|
||||
- contrôles directionnels touch/pointer et clavier lorsque disponible ;
|
||||
- resize/orientation ;
|
||||
- assets canoniques communs + Snake ;
|
||||
- absence de dépendances Web-only inutiles.
|
||||
|
||||
Aucune extraction commune n'est réalisée uniquement pour éviter quelques fichiers similaires pendant la mise au point.
|
||||
|
||||
### `0-pre.4` — lifecycle, provenance, tracing et sortie mobile
|
||||
|
||||
Stabiliser :
|
||||
|
||||
- background/foreground et reprise sans rattrapage massif ;
|
||||
- rotation/resize ;
|
||||
- provenance `Android / Wasm / TauriWebView` + device/input observés ;
|
||||
- tracing Rust/Tauri/frontend ;
|
||||
- sorties applicatives conformes à `EngineGame::quit_requested` sans détourner le Back système Android ;
|
||||
- smokes AVD et, si disponible, appareil réel.
|
||||
|
||||
Cette tranche doit rendre le second host fonctionnel de bout en bout.
|
||||
|
||||
### `0-pre.5` — extraction conditionnelle
|
||||
|
||||
Créer uniquement si l'état `0-pre.4` montre une duplication réellement durable entre `Web/game-snake-poc` et le frontend Tauri.
|
||||
|
||||
Une extraction possible doit rester bornée à une responsabilité clairement partagée, par exemple projection/rendu Canvas, mapping input Web ou helpers d'assets. Lifecycle et logging restent host-specific s'ils divergent réellement.
|
||||
|
||||
Si aucune extraction n'est justifiée, cette tranche est omise.
|
||||
|
||||
### `2-beta.1` — validation large et packaging Android
|
||||
|
||||
Prévoir :
|
||||
|
||||
- audits statiques applicables ;
|
||||
- `cargo fmt --all -- --check` ;
|
||||
- `cargo check --workspace` ;
|
||||
- Clippy workspace strict ;
|
||||
- suite workspace complète à ce jalon planifié ;
|
||||
- build WASM release et bindings ;
|
||||
- `cargo tauri android build` ;
|
||||
- APK/AAB selon le livrable de validation ;
|
||||
- install/smoke AVD ;
|
||||
- install/smoke appareil ARM64 réel si disponible ;
|
||||
- vérification que les outputs restent hors racine du dépôt lorsqu'ils sont configurables par le projet.
|
||||
|
||||
### `2-beta.2` — consolidation documentaire conditionnelle
|
||||
|
||||
Réserver seulement si les validations beta demandent une consolidation substantielle de `README.md`, `USAGE.md`, architecture, matrice de validation ou plan. Ne pas créer cette tranche par cérémonial.
|
||||
|
||||
### `3-rc.1` — candidate gelée
|
||||
|
||||
Gel fonctionnel, reproductibilité, packaging Android RC et validation finale selon les règles RC applicables. Aucun nouveau framework ni nouveau host.
|
||||
|
||||
### `0.3.1` — release stable
|
||||
|
||||
Promotion mécanique de la RC validée : versions stables, changelog, history et clôture du plan. Aucun ajout fonctionnel.
|
||||
|
||||
## Inventaire environnement requis avant `0-pre.2`
|
||||
|
||||
La gate `0-pre.1` doit recevoir au minimum :
|
||||
|
||||
```bash
|
||||
rustc --version
|
||||
cargo --version
|
||||
cargo tauri --version
|
||||
rustup target list --installed
|
||||
node --version
|
||||
npm --version
|
||||
wasm-bindgen --version
|
||||
java -version
|
||||
printf 'JAVA_HOME=%s\nANDROID_HOME=%s\nNDK_HOME=%s\n' "$JAVA_HOME" "$ANDROID_HOME" "$NDK_HOME"
|
||||
adb version
|
||||
adb devices -l
|
||||
emulator -list-avds
|
||||
```
|
||||
|
||||
L'absence d'un outil ne doit pas être masquée. Elle devient un prérequis concret de `0-pre.2` ou motive un fix borné de `0-pre.1`.
|
||||
|
||||
## Critères de fermeture de 0.3.1
|
||||
|
||||
La version peut entrer en RC lorsque :
|
||||
|
||||
- Snake est jouable dans le WebView Tauri Android sans gameplay dupliqué ;
|
||||
- le même adapter WASM sert Web direct et Tauri Android avec provenance exacte ;
|
||||
- lifecycle/input/assets/tracing/Back ont un comportement explicite et validé ;
|
||||
- le chemin de build ne dépend d'aucun orchestrateur Python ;
|
||||
- le packaging Tauri Android est reproductible ;
|
||||
- les smokes prévus sur cible Android ont été exécutés ;
|
||||
- aucune extraction commune non prouvée n'a été introduite ;
|
||||
- la documentation opérateur et architecture reflète l'état réel.
|
||||
|
||||
## Version suivante
|
||||
|
||||
`0.3.2` reste réservée à Tauri Desktop + Snake et à une éventuelle factorisation WebView seulement après deux consommateurs réels.
|
||||
Reference in New Issue
Block a user