117 lines
2.9 KiB
Markdown
117 lines
2.9 KiB
Markdown
<!-- file: deltas/0.1.0/0-pre.9.fix.1.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta 0.1.0-0-pre.9.fix.1
|
|
|
|
## Base
|
|
|
|
Base déclarée : `0.1.0-0-pre.9`, non validée.
|
|
|
|
## Échecs observés
|
|
|
|
La validation de `0-pre.9` a mis en évidence deux défauts du delta.
|
|
|
|
### Tests `game-assets-lib`
|
|
|
|
`game_logging_lib::with_test_tracing` attend deux arguments :
|
|
|
|
```text
|
|
test_name: &str
|
|
operation: FnOnce()
|
|
```
|
|
|
|
Les deux tests du resolver ne passaient que la closure.
|
|
|
|
### Android Gradle
|
|
|
|
AGP 9.4 refuse l'ajout d'un `Provider<Directory>` via l'ancienne API :
|
|
|
|
```text
|
|
android.sourceSets.main.assets.srcDir(...)
|
|
```
|
|
|
|
pour un répertoire généré.
|
|
|
|
Le message AGP demande explicitement l'utilisation de la Variant API et de `SourceDirectories.addGeneratedSourceDirectory`.
|
|
|
|
## Correctif
|
|
|
|
### Tests
|
|
|
|
Chaque test passe désormais son nom explicite à `with_test_tracing`.
|
|
|
|
### Gradle
|
|
|
|
Le staging Android utilise maintenant une tâche Gradle dédiée avec :
|
|
|
|
```text
|
|
@InputDirectory commonAssetsDirectory
|
|
@InputDirectory gameAssetsDirectory
|
|
@OutputDirectory outputDirectory
|
|
```
|
|
|
|
Pour chaque variante, `androidComponents.onVariants` enregistre :
|
|
|
|
```text
|
|
stage<Variant>SasedevAssets
|
|
```
|
|
|
|
puis relie sa sortie à :
|
|
|
|
```text
|
|
variant.sources.assets.addGeneratedSourceDirectory(...)
|
|
```
|
|
|
|
Aucun fallback `android.sourceset.disallowProvider=false` n'est ajouté.
|
|
|
|
## Validation à exécuter
|
|
|
|
```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
|
|
|
|
cargo test -p game-assets-lib --all-targets --all-features
|
|
```
|
|
|
|
Le staging Desktop de `0-pre.9` était déjà propre et n'a pas changé.
|
|
|
|
Validation Android :
|
|
|
|
```bash
|
|
cd Android
|
|
|
|
gradle :game-reflex-poc:assembleDebug
|
|
gradle :game-snake-poc:assembleDebug
|
|
|
|
cd ..
|
|
```
|
|
|
|
Puis vérifier :
|
|
|
|
```bash
|
|
unzip -l Android/game-reflex-poc/build/outputs/apk/debug/game-reflex-poc-debug.apk | grep 'assets/common/data/runtime.json'
|
|
unzip -l Android/game-reflex-poc/build/outputs/apk/debug/game-reflex-poc-debug.apk | grep 'assets/game/data/game.json'
|
|
|
|
unzip -l Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk | grep 'assets/common/data/runtime.json'
|
|
unzip -l Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk | grep 'assets/game/data/game.json'
|
|
```
|
|
|
|
Et vérifier l'absence d'assets de l'autre jeu :
|
|
|
|
```bash
|
|
! unzip -l Android/game-reflex-poc/build/outputs/apk/debug/game-reflex-poc-debug.apk | grep -q 'game-snake-poc'
|
|
! unzip -l Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk | grep -q 'game-reflex-poc'
|
|
```
|
|
|
|
## Transition
|
|
|
|
Si ces gates sont propres, `0.1.0-0-pre.9.fix.1` est validé et le travail passe automatiquement à `0.1.0-0-pre.10`.
|
|
|
|
En cas d'échec imputable au projet, produire `0.1.0-0-pre.9.fix.2`.
|