88 lines
3.1 KiB
Markdown
88 lines
3.1 KiB
Markdown
<!-- file: history/0.3.3/0-pre.2.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Historique 0.3.3-0-pre.2
|
|
|
|
## Statut
|
|
|
|
`0.3.3-0-pre.2` a été validé par l'utilisateur le 2026-09-21. La preuve Snake ARM64 confirme que `assembleDebug` possède désormais le build Rust/SDL3 sans exécution préalable de `scripts/build_android_rust.py`.
|
|
|
|
Aucun `0-pre.2.fix.N` n'est requis ; la suite peut ouvrir `0-pre.3`.
|
|
|
|
## Gate statique et Rust
|
|
|
|
La gate fournie est propre :
|
|
|
|
```text
|
|
General Rust rule audit: clean
|
|
Rust export completeness audit: 0 candidate(s)
|
|
games.sasedev workspace audit: clean
|
|
Markdown table audit: clean (5 table(s), 235 file(s))
|
|
Distribution layout audit: clean (53 required path(s), 1 forbidden path(s) absent)
|
|
cargo fmt --all: clean
|
|
cargo fmt --all -- --check: clean
|
|
cargo check --workspace: clean
|
|
cargo clippy --workspace --all-targets --all-features -- -D warnings: clean
|
|
```
|
|
|
|
Le workspace compilé porte bien `0.3.3-0-pre.2` sur les crates concernées.
|
|
|
|
## Preuve Gradle/JDK du jalon
|
|
|
|
Le wrapper introduit pour cette preuve a été contrôlé avant build :
|
|
|
|
```text
|
|
Gradle Wrapper JAR SHA-256
|
|
497c8c2a7e5031f6aa847f88104aa80a93532ec32ee17bdb8d1d2f67a194a9c7
|
|
|
|
Gradle distribution
|
|
9.6.0
|
|
|
|
Gradle binary ZIP SHA-256
|
|
bbaeb2fef8710818cf0e261201dab964c572f92b942812df0c3620d62a529a01
|
|
```
|
|
|
|
`./gradlew --version` a téléchargé puis exécuté Gradle `9.6.0`. Pour cette gate, le launcher et le daemon utilisaient Temurin `17.0.20.1` via `JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64`.
|
|
|
|
Cette combinaison décrit la preuve `0-pre.2`; elle n'est pas conservée comme contrainte exacte du pipeline natif après la décision de toolchain prise pour `0-pre.3`.
|
|
|
|
## Build Snake ARM64
|
|
|
|
La commande :
|
|
|
|
```text
|
|
:game-snake-poc:assembleDebug
|
|
```
|
|
|
|
a déclenché `buildDebugSasedevRustArm64V8a`, compilé `game-android-entrypoint` avec `cargo ndk` pour `aarch64-linux-android`, copié les bibliothèques sous `build/generated/sasedevNative/...` et terminé avec :
|
|
|
|
```text
|
|
BUILD SUCCESSFUL
|
|
54 actionable tasks: 54 executed
|
|
```
|
|
|
|
Aucune commande Python de build natif n'a été exécutée avant Gradle.
|
|
|
|
## Inspection APK
|
|
|
|
L'artefact produit est :
|
|
|
|
```text
|
|
Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk
|
|
```
|
|
|
|
L'inspection confirme les deux bibliothèques ARM64 attendues :
|
|
|
|
```text
|
|
lib/arm64-v8a/libSDL3.so
|
|
lib/arm64-v8a/libgame_android_entrypoint.so
|
|
```
|
|
|
|
Aucune bibliothèque `x86_64`, `armeabi-v7a` ou `x86` n'est présente dans cette preuve mono-ABI. Les lignes répétées dans la sortie utilisateur provenaient des deux `grep -Fx` exécutés après le listing initial, pas de doublons internes à l'APK.
|
|
|
|
## Transmission vers 0-pre.3
|
|
|
|
Le task wiring, l'extraction SDL3, le linkage Rust, le staging `jniLibs` généré et le packaging ARM64 sont donc prouvés. `0-pre.3` peut élargir ce même contrat à `arm64-v8a + x86_64`.
|
|
|
|
Après cette validation, la politique toolchain a été révisée explicitement : le projet Android SDL3 natif doit accepter le Gradle système lorsqu'il est `>= 9.6.0` et utiliser le JDK normal de l'environnement, sans `export JAVA_HOME` spécifique au projet. Les contraintes historiques du POC Tauri restent séparées.
|