0.1.0-0-pre.6

This commit is contained in:
2026-09-16 08:49:45 +02:00
parent 380a24681d
commit 21e45d333d
22 changed files with 452 additions and 34 deletions

140
deltas/0.1.0/0-pre.6.md Normal file
View File

@@ -0,0 +1,140 @@
<!-- file: deltas/0.1.0/0-pre.6.md -->
<!-- version: 1 -->
# Delta 0.1.0-0-pre.6
## Base
Base validée : `0.1.0-0-pre.5.fix.3`.
## Validation du delta précédent
`0.1.0-0-pre.5.fix.3` a été validée par l'utilisateur le 2026-09-16.
Les résultats fournis étaient propres pour :
- formatage Rust ;
- audits Rust/workspace ;
- audit Markdown : `1 table(s), 43 file(s)` ;
- `cargo check --workspace` ;
- Clippy global strict ;
- test ciblé `engine-v1-sdl` ;
- runners SDL3 Reflex et Snake.
Les runners ont utilisé `sdl3 0.20.0` / `sdl3-sys 0.7.1` et se sont fermés proprement.
## Objectifs
- préparer le projet Gradle Android réel sans introduire prématurément le `cdylib` Rust ;
- utiliser l'AAR officiel SDL3 comme frontière Android commune ;
- conserver Java comme langage Android du projet ;
- réduire la taille initiale des fenêtres Desktop et autoriser leur redimensionnement.
## Desktop
Les runners portrait utilisent désormais une fenêtre initiale :
```text
405 × 720
```
La fenêtre SDL3 est redimensionnable.
Cette dimension est une taille physique de développement, pas une résolution logique de gameplay.
## Android
Le projet Android introduit :
- AGP `9.4.0` ;
- `compileSdk 36` ;
- `targetSdk 36` ;
- `minSdk 21` ;
- Java 17 ;
- SDL3 AAR `3.4.16` ;
- module `common` Android Library ;
- modules applications `game-reflex-poc` et `game-snake-poc` ;
- manifests de lancement portrait ;
- `SaseGameActivity` dérivée de `org.libsdl.app.SDLActivity`.
L'AAR SDL3 reste externe et n'est pas commité dans le dépôt.
## Découpage volontaire de la roadmap
Le précédent objectif `0-pre.6` regroupait trop de frontières à la fois : Gradle, AAR SDL3, NDK, Rust `cdylib` et lancement.
Il est scindé en :
- `0-pre.6` : projet Gradle + AAR + Java SDLActivity ;
- `0-pre.7` : Rust Android `cdylib` + point d'entrée SDL + premier APK lancé ;
- `0-pre.8` : Java/JNI services + input tactile.
## Validation Rust à exécuter par l'utilisateur
Le delta modifie du Rust :
```bash
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 deltas history
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
```
Test ciblé SDL3 :
```bash
cargo test -p engine-v1-sdl --all-targets --all-features
```
Smokes Desktop :
```bash
cargo run -p game-reflex-poc-desktop
cargo run -p game-snake-poc-desktop
```
Vérifier notamment que :
- la fenêtre initiale est sensiblement plus petite que précédemment ;
- elle est redimensionnable ;
- `Escape` et la fermeture système restent fonctionnels.
## Préflight Android
Vérifier Java :
```bash
java -version
```
Une JVM 17 doit être disponible pour AGP 9.4.
Placer l'AAR officiel SDL3 :
```text
Android/libs/SDL3-3.4.16.aar
```
Le build Gradle est alors validable avec Gradle `9.6.0` ou via Android Studio compatible AGP 9.4.
Si une installation Gradle 9.6.0 est disponible :
```bash
cd Android
gradle :common:assembleDebug
gradle :game-reflex-poc:assembleDebug
gradle :game-snake-poc:assembleDebug
cd ..
```
Le lancement des APK n'est pas une gate de ce delta : le `cdylib` Rust et le point d'entrée SDL Android seront ajoutés en `0-pre.7`.
## Règle de transition
Si les gates Rust sont propres et que la synchronisation/build Android Java+SDL3 AAR est propre sur la machine équipée, passer automatiquement à `0.1.0-0-pre.7`.
En cas d'échec provoqué par les fichiers de ce delta, produire `0.1.0-0-pre.6.fix.1`.