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

3.5 KiB

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 :

CMake Error at CMakeLists.txt:4363 (add_subdirectory):
  add_subdirectory given source "test" which is not an existing directory.

Le build vendored utilisait :

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 :

--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 :

features = ["build-from-source"]

à :

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 :

sudo apt update
sudo apt install pkg-config libsdl3-dev

Préflight :

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 :

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

pkg-config --modversion sdl3
pkg-config --cflags --libs sdl3

Si pkg-config ne trouve pas SDL3 :

sudo apt update
sudo apt install pkg-config libsdl3-dev

Puis exécuter :

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 :

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 :

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.