diff --git a/CHANGELOG.md b/CHANGELOG.md index ca8840a..b7affdc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,18 @@ - + # Changelog +## 0.3.1 — 2026-09-21 + +- publication stable du second host Snake sous Tauri Android, conservé comme POC de référence et non comme voie de production Android ; +- validation du gameplay partagé via `game-snake-poc-wasm`, du Canvas, des contrôles tactiles, des assets, du lifecycle mobile/WebView, du tracing et de la provenance runtime ; +- validation d’un APK Debug universal autonome contenant `arm64-v8a` et `x86_64`, installé et lancé sur Galaxy S9+ ARM64 réel et AVD API 36 x86_64 ; +- validation finale de `0.3.1-3-rc.1` sans défaut nécessitant un correctif RC, puis promotion mécanique vers la stable ; +- maintien de `0.3.2` en différé et préparation de `0.3.3` pour Android SDL3 natif multi-ABI, APK universal de test, AAB de distribution et évaluation du `minSdk`. + +Les détails des phases `pre`, `beta`, `rc` et de leurs correctifs restent dans `deltas/0.3.1/` et `history/0.3.1/`. + ## 0.3.1-3-rc.1 — 2026-09-21 - gel fonctionnel du POC Snake Tauri Android de référence après validation beta du workspace complet et du packaging Android autonome ; diff --git a/Cargo.toml b/Cargo.toml index 5b3e92d..1505478 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ # file: Cargo.toml -# version: 79 +# version: 80 [workspace] resolver = "3" @@ -21,7 +21,7 @@ members = [ ] [workspace.package] -version = "0.3.1-3-rc.1" +version = "0.3.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/games" diff --git a/README.md b/README.md index 61de5b4..ccf3261 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - + # games.sasedev @@ -25,11 +25,11 @@ Workspace expérimental puis productif pour des jeux multiplateformes principale ## Baseline -Version stable de référence : `0.3.0`. +Version stable de référence : `0.3.1`. -Version de développement courante : `0.3.1-3-rc.1`. +Version suivante active planifiée : `0.3.3` (non démarrée). `0.3.2` reste différée. -Le scope `0.3.1` est gelé en RC. `0.3.2` reste différée ; la prochaine version active prévue après la stable est `0.3.3`, centrée sur Android SDL3 natif multi-ABI, le packaging Gradle/AAB et l’évaluation explicite de la compatibilité avec des versions Android plus anciennes. +La stable `0.3.1` conserve Snake Tauri Android comme POC de référence validé sur AVD x86_64 et appareil ARM64 réel. La prochaine version active `0.3.3` est centrée sur Android SDL3 natif multi-ABI, le packaging Gradle/AAB et l’évaluation explicite de la compatibilité avec des versions Android plus anciennes. Les deux premiers jeux sont des POC structurels : `game-reflex-poc` et `game-snake-poc`. Ils existent d'abord pour valider les frontières du workspace, le moteur, les assets et le packaging multiplateforme. diff --git a/ROADMAP.md b/ROADMAP.md index 21e958b..4c8ec8f 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,5 +1,5 @@ - + # Roadmap @@ -44,9 +44,9 @@ Le détail historique des prereleases `0.1.0-*` reste dans `deltas/0.1.0/` et `h - (x) `0.3.0` — utiliser uniquement Cargo, `wasm-bindgen` et Vite/npm pour le chemin de build Web ; aucun script Python ne pilote ce build. - (x) `0.3.0` — documenter les duplications observées et conserver les adapters Web/WASM spécifiques tant qu’un second consommateur ne justifie pas une extraction commune. -## Série 0.3.x — trajectoire actuelle après 0.3.0 +## Série 0.3.x — trajectoire actuelle après 0.3.1 -- ( ) `0.3.1` — terminer Snake Tauri Android comme POC de référence réutilisant la baseline Web/WASM ; la production Android reste orientée SDL3 natif. +- (x) `0.3.1` — Snake Tauri Android livré comme POC de référence réutilisant la baseline Web/WASM ; la production Android reste orientée SDL3 natif. - (d) `0.3.2` — Tauri Desktop + Snake est différé tant qu’une solution de monétisation desktop/WebView, notamment vidéo récompensée, n’est pas démontrée techniquement et contractuellement ; ne pas créer cette distribution seulement pour réutiliser le host Web. - ( ) `0.3.3` — Android SDL3 natif multi-ABI avec Cargo/Gradle natifs, APK universal pour tests, AAB comme cible de distribution et évaluation du `minSdk`/support d’anciennes versions Android, sans script Python de build. - ( ) `0.3.4` — API de transport realtime + WebSocket/tokio-tungstenite baseline, sans serveur Uroburas Mode 3. diff --git a/crates/apps/game-snake-poc-tauri/package.json b/crates/apps/game-snake-poc-tauri/package.json index 2cabf64..e55e6e7 100644 --- a/crates/apps/game-snake-poc-tauri/package.json +++ b/crates/apps/game-snake-poc-tauri/package.json @@ -1,7 +1,7 @@ { "name": "game-snake-poc-tauri", "private": true, - "version": "0.3.1-3-rc.1", + "version": "0.3.1", "type": "module", "scripts": { "wasm:dev": "cargo build -p game-snake-poc-wasm --target wasm32-unknown-unknown && wasm-bindgen ../../../../builds/sasedev-games/target/wasm32-unknown-unknown/debug/game_snake_poc_wasm.wasm --target web --out-dir ../../../../builds/sasedev-games/game-snake-poc-tauri/wasm --out-name game_snake_poc_wasm", diff --git a/deltas/0.3.1/rel.001.md b/deltas/0.3.1/rel.001.md new file mode 100644 index 0000000..8306382 --- /dev/null +++ b/deltas/0.3.1/rel.001.md @@ -0,0 +1,56 @@ + + + +# Delta 0.3.1 — release stable + +## Base + +Base validée : `0.3.1-3-rc.1`. + +## Objet + +Promouvoir mécaniquement la candidate validée vers `0.3.1` sans introduire de nouveau comportement. + +## Changements + +La release stable : + +- passe `workspace.package.version` de `0.3.1-3-rc.1` à `0.3.1` ; +- passe le package frontend Tauri Snake de `0.3.1-3-rc.1` à `0.3.1` ; +- positionne `README.md` sur la stable `0.3.1` et `0.3.3` comme prochaine version active planifiée, `0.3.2` restant différée ; +- marque `0.3.1` comme terminée dans `ROADMAP.md` ; +- ajoute l'entrée stable `0.3.1` dans `CHANGELOG.md` ; +- enregistre la validation effective de la RC dans `history/0.3.1/3-rc.1.md` ; +- clôt le plan `0.3.1` et confirme que l'AAB/compatibilité Android ancienne appartiennent au POC SDL3 natif `0.3.3`. + +Le prompt `prompts/004-V0_3_3_START_PROMPT.md` est conservé tel que préparé et validé en RC. + +## Frontière de release + +Aucun changement de gameplay, de code Rust, de dépendance, de configuration exécutable, de frontend, de build Android, d'architecture ou de capability n'est introduit après la RC. + +## Validation + +La gate RC complète a déjà été validée sur un état fonctionnellement identique. La promotion stable ne requiert que les gates proportionnelles aux changements de versions et de documentation : + +```bash +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 + +(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) +``` + +Le build Tauri reste la seule validation frontend de release : ne pas lancer `npm run build` manuellement. Les smokes AVD/ARM64, Clippy strict et la suite workspace complète ne sont pas répétés, car aucun code/runtime n'a changé depuis la RC validée. + +## Publication + +Après validation de ce delta : + +- commit de release ; +- tag stable `v0.3.1` ; +- prochaine session ouverte uniquement à partir de la stable taggée `v0.3.1` et de `prompts/004-V0_3_3_START_PROMPT.md` ; +- ne pas créer artificiellement `0.3.2` tant que son critère de réouverture n'est pas satisfait. diff --git a/docs/plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md b/docs/plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md index fd521cf..eb8f446 100644 --- a/docs/plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md +++ b/docs/plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md @@ -1,5 +1,5 @@ - + # Plan v0.3.1 — second host Snake Tauri Android @@ -156,15 +156,15 @@ Le contrôle `unzip` explicite des deux entrées ABI n'a pas été fourni dans l 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 +### `3-rc.1` — candidate gelée — validée -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. +Tranche validée le 2026-09-21. 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. +La gate RC a revalidé le workspace complet, reconstruit l'APK autonome universal, vérifié explicitement les entrées `arm64-v8a` et `x86_64`, puis installé et lancé le même APK sur AVD API 36 x86_64 et Galaxy S9+ ARM64. Aucun correctif RC n'est nécessaire. -### `0.3.1` — release stable +### `0.3.1` — release stable — publiée -Promotion mécanique de la RC validée : versions stables, changelog, history et clôture du plan. Aucun ajout fonctionnel. +Promotion mécanique de la RC validée : versions stables, changelog, historique RC et clôture du plan. Aucun ajout fonctionnel. L'AAB reste volontairement hors `0.3.1` et appartient à la prochaine voie Android SDL3 native `0.3.3`. ## Inventaire environnement requis avant `0-pre.2` diff --git a/history/0.3.1/3-rc.1.md b/history/0.3.1/3-rc.1.md new file mode 100644 index 0000000..20ab9e4 --- /dev/null +++ b/history/0.3.1/3-rc.1.md @@ -0,0 +1,54 @@ + + + +# Historique 0.3.1-3-rc.1 + +## Statut + +RC validée par l'utilisateur le 2026-09-21 puis retenue pour promotion mécanique vers `0.3.1`. + +## Gate workspace + +La gate RC complète a passé : + +- `cargo fmt --all` puis `cargo fmt --all -- --check` ; +- audits Rust général, exports, workspace, Markdown et distribution propres ; +- `cargo check --workspace` ; +- `cargo clippy --workspace --all-targets --all-features -- -D warnings` ; +- `cargo test --workspace --all-targets --all-features` avec 35 tests réussis et aucun échec. + +## Build frontend et packaging Android + +`npm install` a terminé sans vulnérabilité signalée. Le build Tauri a exécuté son hook `beforeBuildCommand`, comprenant le build WASM release, `wasm-bindgen`, TypeScript, Vite production et la copie des assets. + +La commande : + +```text +cargo tauri android build --debug --apk --target aarch64 --target x86_64 +``` + +a produit l'APK autonome universal : + +```text +gen/android/app/build/outputs/apk/universal/debug/app-universal-debug.apk +``` + +Le contrôle `unzip -l` a confirmé les deux bibliothèques natives : + +```text +lib/arm64-v8a/libgame_snake_poc_tauri_lib.so +lib/x86_64/libgame_snake_poc_tauri_lib.so +``` + +## Smokes Android + +Le même APK universal a été installé puis lancé avec succès : + +- sur l'AVD `sasedev_games_api36` x86_64 ; +- sur le Galaxy S9+ ARM64 réel. + +Aucun défaut nécessitant un `3-rc.1.fix.N` n'a été remonté après ces smokes. + +## Conclusion + +La RC reste fonctionnellement identique au scope gelé de `0.3.1`. La promotion stable peut rester strictement mécanique.