0.3.3
This commit is contained in:
13
CHANGELOG.md
13
CHANGELOG.md
@@ -1,8 +1,19 @@
|
|||||||
<!-- file: CHANGELOG.md -->
|
<!-- file: CHANGELOG.md -->
|
||||||
<!-- version: 17 -->
|
<!-- version: 18 -->
|
||||||
|
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 0.3.3 — 2026-09-21
|
||||||
|
|
||||||
|
- publication stable du pipeline Android SDL3 natif multi-ABI possédé par Gradle/Cargo, sans orchestrateur Python de build ni `src/main/jniLibs` généré dans les sources ;
|
||||||
|
- APK Debug universal et AAB Release produits pour `arm64-v8a`, `armeabi-v7a`, `x86_64` et `x86`, avec `minSdk 21` conservé et fumé sur Android 5.0/API 21 x86 ;
|
||||||
|
- compatibilité pages mémoire 16 KB validée pour les ABI 64 bits : `zipalign -P 16`, segments ELF `align 2**14` et smoke API 35 x86_64 `ps16k` avec `PAGE_SIZE=16384` ;
|
||||||
|
- smokes finaux Snake et Reflex validés sur AVD API 36 x86_64 et Samsung API 29 ARM64, avec installation réussie, activité lancée, processus vivant et aucune entrée crash remontée ;
|
||||||
|
- environnement Android natif validé avec JDK courant et Gradle système `>= 9.6.0`, sans wrapper Gradle ni `JAVA_HOME` imposé au projet ;
|
||||||
|
- préparation de `0.3.4` pour l'API de transport realtime/WebSocket et pour la nouvelle nomenclature prospective `alpha.M / beta.M / rc.M`, sans aucune réécriture des anciens `deltas/`, `history/`, prompts ou entrées historiques.
|
||||||
|
|
||||||
|
Les détails des phases `pre`, `beta`, `rc` et de leurs correctifs restent dans `deltas/0.3.3/` et `history/0.3.3/`.
|
||||||
|
|
||||||
## 0.3.3-3-rc.1 — 2026-09-21
|
## 0.3.3-3-rc.1 — 2026-09-21
|
||||||
|
|
||||||
- gel fonctionnel du pipeline Android SDL3 natif désormais possédé par Gradle/Cargo, sans orchestrateur Python de build ni `src/main/jniLibs` généré dans les sources ;
|
- gel fonctionnel du pipeline Android SDL3 natif désormais possédé par Gradle/Cargo, sans orchestrateur Python de build ni `src/main/jniLibs` généré dans les sources ;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ members = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.3.3-3-rc.1"
|
version = "0.3.3"
|
||||||
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,5 @@
|
|||||||
<!-- file: README.md -->
|
<!-- file: README.md -->
|
||||||
<!-- version: 52 -->
|
<!-- version: 53 -->
|
||||||
|
|
||||||
# games.sasedev
|
# games.sasedev
|
||||||
|
|
||||||
@@ -25,11 +25,11 @@ Workspace expérimental puis productif pour des jeux multiplateformes principale
|
|||||||
|
|
||||||
## Baseline
|
## Baseline
|
||||||
|
|
||||||
Version stable de référence : `0.3.1`.
|
Version stable de référence : `0.3.3`.
|
||||||
|
|
||||||
Version active de développement : `0.3.3-0-pre.1`. `0.3.2` reste différée.
|
Prochaine version planifiée : `0.3.4-alpha.1`. `0.3.2` reste différée.
|
||||||
|
|
||||||
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. `0.3.3-0-pre.1` cadre maintenant la voie Android SDL3 native multi-ABI, le packaging Gradle/APK/AAB, le plancher Android soutenable et la compatibilité des bibliothèques natives avec les pages mémoire de 16 KB.
|
La stable `0.3.3` livre la voie Android SDL3 native multi-ABI : build Gradle/Cargo sans orchestrateur Python, APK Debug universal et AAB Release pour `arm64-v8a`, `armeabi-v7a`, `x86_64` et `x86`, `minSdk 21` réellement fumé et compatibilité pages mémoire 16 KB validée sur les ABI 64 bits. `0.3.4-alpha.1` ouvrira la prochaine session avec la migration de nomenclature puis le cadrage de l'API de transport realtime/WebSocket.
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: ROADMAP.md -->
|
<!-- file: ROADMAP.md -->
|
||||||
<!-- version: 25 -->
|
<!-- version: 26 -->
|
||||||
|
|
||||||
# Roadmap
|
# Roadmap
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ Le détail historique des prereleases `0.1.0-*` reste dans `deltas/0.1.0/` et `h
|
|||||||
|
|
||||||
- (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.
|
- (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.
|
- (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.
|
- (x) `0.3.3` — Android SDL3 natif multi-ABI livré avec Cargo/Gradle natifs, APK universal pour tests, AAB comme cible de distribution, `minSdk 21` fumé et compatibilité 16 KB 64 bits validée, sans script Python de build.
|
||||||
- ( ) `0.3.4` — API de transport realtime + WebSocket/tokio-tungstenite baseline, sans serveur Uroburas Mode 3.
|
- ( ) `0.3.4` — API de transport realtime + WebSocket/tokio-tungstenite baseline, sans serveur Uroburas Mode 3.
|
||||||
- ( ) `0.3.5` — POC WebTransport/QUIC sur le même protocole, avec comparaison mesurée et fallback WebSocket.
|
- ( ) `0.3.5` — POC WebTransport/QUIC sur le même protocole, avec comparaison mesurée et fallback WebSocket.
|
||||||
- ( ) `0.3.6` — consolidation des POC plateforme/réseau et préparation de la baseline `0.4.x`.
|
- ( ) `0.3.6` — consolidation des POC plateforme/réseau et préparation de la baseline `0.4.x`.
|
||||||
|
|||||||
59
deltas/0.3.3/rel.001.md
Normal file
59
deltas/0.3.3/rel.001.md
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
<!-- file: deltas/0.3.3/rel.001.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Delta 0.3.3 — release stable
|
||||||
|
|
||||||
|
## Base
|
||||||
|
|
||||||
|
Base fonctionnelle validée : `0.3.3-3-rc.1`.
|
||||||
|
|
||||||
|
Le delta documentaire `0.3.3-3-rc.1.fix.1` est également appliqué et validé ; il n'a pas modifié la version Cargo ni le runtime.
|
||||||
|
|
||||||
|
## Objet
|
||||||
|
|
||||||
|
Promouvoir mécaniquement la candidate validée vers `0.3.3` sans introduire de nouveau comportement.
|
||||||
|
|
||||||
|
## Changements
|
||||||
|
|
||||||
|
La release stable :
|
||||||
|
|
||||||
|
- passe `workspace.package.version` de `0.3.3-3-rc.1` à `0.3.3` ;
|
||||||
|
- positionne `README.md` sur `0.3.3` comme stable de référence et `0.3.4-alpha.1` comme prochaine version planifiée ;
|
||||||
|
- marque `0.3.3` terminée dans `ROADMAP.md` ;
|
||||||
|
- ajoute l'entrée stable `0.3.3` dans `CHANGELOG.md` ;
|
||||||
|
- enregistre la validation effective de la RC dans `history/0.3.3/3-rc.1.md` ;
|
||||||
|
- clôt `docs/plans/003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md` et son entrée d'index ;
|
||||||
|
- conserve `prompts/005-V0_3_4_START_PROMPT.md` comme transmission de la prochaine session.
|
||||||
|
|
||||||
|
## Frontière de release
|
||||||
|
|
||||||
|
Aucun changement de gameplay, code Rust, dépendance, Gradle, Android, JNI, Java, ABI, `minSdk`, NDK, SDL3, asset, protocole ou architecture n'est introduit après la RC.
|
||||||
|
|
||||||
|
La nouvelle convention de prerelease n'est pas rétroactivement appliquée à `0.3.3`. Elle commencera avec `0.3.4-alpha.1`, qui mettra à jour les règles actives sans renommer ni réécrire l'historique existant.
|
||||||
|
|
||||||
|
## Validation proportionnelle
|
||||||
|
|
||||||
|
La gate RC complète a déjà été validée sur un état fonctionnellement identique. La promotion stable demande uniquement les contrôles proportionnels aux changements de version/documentation :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
Les rebuilds Android, Clippy strict, suite workspace complète, contrôles APK/AAB/ELF et smokes runtime ne sont pas répétés puisque la promotion stable ne modifie aucun comportement ni pipeline.
|
||||||
|
|
||||||
|
## Publication
|
||||||
|
|
||||||
|
Après validation de ce delta :
|
||||||
|
|
||||||
|
- commit de release ;
|
||||||
|
- tag stable unique `v0.3.3` ;
|
||||||
|
- archive/tag de dépôt utilisée comme base de la prochaine session ;
|
||||||
|
- démarrage de `0.3.4` uniquement depuis `v0.3.3` avec `prompts/005-V0_3_4_START_PROMPT.md` ;
|
||||||
|
- première tranche suivante : migration de gouvernance puis `0.3.4-alpha.1` ;
|
||||||
|
- aucun ancien `deltas/`, `history/`, prompt ou changelog n'est renommé pour harmoniser sa nomenclature.
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/plans/000-README.md -->
|
<!-- file: docs/plans/000-README.md -->
|
||||||
<!-- version: 3 -->
|
<!-- version: 4 -->
|
||||||
|
|
||||||
# Plans de versions games.sasedev
|
# Plans de versions games.sasedev
|
||||||
|
|
||||||
@@ -13,4 +13,4 @@ Le `ROADMAP.md` reste la trajectoire macroscopique du projet ; les deltas décri
|
|||||||
|
|
||||||
- [`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.
|
- [`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 clôturé de `0.3.1`, second host Snake Tauri Android.
|
- [`002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md`](002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md) — plan clôturé de `0.3.1`, second host Snake Tauri Android.
|
||||||
- [`003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md`](003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md) — plan actif de `0.3.3`, pipeline Android SDL3 natif Gradle/Cargo multi-ABI.
|
- [`003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md`](003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md) — plan clôturé de `0.3.3`, pipeline Android SDL3 natif Gradle/Cargo multi-ABI.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/plans/003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md -->
|
<!-- file: docs/plans/003-V0_3_3_ANDROID_NATIVE_MULTI_ABI_PLAN.md -->
|
||||||
<!-- version: 6 -->
|
<!-- version: 7 -->
|
||||||
|
|
||||||
# Plan 0.3.3 — Android SDL3 natif multi-ABI et packaging Gradle
|
# Plan 0.3.3 — Android SDL3 natif multi-ABI et packaging Gradle
|
||||||
|
|
||||||
@@ -188,6 +188,14 @@ La convention de prerelease reste inchangée jusqu'à la stable `0.3.3`. La migr
|
|||||||
|
|
||||||
Promotion mécanique de la RC validée. Aucun changement fonctionnel ou architectural.
|
Promotion mécanique de la RC validée. Aucun changement fonctionnel ou architectural.
|
||||||
|
|
||||||
|
## Statut de clôture
|
||||||
|
|
||||||
|
Plan clôturé avec la publication stable `0.3.3` le 2026-09-21.
|
||||||
|
|
||||||
|
La RC a confirmé la reproductibilité du workspace, les builds Android Debug/Release quatre ABI, les APK/AAB, `zipalign -P 16`, les segments ELF 64 bits `align 2**14` et les smokes Snake/Reflex sur AVD API 36 x86_64 et appareil ARM64 réel. Les preuves de frontière API 21/x86 et API 35/x86_64 `ps16k` ont été acquises avant beta puis conservées sans régression du pipeline natif.
|
||||||
|
|
||||||
|
Aucun comportement nouveau n'est introduit par la promotion stable. La suite appartient à `0.3.4`, qui commencera sous la nouvelle convention `alpha.M / beta.M / rc.M` sans réécrire les jalons historiques de `0.3.3` ou antérieurs.
|
||||||
|
|
||||||
## Sizing
|
## Sizing
|
||||||
|
|
||||||
Le scope reste raisonnable pour une seule version avec cinq prereleases techniques avant beta, la nouvelle `0-pre.4` isolant volontairement l'extension 32 bits du packaging AAB/16 KB. Les zones susceptibles de forcer un split de version sont uniquement une incompatibilité profonde de `cargo-ndk` avec AGP/Gradle, une SDL3 AAR non exploitable par Prefab comme prévu, ou une incompatibilité effective d'une des deux ABI 32 bits encore supportées.
|
Le scope reste raisonnable pour une seule version avec cinq prereleases techniques avant beta, la nouvelle `0-pre.4` isolant volontairement l'extension 32 bits du packaging AAB/16 KB. Les zones susceptibles de forcer un split de version sont uniquement une incompatibilité profonde de `cargo-ndk` avec AGP/Gradle, une SDL3 AAR non exploitable par Prefab comme prévu, ou une incompatibilité effective d'une des deux ABI 32 bits encore supportées.
|
||||||
|
|||||||
100
history/0.3.3/3-rc.1.md
Normal file
100
history/0.3.3/3-rc.1.md
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
<!-- file: history/0.3.3/3-rc.1.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Historique 0.3.3-3-rc.1
|
||||||
|
|
||||||
|
## Statut
|
||||||
|
|
||||||
|
`0.3.3-3-rc.1` a été validée par l'utilisateur le 2026-09-21 puis retenue pour promotion mécanique vers la stable `0.3.3`.
|
||||||
|
|
||||||
|
Le correctif `3-rc.1.fix.1` est strictement documentaire : il enrichit le prompt `0.3.4` sans changer la version Cargo, le runtime ou le pipeline Android. Ses audits Markdown/distribution ont ensuite été validés.
|
||||||
|
|
||||||
|
## Gate workspace et packaging
|
||||||
|
|
||||||
|
La gate RC a confirmé :
|
||||||
|
|
||||||
|
- audits Rust général, exports, workspace, Markdown et distribution propres ;
|
||||||
|
- `cargo fmt --all` / `--check`, `cargo check --workspace`, Clippy strict et suite workspace complète avec 35 tests réussis ;
|
||||||
|
- rebuild propre Snake/Reflex en Debug et Release ;
|
||||||
|
- quatre ABI `arm64-v8a`, `armeabi-v7a`, `x86_64`, `x86` dans les APK Debug et AAB Release ;
|
||||||
|
- `zipalign -c -P 16 -v 4` avec `Verification successful` sur les deux APK.
|
||||||
|
|
||||||
|
## Alignement ELF 64 bits
|
||||||
|
|
||||||
|
Les bibliothèques Release `libSDL3.so` et `libgame_android_entrypoint.so` de Snake et Reflex ont été inspectées pour `arm64-v8a` et `x86_64` avec `llvm-objdump` du NDK `28.2.13676358`.
|
||||||
|
|
||||||
|
Toutes les lignes `LOAD` observées sont alignées à :
|
||||||
|
|
||||||
|
```text
|
||||||
|
align 2**14
|
||||||
|
```
|
||||||
|
|
||||||
|
Le critère 16 KB 64 bits de la matrice RC est donc satisfait.
|
||||||
|
|
||||||
|
## Smokes AVD API 36 x86_64
|
||||||
|
|
||||||
|
Snake :
|
||||||
|
|
||||||
|
```text
|
||||||
|
install: Success
|
||||||
|
Status: ok
|
||||||
|
LaunchState: COLD
|
||||||
|
pidof: 4777
|
||||||
|
crash buffer: aucune entrée remontée
|
||||||
|
```
|
||||||
|
|
||||||
|
Reflex :
|
||||||
|
|
||||||
|
```text
|
||||||
|
install: Success
|
||||||
|
Status: ok
|
||||||
|
LaunchState: COLD
|
||||||
|
pidof: 5545
|
||||||
|
crash buffer: aucune entrée remontée
|
||||||
|
```
|
||||||
|
|
||||||
|
## Smokes ARM64 réels
|
||||||
|
|
||||||
|
Le Samsung de validation rapporte :
|
||||||
|
|
||||||
|
```text
|
||||||
|
API 29
|
||||||
|
ro.product.cpu.abi=arm64-v8a
|
||||||
|
```
|
||||||
|
|
||||||
|
Snake :
|
||||||
|
|
||||||
|
```text
|
||||||
|
install: Success
|
||||||
|
Status: ok
|
||||||
|
LaunchState: COLD
|
||||||
|
pidof: 21137
|
||||||
|
crash buffer: aucune entrée remontée
|
||||||
|
```
|
||||||
|
|
||||||
|
Reflex :
|
||||||
|
|
||||||
|
```text
|
||||||
|
install: Success
|
||||||
|
Status: ok
|
||||||
|
LaunchState: UNKNOWN (-1)
|
||||||
|
pidof: 22830
|
||||||
|
crash buffer: aucune entrée remontée
|
||||||
|
```
|
||||||
|
|
||||||
|
`LaunchState: UNKNOWN (-1)` n'a pas été traité comme un crash : l'activité a terminé la commande `am start -W`, le processus est resté vivant et le buffer crash n'a remonté aucune entrée.
|
||||||
|
|
||||||
|
Les observations humaines demandées par la matrice RC ont été exécutées dans le cadre de ces smokes et aucun défaut supplémentaire n'a été signalé avant la promotion stable.
|
||||||
|
|
||||||
|
## Frontières déjà acquises
|
||||||
|
|
||||||
|
Aucune modification native/Gradle n'étant intervenue depuis les preuves précédentes, la RC conserve aussi :
|
||||||
|
|
||||||
|
- Android 5.0/API 21 x86 avec installation et démarrage Snake ;
|
||||||
|
- Android 15/API 35 x86_64 `ps16k` avec `PAGE_SIZE=16384`, installation, démarrage et processus vivant ;
|
||||||
|
- support des quatre ABI dans le pipeline Gradle/Cargo ;
|
||||||
|
- suppression du builder Python Android historique et interdiction des `src/main/jniLibs` générés.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
Aucun défaut nécessitant un `3-rc.1.fix.N` fonctionnel n'a été remonté. La promotion vers `0.3.3` reste strictement mécanique.
|
||||||
Reference in New Issue
Block a user