0.1.0-0-pre.6-fix.1

This commit is contained in:
2026-09-16 09:07:13 +02:00
parent 21e45d333d
commit fa4e2925bd
6 changed files with 83 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: Android/README.md -->
<!-- version: 2 -->
<!-- version: 3 -->
# Android
@@ -14,9 +14,9 @@ Android/
└── game-snake-poc/
```
`common` est une Android Library Java qui fournit la frontière commune et dépend de l'AAR officiel SDL3.
`common` est une Android Library Java qui fournit la frontière commune. Elle compile contre l'AAR SDL3 avec une dépendance `compileOnly` afin que son propre AAR reste valide.
Chaque module `game-*` est une application Android indépendante et dépend du module `common`.
Chaque module `game-*` est une application Android indépendante ; il dépend du module `common` et package directement l'AAR SDL3 dans son APK via `implementation`.
## Toolchain de référence

View File

@@ -1,5 +1,5 @@
// file: Android/common/build.gradle
// version: 2
// version: 3
plugins {
id 'com.android.library'
@@ -22,5 +22,5 @@ android {
}
dependencies {
api files("../libs/${sdl3AarName}")
compileOnly files("../libs/${sdl3AarName}")
}

View File

@@ -1,10 +1,12 @@
// file: Android/game-reflex-poc/build.gradle
// version: 2
// version: 3
plugins {
id 'com.android.application'
}
def sdl3AarName = providers.gradleProperty("sdl3AarName").get()
android {
namespace 'com.sasedev.games.reflex'
compileSdk 36
@@ -24,5 +26,6 @@ android {
}
dependencies {
implementation files("../libs/${sdl3AarName}")
implementation project(':common')
}

View File

@@ -1,10 +1,12 @@
// file: Android/game-snake-poc/build.gradle
// version: 2
// version: 3
plugins {
id 'com.android.application'
}
def sdl3AarName = providers.gradleProperty("sdl3AarName").get()
android {
namespace 'com.sasedev.games.snake'
compileSdk 36
@@ -24,5 +26,6 @@ android {
}
dependencies {
implementation files("../libs/${sdl3AarName}")
implementation project(':common')
}

View File

@@ -1,5 +1,5 @@
# file: Cargo.toml
# version: 12
# version: 13
[workspace]
resolver = "3"
@@ -15,7 +15,7 @@ members = [
]
[workspace.package]
version = "0.1.0-0-pre.6"
version = "0.1.0-0-pre.6.fix.1"
edition = "2024"
license = "MIT"
repository = "https://git.sasedev.com/Sasedev/games"

View File

@@ -0,0 +1,68 @@
<!-- file: deltas/0.1.0/0-pre.6.fix.1.md -->
<!-- version: 1 -->
# Delta 0.1.0-0-pre.6.fix.1
## Base
Base déclarée : `0.1.0-0-pre.6`, non validée intégralement.
## Validation du delta précédent
Les validations Rust et Desktop de `0.1.0-0-pre.6` sont propres : formatage, audits, `cargo check`, Clippy strict, test ciblé `engine-v1-sdl` et les deux smokes Desktop.
Après configuration de `ANDROID_HOME`, les deux modules applications Android ont produit `BUILD SUCCESSFUL`. Le module `:common` a toutefois échoué sur `:common:bundleDebugAar` avec :
```text
Direct local .aar file dependencies are not supported when building an AAR.
```
`0.1.0-0-pre.6` n'est donc pas considéré entièrement validé.
## Correctif
La dépendance SDL3 Android est répartie ainsi :
```text
:common
compileOnly SDL3 AAR
:game-reflex-poc
implementation :common
implementation SDL3 AAR
:game-snake-poc
implementation :common
implementation SDL3 AAR
```
`common` compile `SaseGameActivity extends SDLActivity` sans tenter de ré-embarquer l'AAR SDL3 dans son propre AAR. Chaque application package directement SDL3 dans son APK.
## Validation à exécuter par l'utilisateur
Aucun fichier Rust n'est modifié par ce fix :
```bash
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
```
Puis :
```bash
cd Android
gradle :common:assembleDebug
gradle :game-reflex-poc:assembleDebug
gradle :game-snake-poc:assembleDebug
cd ..
```
Les trois commandes Gradle doivent terminer par `BUILD SUCCESSFUL`. Clippy, tests SDL3 et smokes Desktop ne sont pas à rejouer : ils sont propres sur `0-pre.6` et ce fix ne modifie aucun fichier Rust ni comportement Desktop.
## Règle de transition
Si ces validations sont propres, `0.1.0-0-pre.6.fix.1` est validé et le travail passe automatiquement à `0.1.0-0-pre.7`.
En cas d'échec imputable au projet, produire `0.1.0-0-pre.6.fix.2`.