Files
games/deltas/0.1.0/0-pre.5.fix.3.md

131 lines
3.1 KiB
Markdown

<!-- file: deltas/0.1.0/0-pre.5.fix.3.md -->
<!-- version: 1 -->
# Delta 0.1.0-0-pre.5.fix.3
## Base
Base déclarée : `0.1.0-0-pre.5.fix.2`, non validée intégralement.
## Validation du delta précédent
L'utilisateur a exécuté les validations de `0.1.0-0-pre.5.fix.2` le 2026-09-16.
Préflight SDL3 propre :
```text
pkg-config --modversion sdl3
3.2.10
```
et :
```text
pkg-config --cflags --libs sdl3
-I/usr/include/pipewire-0.3 -I/usr/include/spa-0.2 -D_REENTRANT -I/usr/include/libdrm -I/usr/include/libdecor-0 -lSDL3
```
Résultats propres :
- `cargo fmt --all -- --check` ;
- audit Rust/workspace ;
- audit Markdown : `1 table(s), 42 file(s)` ;
- `cargo check --workspace` ;
- `cargo test -p engine-v1-sdl --all-targets --all-features` ;
- `cargo test -p game-reflex-poc --all-targets --all-features` ;
- `cargo test -p game-snake-poc --all-targets --all-features` ;
- smoke `game-reflex-poc-desktop` ;
- smoke `game-snake-poc-desktop`.
Les deux runners ont ouvert et fermé leur runtime SDL3 sans panic.
La gate Clippy a échoué sur une seule erreur projet :
```text
clippy::duplicate_mod
```
Le même fichier `unit_tests/runtime.rs` était chargé à la fois depuis `src/runtime.rs` et `src/unit_tests.rs`.
`0.1.0-0-pre.5.fix.2` n'est donc pas validé.
## Correctifs
### Tests SDL3
Le chargement direct du test depuis `src/runtime.rs` est supprimé.
Le seul point d'entrée reste :
```text
src/unit_tests.rs
-> ../unit_tests/runtime.rs
```
Le test n'est donc chargé qu'une fois.
### Version SDL3
La dépendance commune passe à :
```toml
sdl3 = "^0.20"
```
La série `0.20` est utilisée plutôt que de rester sur `0.16.x`.
### Features Cargo
La racine conserve uniquement les versions des dépendances partagées :
```toml
sdl3 = "^0.20"
tracing-subscriber = "0.3.23"
```
Les features sont déplacées vers les crates qui les utilisent :
```toml
# engine-v1-sdl
sdl3 = { workspace = true, features = ["use-pkg-config"] }
# game-logging-lib
tracing-subscriber = { workspace = true, features = ["fmt"] }
```
Cette règle devient normative dans `docs/rules/RULES_RUST.md`.
## Validation à exécuter par l'utilisateur
Le fix 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é principal :
```bash
cargo test -p engine-v1-sdl --all-targets --all-features
```
La montée de `sdl3` à `^0.20` touche le runtime Desktop ; rejouer également les deux smokes :
```bash
cargo run -p game-reflex-poc-desktop
cargo run -p game-snake-poc-desktop
```
Les tests des crates de gameplay ne sont pas requis à nouveau : leur code et leurs dépendances propres ne sont pas modifiés par ce fix.
## Règle de transition
Si toutes les validations sont propres, `0.1.0-0-pre.5.fix.3` est accepté et le travail passe automatiquement à `0.1.0-0-pre.6`.
Si une gate échoue, rester sur `0-pre.5` et produire `0.1.0-0-pre.5.fix.4`.