0.3.4-rc.1

This commit is contained in:
2026-09-21 19:53:50 +02:00
parent 881d5afacd
commit f270ed8f86
11 changed files with 885 additions and 18 deletions

100
history/0.3.4/beta.1.md Normal file
View File

@@ -0,0 +1,100 @@
<!-- file: history/0.3.4/beta.1.md -->
<!-- version: 1 -->
# Historique 0.3.4-beta.1
## Statut
`0.3.4-beta.1` a été validée par l'utilisateur le 2026-09-21. La gate large est entièrement propre : audits statiques, formatage, check, Clippy strict, test workspace complet, smoke runtime WebSocket et graphes de dépendances.
Aucun `beta.1.fix.N` n'est requis. Le comportement peut être gelé en `0.3.4-rc.1` sans créer de beta supplémentaire artificielle.
## Gates statiques et compilation
La sortie utilisateur confirme :
```text
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
games.sasedev workspace audit: clean
Markdown table audit: clean (5 table(s), 271 file(s))
Distribution layout audit: clean (50 required path(s), 8 forbidden path(s) absent)
cargo fmt --all: clean
cargo fmt --all -- --check: clean
cargo check --workspace: clean
cargo clippy --workspace --all-targets --all-features -- -D warnings: clean
```
Le workspace compile intégralement sous `0.3.4-beta.1`, y compris les deux crates realtime et `game-realtime-websocket-smoke`.
## Test workspace complet
La commande :
```bash
cargo test --workspace --all-targets --all-features
```
est propre avec **53 tests réussis, 0 échec** sur l'ensemble des suites exécutées.
La gate couvre notamment :
- `engine-v1-common` : 8 tests ;
- `engine-v1-platform-api` : 3 tests ;
- `engine-v1-sdl` : 5 tests ;
- `game-android-entrypoint` : 2 tests ;
- `game-assets-lib` : 2 tests ;
- `game-logging-lib` : 1 test d'intégration ;
- `game-realtime-transport-lib` : 7 tests ;
- `game-realtime-websocket-lib` : 5 tests unitaires, 1 loopback et 5 tests de robustesse ;
- `game-reflex-poc` : 4 tests ;
- `game-snake-poc` : 5 tests ;
- `game-snake-poc-wasm` : 5 tests.
Les autres targets bin/lib de runners et hosts concernés s'exécutent également sans échec avec zéro test lorsqu'ils ne possèdent pas de suite propre.
## Smoke runtime
La commande :
```bash
cargo run -p game-realtime-websocket-smoke
```
passe hors harness `#[test]` et affiche :
```text
game-realtime-websocket-smoke: PASS
```
Le log de validation montre un bind éphémère `127.0.0.1:39077`, une connexion cliente réelle, l'accept serveur et la fermeture propre. Ce numéro de port décrit uniquement cette exécution ; le smoke continue d'utiliser `127.0.0.1:0`.
## Graphe de dépendances
`cargo tree -p game-realtime-websocket-lib --edges normal` confirme le backend attendu :
- `futures-util 0.3.34` ;
- `game-realtime-transport-lib` ;
- Tokio `1.53.1` ;
- `tokio-tungstenite 0.30.0` / Tungstenite `0.30.0` ;
- tracing.
Aucune pile TLS n'apparaît dans le graphe normal fourni.
L'arbre inverse :
```bash
cargo tree -i game-realtime-websocket-lib --workspace --edges normal
```
ne contient qu'un consommateur workspace :
```text
game-realtime-websocket-smoke
```
Aucune crate sous `crates/games/` ou `crates/engines/` ne dépend donc du backend WebSocket.
## Conclusion beta
La beta valide la baseline fonctionnelle et ses frontières sans régression transverse. La RC peut se limiter au gel de publication, à la documentation durable, au changelog, à l'historique et à la préparation du prompt `0.3.5`.