0.1.0-0-pre.9
This commit is contained in:
147
deltas/0.1.0/0-pre.9.md
Normal file
147
deltas/0.1.0/0-pre.9.md
Normal file
@@ -0,0 +1,147 @@
|
||||
<!-- file: deltas/0.1.0/0-pre.9.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.1.0-0-pre.9
|
||||
|
||||
## Base
|
||||
|
||||
Base validée : `0.1.0-0-pre.8`.
|
||||
|
||||
## Objectif
|
||||
|
||||
Stabiliser la source, les namespaces, la résolution et le packaging multi-plateforme des assets avant le premier gameplay visuel complet.
|
||||
|
||||
## Source unique
|
||||
|
||||
Les ressources versionnées restent exclusivement sous :
|
||||
|
||||
```text
|
||||
assets/common/
|
||||
assets/game-reflex-poc/
|
||||
assets/game-snake-poc/
|
||||
```
|
||||
|
||||
Aucune crate Rust et aucun module Android ne reçoit de copie source durable.
|
||||
|
||||
## game-assets-lib
|
||||
|
||||
Nouveau crate transverse :
|
||||
|
||||
```text
|
||||
crates/common/game-assets-lib
|
||||
```
|
||||
|
||||
Il fournit `AssetResolver` et `AssetError`.
|
||||
|
||||
Namespaces canoniques :
|
||||
|
||||
```text
|
||||
common://...
|
||||
game://...
|
||||
```
|
||||
|
||||
Le resolver rejette les chemins vides, absolus, traversants et les schemes inconnus.
|
||||
|
||||
## Ressources de validation
|
||||
|
||||
Premiers assets réels :
|
||||
|
||||
```text
|
||||
assets/common/data/runtime.json
|
||||
assets/game-reflex-poc/data/game.json
|
||||
assets/game-snake-poc/data/game.json
|
||||
```
|
||||
|
||||
Ils servent de contrats de packaging, pas de contenu graphique définitif.
|
||||
|
||||
## Desktop
|
||||
|
||||
```bash
|
||||
python3 scripts/stage_game_assets.py reflex
|
||||
python3 scripts/stage_game_assets.py snake
|
||||
```
|
||||
|
||||
Le layout généré est :
|
||||
|
||||
```text
|
||||
common/
|
||||
game/
|
||||
```
|
||||
|
||||
sous `../builds/sasedev-games/assets/<game>/` par défaut.
|
||||
|
||||
## Android
|
||||
|
||||
Chaque application utilise la tâche Gradle commune `stageSasedevAssets`.
|
||||
|
||||
Le package final doit contenir :
|
||||
|
||||
```text
|
||||
assets/common/data/runtime.json
|
||||
assets/game/data/game.json
|
||||
```
|
||||
|
||||
sans inclure les assets de l'autre jeu.
|
||||
|
||||
## Validation 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
|
||||
|
||||
cargo test -p game-assets-lib --all-targets --all-features
|
||||
```
|
||||
|
||||
## Validation staging Desktop
|
||||
|
||||
```bash
|
||||
python3 scripts/stage_game_assets.py reflex
|
||||
python3 scripts/stage_game_assets.py snake
|
||||
|
||||
test -f ../builds/sasedev-games/assets/game-reflex-poc/common/data/runtime.json
|
||||
test -f ../builds/sasedev-games/assets/game-reflex-poc/game/data/game.json
|
||||
test -f ../builds/sasedev-games/assets/game-snake-poc/common/data/runtime.json
|
||||
test -f ../builds/sasedev-games/assets/game-snake-poc/game/data/game.json
|
||||
```
|
||||
|
||||
## Validation Android
|
||||
|
||||
Les bibliothèques natives de `0-pre.8` peuvent être réutilisées car ce delta ne modifie pas le code natif Android.
|
||||
|
||||
```bash
|
||||
cd Android
|
||||
|
||||
gradle :game-reflex-poc:assembleDebug
|
||||
gradle :game-snake-poc:assembleDebug
|
||||
|
||||
cd ..
|
||||
```
|
||||
|
||||
Vérifier le contenu :
|
||||
|
||||
```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'
|
||||
```
|
||||
|
||||
Vérifier aussi qu'aucun package n'embarque le namespace source 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'
|
||||
```
|
||||
|
||||
## Règle de transition
|
||||
|
||||
Si ces gates sont propres, passer automatiquement à `0.1.0-0-pre.10` pour rendre le POC Reflex réellement jouable Desktop + Android.
|
||||
|
||||
En cas d'échec imputable au projet, produire `0.1.0-0-pre.9.fix.1`.
|
||||
Reference in New Issue
Block a user