3.8 KiB
Matrice de validation RC 0.3.1
Objectif
0.3.1-3-rc.1 est une candidate gelée. Elle n'ajoute aucune fonctionnalité au POC Snake Tauri Android ; elle vérifie qu'un état reproductible peut être promu mécaniquement vers 0.3.1.
Le host Tauri Android reste un POC de référence. La voie Android productive reste SDL3 natif/Java/JNI. Aucun AAB Tauri n'est requis pour cette RC.
Gel fonctionnel
Pendant 3-rc.*, seules les corrections autorisées par VER-RC-* sont admises. Tout nouveau gameplay, contrôle swipe, refactor Web/Tauri, framework commun, intégration publicitaire ou changement volontaire de comportement est hors scope.
Gate workspace
Depuis la racine :
export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64
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
Cette suite complète est volontairement répétée au jalon RC parce que la version technique et les métadonnées frontend sont promues vers la candidate.
Packaging Android autonome
Installer/actualiser les dépendances frontend, puis laisser Tauri posséder le build WASM/Vite :
(cd crates/apps/game-snake-poc-tauri && npm install)
(cd crates/apps/game-snake-poc-tauri && \
cargo tauri android build --debug --apk --target aarch64 --target x86_64)
Ne pas lancer npm run build manuellement. Le hook beforeBuildCommand doit construire le WASM release, générer les bindings, exécuter TypeScript/Vite et copier les assets.
Le package RC de validation reste un APK Debug universal car 0.3.1 ne constitue pas la voie Android de production et ne possède aucun secret/signing de store. L'AAB de production sera étudié dans la future version Android SDL3 native.
Contrôle ABI
À partir du chemin <apk> affiché par Tauri :
unzip -l <apk> | grep -E 'lib/(arm64-v8a|x86_64)/libgame_snake_poc_tauri_lib\.so'
Les deux entrées doivent être présentes.
Smoke AVD x86_64
Lancer l'AVD de référence dans un terminal séparé :
emulator -avd sasedev_games_api36
Puis :
adb devices -l
adb -s emulator-5554 install -r <apk>
adb -s emulator-5554 shell am start -n com.sasedev.games.snake.tauri/.MainActivity
Vérifier : démarrage, Canvas, assets, WASM, contrôles disponibles, lifecycle background/foreground, reprise sans rattrapage et Back sans crash.
Smoke ARM64 réel
Avec le Galaxy S9+ ou un autre appareil ARM64 disponible :
adb -s <serial> shell getprop ro.product.cpu.abi
adb -s <serial> install -r <apk>
adb -s <serial> shell am start -n com.sasedev.games.snake.tauri/.MainActivity
Vérifier : provenance android / tauri-webview / wasm / phone / touch, contrôles tactiles, background/foreground, reprise sans rattrapage, rotation/resize si disponible et plusieurs Back. Aucun Vite, adb reverse ou port 1436 ne doit être nécessaire.
Le crash FORTIFY: pthread_mutex_lock called on a destroyed mutex observé une fois en dev reste un point de surveillance. Sa reproduction sur l'APK autonome RC bloque la promotion stable et impose un 3-rc.1.fix.N; son absence pendant les smokes RC permet de clore ce risque comme non reproductible dans l'état candidat.
Promotion stable
Si la gate RC est propre et qu'aucun correctif n'est nécessaire, la promotion vers 0.3.1 est mécanique : versions stables, entrée stable du CHANGELOG.md, historique RC, clôture du plan et delta de release. Aucun code fonctionnel ne doit changer.