0.3.1-2-beta.1

This commit is contained in:
2026-09-21 08:11:36 +02:00
parent d8e7951a04
commit e5a4d7fe44
13 changed files with 551 additions and 33 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/000-README.md -->
<!-- version: 28 -->
<!-- version: 29 -->
# Documentation games.sasedev
@@ -70,6 +70,7 @@ Voir [`../RULES.md`](../RULES.md), notamment [`rules/RULES_DOCUMENTATION.md`](ru
- [`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.
- [`testing/005-V0_3_1_RC_VALIDATION_MATRIX.md`](testing/005-V0_3_1_RC_VALIDATION_MATRIX.md) — gate RC du POC Snake Tauri Android de référence, incluant workspace complet et APK universal x86_64 + ARM64.
- [`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.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md -->
<!-- version: 9 -->
<!-- version: 10 -->
# Plan v0.3.1 — second host Snake Tauri Android
@@ -139,30 +139,28 @@ Si aucune extraction n'est justifiée, cette tranche est omise.
### `2-beta.1` — validation large et packaging Android
Tranche ouverte après validation de `0-pre.4.fix.1`. Aucun `0-pre.5` n'est justifié : aucune extraction Web/Tauri ne conserve assez de valeur maintenant que le host Android Tauri est explicitement un POC de référence.
Tranche validée le 2026-09-21. Aucun `0-pre.5` n'était justifié : aucune extraction Web/Tauri ne conserve assez de valeur maintenant que le host Android Tauri est explicitement un POC de référence.
Prévoir :
Résultats acquis :
- 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 de validation du POC de référence ;
- AAB uniquement si une valeur de validation supplémentaire est démontrée, pas par automatisme de distribution ;
- 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.
- audits statiques, `cargo fmt`, `cargo check --workspace` et Clippy workspace strict propres ;
- suite `cargo test --workspace --all-targets --all-features` propre avec 35 tests réussis et aucun échec ;
- hook Tauri `beforeBuildCommand` : WASM release, `wasm-bindgen`, TypeScript/Vite et copie des assets réussis ;
- APK Debug universal généré avec `aarch64-linux-android` et `x86_64-linux-android` ;
- installation et lancement réussis sur Galaxy S9+ ARM64 réel puis AVD API 36 x86_64 ;
- aucun serveur Vite, port `1436` ou tunnel ADB requis pour le package autonome.
### `2-beta.2` — consolidation documentaire conditionnelle
Le contrôle `unzip` explicite des deux entrées ABI n'a pas été fourni dans la sortie utilisateur ; la RC le conserve donc comme contrôle mécanique, même si l'installation/lancement du même APK sur ARM64 et x86_64 exerce déjà les deux architectures en pratique.
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.
### `2-beta.2` — omise
Aucune consolidation beta supplémentaire ne justifie une tranche autonome. Les documents durables nécessaires sont consolidés directement à l'ouverture de la RC.
### `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.
Tranche ouverte après validation de `2-beta.1`. Gel fonctionnel strict, synchronisation des versions RC, `CHANGELOG.md`, historique beta, matrice RC spécifique `0.3.1` et préparation du prompt de la prochaine version active. Aucun nouveau framework, host, gameplay ou comportement.
La gate RC revalide le workspace complet et l'APK autonome universal sur x86_64 + ARM64. Aucun AAB Tauri n'est demandé : l'AAB est réservé à la future voie Android SDL3 native où il constitue un vrai artefact de distribution.
### `0.3.1` — release stable
@@ -206,4 +204,4 @@ La version peut entrer en RC lorsque :
## Version suivante
`0.3.2` devient une évaluation conditionnelle de Tauri Desktop + Snake. Elle nest ouverte que si la WebView Desktop apporte un bénéfice explicite, notamment une piste de monétisation publicitaire viable ; la factorisation WebView reste interdite sans deux consommateurs réellement retenus.
`0.3.2` reste différée : aucune voie de monétisation Desktop/WebView suffisamment démontrée ne justifie son ouverture. La prochaine version active prévue est `0.3.3`, consacrée à Android SDL3 natif multi-ABI. Son `0-pre.1` devra notamment cadrer un AAB de distribution, distinguer compatibilité ABI et compatibilité de version Android, puis déterminer expérimentalement le `minSdk` réellement soutenable avant de promettre le support danciens appareils.

View File

@@ -0,0 +1,96 @@
<!-- file: docs/testing/005-V0_3_1_RC_VALIDATION_MATRIX.md -->
<!-- version: 1 -->
# Matrice de validation RC 0.3.1
## Objectif
`0.3.1-3-rc.1` est une candidate gelée. Elle n'ajoute aucune fonctionnalité au POC Snake Tauri Android ; elle vérifie qu'un état reproductible peut être promu mécaniquement vers `0.3.1`.
Le host Tauri Android reste un POC de référence. La voie Android productive reste SDL3 natif/Java/JNI. Aucun AAB Tauri n'est requis pour cette RC.
## Gel fonctionnel
Pendant `3-rc.*`, seules les corrections autorisées par `VER-RC-*` sont admises. Tout nouveau gameplay, contrôle swipe, refactor Web/Tauri, framework commun, intégration publicitaire ou changement volontaire de comportement est hors scope.
## Gate workspace
Depuis la racine :
```bash
export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64
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
```
Cette suite complète est volontairement répétée au jalon RC parce que la version technique et les métadonnées frontend sont promues vers la candidate.
## Packaging Android autonome
Installer/actualiser les dépendances frontend, puis laisser Tauri posséder le build WASM/Vite :
```bash
(cd crates/apps/game-snake-poc-tauri && npm install)
(cd crates/apps/game-snake-poc-tauri && \
cargo tauri android build --debug --apk --target aarch64 --target x86_64)
```
Ne pas lancer `npm run build` manuellement. Le hook `beforeBuildCommand` doit construire le WASM release, générer les bindings, exécuter TypeScript/Vite et copier les assets.
Le package RC de validation reste un APK Debug universal car `0.3.1` ne constitue pas la voie Android de production et ne possède aucun secret/signing de store. L'AAB de production sera étudié dans la future version Android SDL3 native.
## Contrôle ABI
À partir du chemin `<apk>` affiché par Tauri :
```bash
unzip -l <apk> | grep -E 'lib/(arm64-v8a|x86_64)/libgame_snake_poc_tauri_lib\.so'
```
Les deux entrées doivent être présentes.
## Smoke AVD x86_64
Lancer l'AVD de référence dans un terminal séparé :
```bash
emulator -avd sasedev_games_api36
```
Puis :
```bash
adb devices -l
adb -s emulator-5554 install -r <apk>
adb -s emulator-5554 shell am start -n com.sasedev.games.snake.tauri/.MainActivity
```
Vérifier : démarrage, Canvas, assets, WASM, contrôles disponibles, lifecycle background/foreground, reprise sans rattrapage et Back sans crash.
## Smoke ARM64 réel
Avec le Galaxy S9+ ou un autre appareil ARM64 disponible :
```bash
adb -s <serial> shell getprop ro.product.cpu.abi
adb -s <serial> install -r <apk>
adb -s <serial> shell am start -n com.sasedev.games.snake.tauri/.MainActivity
```
Vérifier : provenance `android / tauri-webview / wasm / phone / touch`, contrôles tactiles, background/foreground, reprise sans rattrapage, rotation/resize si disponible et plusieurs Back. Aucun Vite, `adb reverse` ou port `1436` ne doit être nécessaire.
Le crash `FORTIFY: pthread_mutex_lock called on a destroyed mutex` observé une fois en dev reste un point de surveillance. Sa reproduction sur l'APK autonome RC bloque la promotion stable et impose un `3-rc.1.fix.N`; son absence pendant les smokes RC permet de clore ce risque comme non reproductible dans l'état candidat.
## Promotion stable
Si la gate RC est propre et qu'aucun correctif n'est nécessaire, la promotion vers `0.3.1` est mécanique : versions stables, entrée stable du `CHANGELOG.md`, historique RC, clôture du plan et delta de release. Aucun code fonctionnel ne doit changer.