131 lines
3.1 KiB
Markdown
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`.
|