# 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`.