0.3.3
This commit is contained in:
13
CHANGELOG.md
13
CHANGELOG.md
@@ -1,8 +1,19 @@
|
||||
<!-- file: CHANGELOG.md -->
|
||||
<!-- version: 17 -->
|
||||
<!-- version: 18 -->
|
||||
|
||||
# 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
|
||||
|
||||
- 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]
|
||||
version = "0.3.3-3-rc.1"
|
||||
version = "0.3.3"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
repository = "https://git.sasedev.com/Sasedev/games"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: README.md -->
|
||||
<!-- version: 52 -->
|
||||
<!-- version: 53 -->
|
||||
|
||||
# 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.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.
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: ROADMAP.md -->
|
||||
<!-- version: 25 -->
|
||||
<!-- version: 26 -->
|
||||
|
||||
# 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.
|
||||
- (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.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`.
|
||||
|
||||
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 -->
|
||||
<!-- version: 3 -->
|
||||
<!-- version: 4 -->
|
||||
|
||||
# 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.
|
||||
- [`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 -->
|
||||
<!-- version: 6 -->
|
||||
<!-- version: 7 -->
|
||||
|
||||
# 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.
|
||||
|
||||
## 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
|
||||
|
||||
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