5.7 KiB
Delta 0.3.1-0-pre.2.fix.2
Base
Base déclarée : 0.3.1-0-pre.2.fix.1.
Objet
Ce fix retire la migration Gradle 9 locale introduite par fix.1, revient au chemin Android officiellement généré par Tauri 2 stable et corrige l'audit workspace pour qu'il n'analyse pas le contenu généré sous gen/ comme du code source du dépôt.
Il corrige également une violation documentaire de fix.1 : history/0.3.1/0-pre.2.md avait été créé alors que 0-pre.2 n'était pas accepté. Aucune entrée history/ n'est conservée pour ce jalon tant que sa gate n'est pas verte.
Cause confirmée
Le smoke 0-pre.2 a établi trois faits distincts :
- Tauri sélectionne correctement le NDK side-by-side sous
$ANDROID_HOME/ndk/<version>; l'absence deNDK_HOMEutilisateur n'est pas la cause du défaut ; - le wrapper Android généré par Tauri CLI
2.11.3utilise Gradle8.14.3, qui ne peut pas s'exécuter avec Java 25 ; cargo tauri android initcrée légitimementgen/android/app/src/main/assets, mais l'auditGAME-ASSET-001parcourait jusque-là les répertoires générés.
La dernière CLI Tauri 2 stable vérifiée pendant ce fix est 2.11.5. Son template Android conserve Gradle 8.14.3 et AGP 8.11.0. La migration Gradle 9 existe upstream mais n'est pas encore publiée dans la branche stable Tauri 2 ; la reproduire par patch local ferait du projet games.sasedev le mainteneur d'un fork implicite du template Tauri.
Correction Tauri Android
Le host Snake ne modifie plus gen/android :
- suppression de
scripts/prepare-android-gradle.mjs; - suppression du hook
android:preparedanspackage.json; - restauration des hooks Tauri vers le seul pipeline WASM/Vite ;
build.rsdélègue uniquement àtauri_build::build();- l'audit de distribution interdit désormais la réintroduction d'un patch
gen/androiddans ces deux surfaces.
Pour Tauri 2 stable, le contrat local devient celui recommandé par Tauri : JAVA_HOME doit pointer vers un JDK compatible avec le wrapper généré, de préférence le JBR livré avec Android Studio. Le Java 25 global peut rester installé ; il ne doit simplement pas être le JDK utilisé par les commandes Android Tauri tant que le wrapper stable ne le supporte pas.
Le Gradle global installé sous /opt/gradle n'est pas utilisé par gen/android/gradlew et n'entre pas dans le contrat de build.
Correction de l'audit workspace
gen/ est déjà un chemin généré et ignoré par .gitignore. audit_project_workspace_rules.py exclut désormais ces arbres pour les contrôles qui portent sur la propriété du code source :
GAME-ASSET-001n'interdit plus lesassetscréés par le projet Android Tauri généré ;GAME-ANDROID-001n'interdit plus les éventuelles sources Java générées sousgen/.
Les assets et sources Java réellement versionnés hors des emplacements autorisés restent interdits.
Historique
history/0.3.1/0-pre.2.md est supprimé. DOC-HIST-002 et DOC-HIST-003 imposent qu'une entrée d'historique ne soit créée qu'après acceptation effective du jalon. Le prochain delta ne recréera cette entrée que si la gate 0-pre.2.fix.2 est validée.
Suppressions
Le manifest deltas/0.3.1/0-pre.2.fix.2.delete.txt supprime :
crates/apps/game-snake-poc-tauri/scripts/prepare-android-gradle.mjs;history/0.3.1/0-pre.2.md.
Après extraction du delta à la racine du dépôt, appliquer les suppressions avec :
while IFS= read -r path; do
rm -f -- "$path"
done < deltas/0.3.1/0-pre.2.fix.2.delete.txt
Fichiers modifiés
Cargo.toml;README.md;crates/apps/game-snake-poc-tauri/build.rs;crates/apps/game-snake-poc-tauri/package.json;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;scripts/audit_project_workspace_rules.py;scripts/audit_distribution_layout.py.
Fichiers ajoutés
deltas/0.3.1/0-pre.2.fix.2.md;deltas/0.3.1/0-pre.2.fix.2.delete.txt.
Validation statique du générateur
Le générateur peut exécuter les audits statiques et vérifier explicitement que les chemins générés Tauri ne déclenchent plus GAME-ASSET-001 / GAME-ANDROID-001. Ces contrôles ne remplacent pas les gates build/runtime utilisateur.
Gate utilisateur
Après application du delta et de son manifest de suppression :
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
Avant le smoke Android, sélectionner le JBR d'Android Studio dans le shell. Exemple si Android Studio est sous /opt/android-studio :
export JAVA_HOME=/opt/android-studio/jbr
"$JAVA_HOME/bin/java" -version
(cd crates/apps/game-snake-poc-tauri && cargo tauri android dev)
Si Android Studio se trouve ailleurs, remplacer /opt/android-studio/jbr par son chemin réel. Ne pas exécuter npm run dev directement et ne pas rejouer cargo tauri android init pour ce fix lorsque gen/android existe déjà.
Critère d'acceptation
Le fix est accepté lorsque :
- les trois audits Python sont propres malgré la présence du
gen/androidlocal ; - Cargo/Clippy/tests ciblés sont propres ;
cargo tauri android devn'échoue plus surUnsupported class file major version 69;- le host minimal atteint le smoke Android prévu par
0-pre.2.