Files
games/deltas/0.3.3/2-beta.1.md
2026-09-21 14:10:30 +02:00

4.9 KiB

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 :

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 :

(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 :

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 :

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 :

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 :

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.