0.3.0-2-beta.2
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/000-README.md -->
|
||||
<!-- version: 25 -->
|
||||
<!-- version: 26 -->
|
||||
|
||||
# Documentation games.sasedev
|
||||
|
||||
@@ -68,6 +68,7 @@ Voir [`../RULES.md`](../RULES.md), notamment [`rules/RULES_DOCUMENTATION.md`](ru
|
||||
- [`testing/001-TEST_ARCHITECTURE.md`](testing/001-TEST_ARCHITECTURE.md) — séparation `unit_tests/` / `tests/`, tests ciblés et tracing de test.
|
||||
- [`testing/002-BETA_VALIDATION_MATRIX.md`](testing/002-BETA_VALIDATION_MATRIX.md) — matrice beta Desktop SDL3, Tauri/WASM et Android multi-appareils.
|
||||
- [`testing/003-RC_VALIDATION_MATRIX.md`](testing/003-RC_VALIDATION_MATRIX.md) — matrice RC de reproductibilité, packaging final et promotion vers `0.1.0`.
|
||||
- [`testing/004-V0_3_0_RC_VALIDATION_MATRIX.md`](testing/004-V0_3_0_RC_VALIDATION_MATRIX.md) — gate RC spécifique au POC Snake Web direct et à son témoin Desktop SDL3.
|
||||
- [`development/003-TRACING_AND_DIAGNOSTICS.md`](development/003-TRACING_AND_DIAGNOSTICS.md) — socle `tracing`, subscriber et appender communs.
|
||||
- [`development/004-SDL3_DESKTOP_PREREQUISITES.md`](development/004-SDL3_DESKTOP_PREREQUISITES.md) — prérequis SDL3 Desktop, stratégie de liaison système et vérification `pkg-config`.
|
||||
- [`development/005-DESKTOP_WINDOW_POLICY.md`](development/005-DESKTOP_WINDOW_POLICY.md) — taille initiale, redimensionnement et séparation future entre fenêtre physique et résolution virtuelle.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/architecture/015-PLATFORM_POC_ARCHITECTURE.md -->
|
||||
<!-- version: 1 -->
|
||||
<!-- version: 2 -->
|
||||
|
||||
# Architecture des POC plateforme et réseau
|
||||
|
||||
@@ -11,12 +11,12 @@ Snake est le jeu-sonde principal.
|
||||
|
||||
## POC plateforme prioritaires
|
||||
|
||||
Première vague :
|
||||
Première vague, réordonnée à partir du résultat réel de `0.3.0` :
|
||||
|
||||
- Tauri Android + Snake ;
|
||||
- Web navigateur direct + Snake ;
|
||||
- Tauri Desktop + Snake ;
|
||||
- build Android multi-ABI avec outils natifs.
|
||||
- Web navigateur direct + Snake — validé par `0.3.0` ;
|
||||
- Tauri Android + Snake — prochain host prévu par `0.3.1` ;
|
||||
- Tauri Desktop + Snake — prévu ensuite pour éprouver la factorisation WebView ;
|
||||
- build Android multi-ABI avec outils natifs — tranche dédiée après les POC WebView.
|
||||
|
||||
Plateformes supplémentaires lorsque l'environnement existe : Windows SDL natif, macOS SDL natif et iOS SDL natif.
|
||||
|
||||
@@ -38,6 +38,8 @@ Un POC sert à identifier duplication, adapters manquants, capability réellemen
|
||||
|
||||
Une abstraction n'est pas extraite avant observation d'un besoin concret.
|
||||
|
||||
Le POC Web direct `0.3.0` n'a pas justifié d'extraire prématurément un adapter WASM commun entre Reflex et Snake : les deux adapters spécifiques restent acceptés. Le second host Snake doit d'abord fournir un second besoin réel avant toute factorisation.
|
||||
|
||||
## Relation avec Uroburas
|
||||
|
||||
Les résultats des POC `0.3.x` déterminent les choix techniques conservés pour la trajectoire Uroburas `0.4.x`.
|
||||
|
||||
91
docs/architecture/018-V0_3_0_WEB_SNAKE_BASELINE.md
Normal file
91
docs/architecture/018-V0_3_0_WEB_SNAKE_BASELINE.md
Normal file
@@ -0,0 +1,91 @@
|
||||
<!-- file: docs/architecture/018-V0_3_0_WEB_SNAKE_BASELINE.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Baseline consolidée 0.3.0 — Snake Web direct
|
||||
|
||||
## Statut
|
||||
|
||||
Ce document consolide les résultats effectivement validés du premier POC plateforme de la série `0.3.x`. Il prépare le gel RC de `0.3.0` et sert de baseline au second host Snake prévu en `0.3.1`.
|
||||
|
||||
## Chaîne validée
|
||||
|
||||
Le chemin Web direct retenu est :
|
||||
|
||||
```text
|
||||
game-snake-poc
|
||||
↓
|
||||
game-snake-poc-wasm
|
||||
↓ wasm-bindgen --target web
|
||||
Web/game-snake-poc
|
||||
↓
|
||||
Vite / TypeScript / Bootstrap 5 / Canvas
|
||||
```
|
||||
|
||||
`game-snake-poc` reste indépendant de SDL3, DOM, Canvas, Tauri et des APIs plateforme. `game-snake-poc-wasm` adapte la scène et les entrées au host Web et porte la provenance runtime ; le frontend gère DOM, lifecycle navigateur, rendu Canvas et shell UI.
|
||||
|
||||
## Input et cadence
|
||||
|
||||
Les entrées navigateur sont converties vers les quatre actions Snake `Left`, `Right`, `Up`, `Down`. Une entrée ne fait pas avancer directement la simulation : la direction est mise en attente puis consommée au prochain `tick()` WASM.
|
||||
|
||||
Le host valide clavier, contrôles pointer/tactiles, resize et pause/reprise sans rattrapage massif après masquage d'onglet.
|
||||
|
||||
## Shell Web
|
||||
|
||||
Le frontend reprend les conventions utiles des applications Desk KSP sans dépendre de Tauri :
|
||||
|
||||
- Vite + TypeScript ;
|
||||
- Bootstrap 5 / Bootswatch Pulse ;
|
||||
- Font Awesome ;
|
||||
- Sass ;
|
||||
- SimpleBar et `resize-observer-polyfill` ;
|
||||
- header/footer fixes et zone centrale scrollable ;
|
||||
- Canvas conservant le ratio logique Snake `12 × 20`.
|
||||
|
||||
Le frontend reste un host : il ne contient aucune règle de gameplay.
|
||||
|
||||
## Assets
|
||||
|
||||
Les assets sources restent hors des crates sous `assets/`. Le build Web conserve les namespaces logiques :
|
||||
|
||||
```text
|
||||
assets/common/data/runtime.json → /common/data/runtime.json
|
||||
assets/game-snake-poc/data/game.json → /game/data/game.json
|
||||
```
|
||||
|
||||
Les mêmes routes sont valides en développement Vite et dans le bundle production.
|
||||
|
||||
## Provenance runtime
|
||||
|
||||
La session Web conserve `RuntimeProvenance` dans l'adapter WASM. Les dimensions fixes sont `Web / Browser / Wasm`; la classe d'appareil et le profil d'entrée sont renseignés à partir de l'environnement et des entrées réellement observées.
|
||||
|
||||
Le smoke validé expose notamment :
|
||||
|
||||
```text
|
||||
web / browser / wasm / desktop / keyboard-mouse
|
||||
```
|
||||
|
||||
## Build
|
||||
|
||||
Le chemin Web direct ne dépend d'aucun orchestrateur Python :
|
||||
|
||||
```text
|
||||
Cargo
|
||||
→ wasm-bindgen
|
||||
→ Vite/npm
|
||||
```
|
||||
|
||||
Les artefacts générés restent hors dépôt sous `../builds/sasedev-games/`.
|
||||
|
||||
## Résultat de l'extraction
|
||||
|
||||
`0.3.0` ne justifie pas encore une abstraction WASM commune entre Reflex et Snake. Les deux adapters spécifiques restent préférables à une factorisation spéculative.
|
||||
|
||||
Le prochain host Snake doit réutiliser cette baseline et fournir un second cas réel avant extraction d'une couche commune WebView/WASM.
|
||||
|
||||
## Témoin Desktop
|
||||
|
||||
Le runner `game-snake-poc-desktop` reste le témoin SDL3 natif. La beta `0.3.0-2-beta.1` a validé son build release et son smoke sans modification de gameplay ni de runtime SDL3.
|
||||
|
||||
## Suite
|
||||
|
||||
`0.3.1` doit éprouver Tauri Android + Snake. `0.3.2` peut ensuite tester Tauri Desktop et décider, sur deux consommateurs réels, si une factorisation WebView/frontend est justifiée.
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/001-V0_3_0_WEB_SNAKE_POC_PLAN.md -->
|
||||
<!-- version: 12 -->
|
||||
<!-- version: 13 -->
|
||||
|
||||
# Plan v0.3.0 — baseline Snake et premier POC Web direct
|
||||
|
||||
@@ -103,13 +103,17 @@ Décision après `0-pre.5.fix.1` : aucun besoin d'extraction/correction structur
|
||||
|
||||
Scope feature-complete. La tranche ne crée aucun nouveau comportement : elle bascule la version workspace et le package Web au jalon `0.3.0-2-beta.1`, enregistre la validation de `0-pre.5.fix.1` et exécute la gate large de frontière de phase. Celle-ci comprend audits, formatage/check/Clippy, tests workspace complets, build + smoke Desktop Snake en release, build WASM Snake en release, `wasm-bindgen`, build Vite production et smoke du `dist` via `npm run preview`. Aucun nouveau scope.
|
||||
|
||||
Validation : la gate est acceptée par l'utilisateur. Les audits sont propres, les tests workspace totalisent 34 tests réussis sans échec, le binaire Desktop Snake release démarre et s'arrête proprement après 144 frames, et le bundle Web/WASM release est construit puis servi par `vite preview` sans défaut remonté.
|
||||
|
||||
### `2-beta.2` — consolidation documentaire et transmission
|
||||
|
||||
Réconcilier l'état réellement validé avec la documentation durable et le plan actif, puis mettre à jour `CHANGELOG.md`, `ROADMAP.md` et l'historique applicable. Préparer et vérifier le prompt de la version/session suivante à partir de cet état, sans prétendre à des validations non exécutées.
|
||||
Réconcilier l'état réellement validé avec la documentation durable et le plan actif, mettre à jour `ROADMAP.md`, enregistrer `2-beta.1` dans l'historique et préparer le prompt de `0.3.1` à partir de cet état. La synthèse destinée au `CHANGELOG.md` est consolidée ici, mais l'entrée n'est écrite qu'en RC conformément à `DOC-CHG-002` et `DOC-CHG-003`.
|
||||
|
||||
Livraison candidate : synthèse durable de la baseline Web Snake `0.3.0`, matrice RC spécifique, roadmap `0.3.0` classée réalisée, audit `pre.1` réconcilié avec le contrat des archives taggées et prompt `003-V0_3_1_START_PROMPT.md`. Aucun code ni comportement runtime n'est modifié.
|
||||
|
||||
Cette tranche est une responsabilité obligatoire du cycle même si son numéro doit être décalé par des fixes ou une beta supplémentaire. La documentation spécifique à une fonctionnalité reste mise à jour dans la tranche qui introduit cette fonctionnalité ; `2-beta.2` réalise la consolidation transversale, elle ne sert pas à reporter toute la documentation en fin de version.
|
||||
|
||||
Gate : cohérence docs/plan/deltas/`CHANGELOG.md`/`ROADMAP.md`/history/prompt, puis audits documentaires applicables.
|
||||
Gate : cohérence docs/plan/deltas/`CHANGELOG.md`/`ROADMAP.md`/history/prompt, audits documentaires, `cargo check --workspace` pour le bump de version et `npm run build` pour confirmer la version frontend.
|
||||
|
||||
### `3-rc.1` — candidate gelée
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/studies/023-V0_3_0_PLATFORM_POC_AUDIT.md -->
|
||||
<!-- version: 1 -->
|
||||
<!-- version: 2 -->
|
||||
|
||||
# 0.3.0 — audit de baseline et cadrage du premier POC plateforme
|
||||
|
||||
@@ -13,7 +13,7 @@ Elle décrit l'état observé de la stable `0.2.0`, les requirements réellement
|
||||
|
||||
Base déclarée : tag stable `v0.2.0`, fourni sous forme d'archive `games-v0.2.0.zip`.
|
||||
|
||||
L'intégrité ZIP est propre. L'archive ne contient pas `.git` : l'état du commit, le tag effectif et la propreté du working tree ne peuvent donc pas être vérifiés dans cet environnement.
|
||||
L'intégrité ZIP est propre. L'archive est fournie explicitement comme téléchargement du tag stable `v0.2.0` et constitue donc la baseline autoritaire de ce tag conformément à `CMD-GIT-003`. L'absence de `.git` dans une archive de tag est normale et ne constitue pas une validation manquante ; les contrôles Git locaux ne s'appliquent que lorsqu'un checkout Git est effectivement fourni.
|
||||
|
||||
La version workspace observée avant modification est `0.2.0`.
|
||||
|
||||
|
||||
67
docs/testing/004-V0_3_0_RC_VALIDATION_MATRIX.md
Normal file
67
docs/testing/004-V0_3_0_RC_VALIDATION_MATRIX.md
Normal file
@@ -0,0 +1,67 @@
|
||||
<!-- file: docs/testing/004-V0_3_0_RC_VALIDATION_MATRIX.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Matrice RC 0.3.0 — Snake Web direct
|
||||
|
||||
## Objet
|
||||
|
||||
La RC `0.3.0` gèle le premier POC Snake Web direct. Elle ne crée aucune fonctionnalité et vérifie que l'état validé en beta reste reproductible avant promotion mécanique vers la stable.
|
||||
|
||||
## Gate statique et workspace
|
||||
|
||||
```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 Android Web deltas history
|
||||
python3 scripts/audit_distribution_layout.py
|
||||
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||
cargo test --workspace --all-targets --all-features
|
||||
```
|
||||
|
||||
## Desktop Snake release
|
||||
|
||||
```bash
|
||||
cargo build -p game-snake-poc-desktop --release
|
||||
../builds/sasedev-games/target/release/game-snake-poc-desktop
|
||||
```
|
||||
|
||||
Critères : démarrage, rendu, contrôles et arrêt propre.
|
||||
|
||||
## Web/WASM release
|
||||
|
||||
```bash
|
||||
cargo build -p game-snake-poc-wasm --release --target wasm32-unknown-unknown
|
||||
|
||||
wasm-bindgen \
|
||||
../builds/sasedev-games/target/wasm32-unknown-unknown/release/game_snake_poc_wasm.wasm \
|
||||
--target web \
|
||||
--out-dir ../builds/sasedev-games/game-snake-poc-web/wasm \
|
||||
--out-name game_snake_poc_wasm
|
||||
|
||||
(cd Web/game-snake-poc && npm install && npm run build && npm run preview)
|
||||
```
|
||||
|
||||
Ouvrir `http://127.0.0.1:4174/main.html`.
|
||||
|
||||
Critères :
|
||||
|
||||
- Canvas au ratio attendu ;
|
||||
- clavier et contrôles pointer/tactiles ;
|
||||
- SimpleBar ;
|
||||
- assets `snake / engine-v1` ;
|
||||
- provenance Web/WASM cohérente ;
|
||||
- resize ;
|
||||
- pause/reprise sans rattrapage massif ;
|
||||
- aucune erreur runtime bloquante.
|
||||
|
||||
## Artefacts et dépôt
|
||||
|
||||
Les artefacts Rust/WASM/Vite restent sous `../builds/sasedev-games/`. Aucun `node_modules`, `dist`, cache WASM ou artefact Cargo n'est livré dans le dépôt.
|
||||
|
||||
## Promotion
|
||||
|
||||
La promotion vers `0.3.0` est mécanique lorsque `3-rc.1` est validée sans défaut nécessitant une modification fonctionnelle. Tout correctif de release reste limité par `VER-RC-*`.
|
||||
Reference in New Issue
Block a user