# Delta 0.1.0-0-pre.5.fix.2 ## Base Base déclarée : `0.1.0-0-pre.5.fix.1`, non validée. ## Validation du delta précédent L'utilisateur a exécuté les validations de `0.1.0-0-pre.5.fix.1` le 2026-09-16. Les audits Rust/workspace étaient propres avant la phase de compilation SDL3. La compilation a ensuite échoué dans le build script de `sdl3-sys v0.5.12+SDL3-3.2.30`. Erreur déterminante : ```text CMake Error at CMakeLists.txt:4363 (add_subdirectory): add_subdirectory given source "test" which is not an existing directory. ``` Le build vendored utilisait : ```text sdl3-src-3.4.16/SDL ``` avec `SDL_TESTS` activé par défaut alors que le package source utilisé par le build ne fournissait pas le répertoire `test`. Les commandes `cargo check`, Clippy, tests ciblés et runners n'ont donc pas pu atteindre la compilation du code projet SDL3. Une commande de test a également été collée accidentellement sous la forme : ```text --all-featurescargo ``` Cet incident de saisie est indépendant du défaut principal : plusieurs autres commandes distinctes ont reproduit le même échec CMake SDL3. `0.1.0-0-pre.5.fix.1` n'est donc pas validé. ## Correctif La stratégie Desktop Linux passe de : ```toml features = ["build-from-source"] ``` à : ```toml features = ["use-pkg-config"] ``` Le workspace utilise ainsi une SDL3 système pour le développement Desktop. Aucun fichier Rust n'est modifié par ce fix. ## Prérequis Desktop Linux Sur Debian 13/Trixie : ```bash sudo apt update sudo apt install pkg-config libsdl3-dev ``` Préflight : ```bash pkg-config --modversion sdl3 pkg-config --cflags --libs sdl3 ``` Le package Debian `libsdl3-dev` fournit le fichier `sdl3.pc` utilisé par `pkg-config`. ## Documentation Ajout de : ```text docs/development/004-SDL3_DESKTOP_PREREQUISITES.md ``` Ce document sépare explicitement : - dépendance SDL3 système pour le développement Desktop Linux ; - intégration Android future via NDK/AAR ; - intégration Web future via Emscripten/WASM. ## Validation à exécuter par l'utilisateur Aucun fichier Rust n'est modifié ; `cargo fmt --all` mutatif n'est pas requis. ### Préflight SDL3 ```bash pkg-config --modversion sdl3 pkg-config --cflags --libs sdl3 ``` Si `pkg-config` ne trouve pas SDL3 : ```bash sudo apt update sudo apt install pkg-config libsdl3-dev ``` Puis exécuter : ```bash 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 ``` Tests ciblés : ```bash 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 ``` Smokes Desktop : ```bash cargo run -p game-reflex-poc-desktop cargo run -p game-snake-poc-desktop ``` Pour chaque runner : - une fenêtre SDL3 doit s'ouvrir ; - `Escape` doit fermer proprement la fenêtre ; - la fermeture système doit fonctionner ; - `Space` doit être traité comme `GameAction::Primary` ; - aucun panic ne doit apparaître. ## Règle de transition Si toutes les validations sont propres, `0.1.0-0-pre.5.fix.2` 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.3`.