153 lines
3.5 KiB
Markdown
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`.
|