0.3.3-0-pre.4
This commit is contained in:
92
deltas/0.3.3/0-pre.4.md
Normal file
92
deltas/0.3.3/0-pre.4.md
Normal file
@@ -0,0 +1,92 @@
|
||||
<!-- file: deltas/0.3.3/0-pre.4.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.3.3-0-pre.4
|
||||
|
||||
## Objet
|
||||
|
||||
Étendre le pipeline Android SDL3 natif validé en `0-pre.3` à toutes les ABI encore supportées par la toolchain moderne, sans mélanger cette preuve avec l'AAB/16 KB.
|
||||
|
||||
Matrice cible obligatoire :
|
||||
|
||||
```text
|
||||
arm64-v8a
|
||||
armeabi-v7a
|
||||
x86_64
|
||||
x86
|
||||
```
|
||||
|
||||
Les ABI historiques `armeabi`, `mips` et `mips64` restent hors contrat car elles ont été retirées des toolchains Android modernes.
|
||||
|
||||
## Base et historique
|
||||
|
||||
Base : `0.3.3-0-pre.3`, validée par l'utilisateur le 2026-09-21 avec Temurin 25.0.4.1, Gradle 9.7.1, audits/Cargo/Clippy propres, APK universal ARM64+x86_64 pour Snake et Reflex, puis smoke Snake réussi sur AVD x86_64 et Samsung ARM64 réel.
|
||||
|
||||
`history/0.3.3/0-pre.3.md` consigne cette preuve avant les changements du présent delta.
|
||||
|
||||
## Changements
|
||||
|
||||
- version workspace portée à `0.3.3-0-pre.4` ;
|
||||
- Snake et Reflex déclarent maintenant les quatre ABI dans `sasedevRustAndroidAbis` et `ndk.abiFilters` ;
|
||||
- l'audit de distribution exige cette matrice complète pour les deux consommateurs ;
|
||||
- documentation Android/build mise à jour pour distinguer couverture de packaging et disponibilité de smokes matériels ;
|
||||
- plan `0.3.3` redécoupé : `0-pre.4` est consacré aux quatre ABI, `0-pre.5` prendra l'AAB, 16 KB, minSdk et la fermeture du script Python historique ;
|
||||
- l'étude de cadrage conserve sa décision initiale mais ajoute explicitement la révision de scope décidée après `0-pre.3`.
|
||||
|
||||
Aucune modification n'est nécessaire dans `Android/gradle/sasedev-rust-android.gradle` : cette logique possédait déjà le mapping des quatre ABI et génère une tâche par ABI configurée.
|
||||
|
||||
## Validation attendue
|
||||
|
||||
Depuis la racine, sans imposer `JAVA_HOME` :
|
||||
|
||||
```bash
|
||||
java -version
|
||||
(cd Android && gradle --version)
|
||||
rustup target list --installed
|
||||
|
||||
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
|
||||
|
||||
(cd Android && gradle :game-snake-poc:assembleDebug)
|
||||
(cd Android && gradle :game-reflex-poc:assembleDebug)
|
||||
```
|
||||
|
||||
Les targets Rust nécessaires sont :
|
||||
|
||||
```text
|
||||
aarch64-linux-android
|
||||
armv7-linux-androideabi
|
||||
x86_64-linux-android
|
||||
i686-linux-android
|
||||
```
|
||||
|
||||
Pour chaque APK :
|
||||
|
||||
```bash
|
||||
for game in game-snake-poc game-reflex-poc; do
|
||||
APK="$(find "Android/${game}/build/outputs/apk/debug" \
|
||||
-maxdepth 1 -type f -name '*.apk' -print -quit)"
|
||||
|
||||
test -n "$APK"
|
||||
printf 'APK=%s\n' "$APK"
|
||||
unzip -Z1 "$APK" | grep '^lib/' | sort
|
||||
|
||||
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"
|
||||
done
|
||||
done
|
||||
```
|
||||
|
||||
La gate échoue si une des huit entrées natives par application manque. Aucun smoke 32 bits n'est revendiqué sans appareil/AVD 32 bits disponible. Les smokes déjà validés ARM64/x86_64 ne sont pas invalidés par l'ajout de la matrice 32 bits.
|
||||
|
||||
## Suite
|
||||
|
||||
Si les deux builds et l'inspection des quatre ABI sont propres, ouvrir `0.3.3-0-pre.5` pour le chemin release/AAB, le contrôle 16 KB, la consolidation minSdk et la suppression de `scripts/build_android_rust.py` lorsque toutes ses responsabilités sont effectivement remplacées.
|
||||
|
||||
Toute défaillance spécifique à cette tranche produit `0.3.3-0-pre.4.fix.N` avant `0-pre.5`.
|
||||
Reference in New Issue
Block a user