0.3.3-2-beta.1
This commit is contained in:
139
deltas/0.3.3/2-beta.1.md
Normal file
139
deltas/0.3.3/2-beta.1.md
Normal file
@@ -0,0 +1,139 @@
|
||||
<!-- file: deltas/0.3.3/2-beta.1.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.3.3-2-beta.1
|
||||
|
||||
## Objectif
|
||||
|
||||
Entrer en beta avec le pipeline Android SDL3 natif feature-complete : quatre ABI, APK universal, AAB Release, API 21 prouvée, compatibilité 16 KB 64 bits prouvée et aucun orchestrateur Python de build.
|
||||
|
||||
Cette tranche n'ajoute aucune fonctionnalité. Elle synchronise la version technique, consolide les preuves `0-pre.5` et exécute la validation large prévue avant RC.
|
||||
|
||||
## Baseline acceptée
|
||||
|
||||
`0.3.3-0-pre.5` est validée par l'utilisateur le 2026-09-21.
|
||||
|
||||
La baseline acceptée comprend :
|
||||
|
||||
- audits Rust/Markdown propres ;
|
||||
- audit de distribution propre après suppression de deux anciens `src/main/jniLibs` locaux ;
|
||||
- `cargo check --workspace` et Clippy workspace strict propres ;
|
||||
- `bundleRelease` réussi pour Snake et Reflex ;
|
||||
- AAB quatre ABI pour les deux jeux ;
|
||||
- `zipalign -P 16` réussi sur les APK Debug ;
|
||||
- ELF `arm64-v8a` et `x86_64` alignés `2**14` pour SDL3 et la bibliothèque Rust ;
|
||||
- smoke Snake réussi sur Android 5.0/API 21 x86 ;
|
||||
- smoke Snake réussi sur Android 15/API 35 x86_64 `ps16k` avec `getconf PAGE_SIZE=16384` ;
|
||||
- suppression du builder `scripts/build_android_rust.py`.
|
||||
|
||||
`history/0.3.3/0-pre.5.md` consigne le détail.
|
||||
|
||||
## Changements
|
||||
|
||||
- passage de `workspace.package.version` à `0.3.3-2-beta.1` ;
|
||||
- ajout de l'historique validé `0-pre.5` ;
|
||||
- correction documentaire du périmètre 16 KB : exigence Play portée sur les appareils 64 bits, sans imposer artificiellement `2**14` aux ABI 32 bits ;
|
||||
- consolidation du plan actif avec les preuves API 21 et `ps16k` réellement obtenues ;
|
||||
- aucune modification de gameplay, moteur, JNI, Java, logique Gradle, ABI, API Android, dépendance ou asset.
|
||||
|
||||
`CHANGELOG.md` et `ROADMAP.md` restent inchangés : la synthèse publiée est réservée à la RC/stable et le scope macro `0.3.3` n'est pas encore clos.
|
||||
|
||||
## Validation beta — statique et workspace
|
||||
|
||||
Depuis la racine :
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
La suite workspace complète est volontairement exécutée ici : `2-beta.1` constitue la gate large planifiée de la version.
|
||||
|
||||
## Rebuild Android beta
|
||||
|
||||
Nettoyer les outputs Gradle des applications, puis reconstruire les deux formes d'artefact :
|
||||
|
||||
```bash
|
||||
(cd Android && gradle :game-snake-poc:clean :game-reflex-poc:clean)
|
||||
|
||||
(cd Android && gradle :game-snake-poc:assembleDebug)
|
||||
(cd Android && gradle :game-reflex-poc:assembleDebug)
|
||||
|
||||
(cd Android && gradle :game-snake-poc:bundleRelease)
|
||||
(cd Android && gradle :game-reflex-poc:bundleRelease)
|
||||
```
|
||||
|
||||
Pour chaque APK Debug et AAB Release, vérifier les quatre ABI :
|
||||
|
||||
```bash
|
||||
for game in game-snake-poc game-reflex-poc; do
|
||||
APK="Android/${game}/build/outputs/apk/debug/${game}-debug.apk"
|
||||
AAB="Android/${game}/build/outputs/bundle/release/${game}-release.aab"
|
||||
|
||||
test -f "$APK"
|
||||
test -f "$AAB"
|
||||
|
||||
for abi in arm64-v8a armeabi-v7a x86_64 x86; do
|
||||
unzip -Z1 "$APK" | grep -Fx "lib/${abi}/libSDL3.so"
|
||||
unzip -Z1 "$APK" | grep -Fx "lib/${abi}/libgame_android_entrypoint.so"
|
||||
unzip -Z1 "$AAB" | grep -Fx "base/lib/${abi}/libSDL3.so"
|
||||
unzip -Z1 "$AAB" | grep -Fx "base/lib/${abi}/libgame_android_entrypoint.so"
|
||||
done
|
||||
done
|
||||
```
|
||||
|
||||
Revalider le packaging 16 KB :
|
||||
|
||||
```bash
|
||||
ZIPALIGN="$(find "$ANDROID_HOME/build-tools" -mindepth 2 -maxdepth 2 -type f -name zipalign -print | sort -V | tail -n 1)"
|
||||
test -x "$ZIPALIGN"
|
||||
|
||||
"$ZIPALIGN" -c -P 16 -v 4 Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk
|
||||
"$ZIPALIGN" -c -P 16 -v 4 Android/game-reflex-poc/build/outputs/apk/debug/game-reflex-poc-debug.apk
|
||||
```
|
||||
|
||||
Les preuves ELF 64 bits et les smokes de frontière API 21/16 KB viennent d'être établis en `0-pre.5`; ils ne sont pas rejoués mécaniquement dans cette beta tant qu'aucune logique native/Gradle n'a changé.
|
||||
|
||||
## Smokes beta de référence
|
||||
|
||||
Revalider **Snake et Reflex** sur :
|
||||
|
||||
1. l'AVD x86_64/API 36 de référence ;
|
||||
2. l'appareil ARM64 réel de référence.
|
||||
|
||||
Pour chaque jeu et chaque device :
|
||||
|
||||
```bash
|
||||
adb -s <serial> install -r <apk>
|
||||
adb -s <serial> shell am start -n <package>/<activity>
|
||||
```
|
||||
|
||||
Vérifier au minimum :
|
||||
|
||||
- démarrage ;
|
||||
- rendu SDL3 ;
|
||||
- contrôles/tactile ;
|
||||
- assets ;
|
||||
- absence de crash/panic immédiat ;
|
||||
- Back système et sortie propre.
|
||||
|
||||
Les packages/activities actuels sont :
|
||||
|
||||
```text
|
||||
Snake : com.sasedev.games.snake/.SnakeActivity
|
||||
Reflex : com.sasedev.games.reflex/.ReflexActivity
|
||||
```
|
||||
|
||||
## Transition
|
||||
|
||||
Si la gate workspace, les rebuilds quatre ABI, le packaging et les quatre smokes de référence sont propres, ne pas créer de beta supplémentaire : ouvrir directement `0.3.3-3-rc.1`.
|
||||
|
||||
Toute régression imputable au projet produit d'abord `0.3.3-2-beta.1.fix.N`.
|
||||
Reference in New Issue
Block a user