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

153 lines
3.5 KiB
Markdown

<!-- file: deltas/0.1.0/0-pre.5.fix.2.md -->
<!-- version: 1 -->
# 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`.