4.7 KiB
Delta 0.3.1-0-pre.2.fix.3
Base
Base déclarée : 0.3.1-0-pre.2.fix.2.
Objet
Ce fix corrige la procédure Android après constat que le répertoire local gen/android avait été partiellement modifié par la tentative Gradle 9 abandonnée de 0-pre.2.fix.1.
Aucun patch du projet Android généré n'est réintroduit. Le fix verrouille au contraire le contrat officiel Tauri 2.11.x et rend détectable tout gen/android local qui ne correspond plus à ce contrat.
Diagnostic confirmé
Le smoke 0-pre.2.fix.2 a confirmé :
- les audits Python, Cargo, Clippy et les cinq tests
game-snake-poc-wasmsont propres ; - le NDK side-by-side est détecté sans
NDK_HOMEutilisateur ; - le JBR de l'Android Studio local est Java 25, comme le Java global ;
gen/android/gradle/wrapper/gradle-wrapper.propertiesutilisait encore Gradle9.6.1, trace defix.1;buildSrcrestait partiellement au format Tauri 2.11.x et échouait donc sous Gradle 9 sur les appelsproject.exec/exec.
Le défaut n'est pas dans le host Rust/WASM : l'arbre Android généré local est incohérent et doit être régénéré.
Toolchain Android retenu pour 0.3.1
Le projet conserve le template officiel Tauri 2.11.x :
Gradle 8.14.3
Android Gradle Plugin 8.11.0
Kotlin Gradle Plugin 1.9.25
JDK de gate 17
AGP 8.11 exige JDK 17 au minimum et Gradle 8.14.x prend en charge l'exécution jusqu'à Java 24, pas Java 25. JDK 17 est donc la baseline reproductible retenue pour cette version.
Le Java 25 global et le JBR 25 d'Android Studio restent installables mais ne sont pas utilisés pour cargo tauri android init/dev/build dans 0.3.1.
Régénération obligatoire du projet Android local
Toute machine ayant exécuté 0-pre.2.fix.1 doit supprimer uniquement l'arbre généré Android Snake puis le recréer officiellement :
rm -rf crates/apps/game-snake-poc-tauri/gen/android
export JAVA_HOME=/chemin/vers/jdk-17
"$JAVA_HOME/bin/java" -version
(cd crates/apps/game-snake-poc-tauri && cargo tauri android init)
Le répertoire gen/android est ignoré et n'appartient à aucun delta. Sa suppression n'est donc pas un changement source.
Audit ajouté
audit_distribution_layout.py vérifie désormais un gen/android présent sans le considérer comme source versionnée. Pour la tranche courante, il doit contenir les marqueurs du template Tauri 2.11.x : Gradle 8.14.3, AGP 8.11.0 et Kotlin Gradle Plugin 1.9.25.
Un arbre incomplet ou divergent provoque DIST-LAYOUT-041/042 avec instruction de le supprimer puis de relancer cargo tauri android init sous JDK 17.
Fichiers modifiés
Cargo.toml;README.md;crates/apps/game-snake-poc-tauri/README.md;crates/apps/game-snake-poc-tauri/USAGE.md;docs/plans/002-V0_3_1_TAURI_ANDROID_SNAKE_PLAN.md;docs/validation/001-VALIDATION_GATES.md;scripts/audit_distribution_layout.py.
Fichier ajouté
deltas/0.3.1/0-pre.2.fix.3.md.
Gate utilisateur
Après application du delta, commencer par disposer d'un JDK 17. Vérifier les JDK déjà installés avant d'en installer un nouveau :
find /usr/lib/jvm "$HOME/.jdks" "$HOME/.sdkman/candidates/java" -maxdepth 3 -type f -path '*/bin/java' 2>/dev/null
Sélectionner ensuite le JDK 17 réel :
export JAVA_HOME=/chemin/vers/jdk-17
"$JAVA_HOME/bin/java" -version
Nettoyer l'arbre Android pollué par fix.1, puis le régénérer avec Tauri :
rm -rf crates/apps/game-snake-poc-tauri/gen/android
(cd crates/apps/game-snake-poc-tauri && cargo tauri android init)
Rejouer ensuite la gate statique/build :
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 fmt --all
cargo fmt --all -- --check
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p game-snake-poc-wasm --all-targets --all-features
Puis le smoke Android :
(cd crates/apps/game-snake-poc-tauri && cargo tauri android dev)
Ne pas exécuter npm run dev directement et ne modifier aucun fichier sous gen/android à la main.
Critère d'acceptation
Le fix est accepté lorsque :
- les audits et gates Rust restent propres ;
audit_distribution_layout.pyaccepte legen/androidfraîchement généré ;gen/android/gradle/wrapper/gradle-wrapper.propertiesréférence Gradle8.14.3;- la commande Android utilise JDK 17 ;
cargo tauri android devassemble, installe et lance le host minimal sans erreur Gradle/Kotlin bloquante.