0.1.0-0-pre.5-fix.2
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
# file: Cargo.toml
|
# file: Cargo.toml
|
||||||
# version: 9
|
# version: 10
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
resolver = "3"
|
resolver = "3"
|
||||||
@@ -15,7 +15,7 @@ members = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.1.0-0-pre.5.fix.1"
|
version = "0.1.0-0-pre.5.fix.2"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://git.sasedev.com/Sasedev/games"
|
repository = "https://git.sasedev.com/Sasedev/games"
|
||||||
@@ -23,7 +23,7 @@ authors = ["Sasedev <games@sasedev.com>"]
|
|||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
sdl3 = { version = "0.16.1", features = ["build-from-source"] }
|
sdl3 = { version = "0.16.1", features = ["use-pkg-config"] }
|
||||||
tracing = "0.1.44"
|
tracing = "0.1.44"
|
||||||
tracing-appender = "0.2.5"
|
tracing-appender = "0.2.5"
|
||||||
tracing-subscriber = { version = "0.3.23", features = ["fmt"] }
|
tracing-subscriber = { version = "0.3.23", features = ["fmt"] }
|
||||||
|
|||||||
152
deltas/0.1.0/0-pre.5.fix.2.md
Normal file
152
deltas/0.1.0/0-pre.5.fix.2.md
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
<!-- 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`.
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/000-README.md -->
|
<!-- file: docs/000-README.md -->
|
||||||
<!-- version: 6 -->
|
<!-- version: 7 -->
|
||||||
|
|
||||||
# Documentation games.sasedev
|
# Documentation games.sasedev
|
||||||
|
|
||||||
@@ -48,6 +48,7 @@ Voir [`../RULES.md`](../RULES.md), notamment [`rules/RULES_COMMANDS.md`](rules/R
|
|||||||
|
|
||||||
- [`testing/001-TEST_ARCHITECTURE.md`](testing/001-TEST_ARCHITECTURE.md) — séparation `unit_tests/` / `tests/`, tests ciblés et tracing de test.
|
- [`testing/001-TEST_ARCHITECTURE.md`](testing/001-TEST_ARCHITECTURE.md) — séparation `unit_tests/` / `tests/`, tests ciblés et tracing de test.
|
||||||
- [`development/003-TRACING_AND_DIAGNOSTICS.md`](development/003-TRACING_AND_DIAGNOSTICS.md) — socle `tracing`, subscriber et appender communs.
|
- [`development/003-TRACING_AND_DIAGNOSTICS.md`](development/003-TRACING_AND_DIAGNOSTICS.md) — socle `tracing`, subscriber et appender communs.
|
||||||
|
- [`development/004-SDL3_DESKTOP_PREREQUISITES.md`](development/004-SDL3_DESKTOP_PREREQUISITES.md) — prérequis SDL3 Desktop, stratégie de liaison système et vérification `pkg-config`.
|
||||||
|
|
||||||
## Historique validé
|
## Historique validé
|
||||||
|
|
||||||
|
|||||||
70
docs/development/004-SDL3_DESKTOP_PREREQUISITES.md
Normal file
70
docs/development/004-SDL3_DESKTOP_PREREQUISITES.md
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
<!-- file: docs/development/004-SDL3_DESKTOP_PREREQUISITES.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Prérequis SDL3 Desktop
|
||||||
|
|
||||||
|
## Portée
|
||||||
|
|
||||||
|
Cette politique concerne le développement et les runners Desktop natifs basés sur SDL3.
|
||||||
|
|
||||||
|
Elle ne définit pas le packaging Android ni Web :
|
||||||
|
|
||||||
|
- Android utilisera son intégration SDL3/NDK/AAR dédiée ;
|
||||||
|
- Web utilisera la cible Emscripten/WASM dédiée ;
|
||||||
|
- la présence de SDL3 système sur le poste Desktop n'implique aucune dépendance runtime identique sur Android ou Web.
|
||||||
|
|
||||||
|
## Stratégie Desktop Linux
|
||||||
|
|
||||||
|
Le workspace utilise la crate Rust `sdl3` avec la feature `use-pkg-config`.
|
||||||
|
|
||||||
|
Le build Desktop recherche donc une installation SDL3 système à travers `pkg-config`.
|
||||||
|
|
||||||
|
Cette stratégie est préférée au build vendored `build-from-source` pour la baseline actuelle, car la combinaison `sdl3 0.16.x` / `sdl3-sys 0.5.12` / `sdl3-src 3.4.16` peut échouer lorsque la source empaquetée active les tests CMake sans fournir le répertoire `test`.
|
||||||
|
|
||||||
|
## Debian 13 / Trixie
|
||||||
|
|
||||||
|
Installer les dépendances de développement :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install pkg-config libsdl3-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Vérifier ensuite :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pkg-config --modversion sdl3
|
||||||
|
pkg-config --cflags --libs sdl3
|
||||||
|
```
|
||||||
|
|
||||||
|
Sur Debian 13/Trixie, `libsdl3-dev` fournit notamment :
|
||||||
|
|
||||||
|
```text
|
||||||
|
/usr/include/SDL3/
|
||||||
|
/usr/lib/<arch>/libSDL3.so
|
||||||
|
/usr/lib/<arch>/pkgconfig/sdl3.pc
|
||||||
|
```
|
||||||
|
|
||||||
|
## Règle de validation
|
||||||
|
|
||||||
|
Avant les premières gates Cargo SDL3 sur une nouvelle machine Desktop Linux, exécuter :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pkg-config --modversion sdl3
|
||||||
|
```
|
||||||
|
|
||||||
|
Si cette commande échoue, installer/configurer SDL3 avant de considérer un échec Cargo comme un défaut du code du projet.
|
||||||
|
|
||||||
|
## Portabilité future
|
||||||
|
|
||||||
|
La dépendance système Desktop est une décision de développement, pas une contrainte universelle de distribution.
|
||||||
|
|
||||||
|
Les options futures restent ouvertes :
|
||||||
|
|
||||||
|
- bundle de SDL3 avec un package Desktop ;
|
||||||
|
- AppImage/Flatpak ;
|
||||||
|
- package natif par distribution ;
|
||||||
|
- build statique si une justification apparaît ;
|
||||||
|
- distribution Tauri distincte si un shell Desktop riche est nécessaire.
|
||||||
|
|
||||||
|
Toute évolution de stratégie doit être documentée explicitement avant modification des manifests.
|
||||||
Reference in New Issue
Block a user