Files
games/history/0.3.5/rc.1.md
2026-09-22 14:24:05 +02:00

96 lines
4.0 KiB
Markdown

<!-- file: history/0.3.5/rc.1.md -->
<!-- version: 1 -->
# Historique 0.3.5-rc.1
## Statut
`0.3.5-rc.1` a été validée par l'utilisateur le 2026-09-22. La candidate gelée passe les audits, la compilation workspace, Clippy strict, le workspace de tests complet, les smokes realtime natifs, la caractérisation release, les gates WASM/frontend, la cross-compilation Android ARM64/API 21, le smoke navigateur réel et les contrôles de dépendances sans défaut de publication.
Aucun `rc.1.fix.N` n'est requis. La candidate peut être promue mécaniquement vers la stable `0.3.5`.
## Gates statiques et workspace
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), 318 file(s))
Distribution layout audit: clean (66 required path(s), 8 forbidden path(s) absent)
cargo check --workspace: clean
cargo clippy --workspace --all-targets --all-features -- -D warnings: clean
```
Le workspace compilé porte bien `0.3.5-rc.1`, y compris les crates realtime, les smokes et l'outil de mesure.
## Tests workspace
La commande :
```bash
cargo test --workspace --all-targets --all-features
```
valide **77 tests, 0 échec** sur les moteurs, plateformes, assets/logging, jeux, WebSocket, WebTransport, datagrams, fallback et adapters concernés.
## Smokes realtime natifs
Les quatre launchers terminent par :
```text
game-realtime-websocket-smoke: PASS
game-realtime-webtransport-smoke: PASS
game-realtime-webtransport-datagram-smoke: PASS
game-realtime-transport-fallback-smoke: PASS
```
Le fallback confirme WebTransport préféré, WebSocket uniquement sur erreur classifiée `Timeout`/`Io`, et visibilité conservée des erreurs non éligibles au fallback.
## Mesures de la RC
La caractérisation release bornée termine par `game-realtime-transport-measure: PASS` et observe sur cette exécution loopback :
```text
establishment median: websocket=65 us, webtransport=720 us
rtt median: websocket=17 us, webtransport=11 us
throughput 128 x 64 KiB: websocket=3036.346 MiB/s, webtransport=634.827 MiB/s
in-flight 64 x 1 KiB: websocket=1.533 MiB/s, webtransport=348.883 MiB/s
datagram bounded burst: attempted=64, received=64, payload=256 bytes, client_max=1381, server_max=1381
```
Ces valeurs restent une observation locale dépendante du pattern ; elles ne constituent ni un classement général des protocoles ni une prédiction Internet/mobile. La conclusion reste :
```text
CONCLUSION webtransport=retain scope=second-backend reason=reliable-browser-fallback-datagram-capabilities
```
## WASM, frontend et navigateur réel
Les gates `wasm32-unknown-unknown` de `game-realtime-webtransport-lib` passent en check, Clippy strict et build. `game-realtime-webtransport-browser-smoke` compile également pour WASM.
Le host Vite/TypeScript synchronisé sur `0.3.5-rc.1` passe `npm install` sans vulnérabilité puis son build production. Le smoke navigateur réel contre le serveur Rust natif termine par :
```text
game-realtime-webtransport-browser-smoke: PASS
```
## Android ARM64/API 21
Avec le NDK `28.2.13676358` déjà retenu et le Clang ciblé `aarch64-linux-android21-clang` exposé à Cargo/`cc-rs`, la commande :
```bash
cargo check -p game-realtime-webtransport-lib --target aarch64-linux-android
```
termine proprement. Cette preuve valide la **cross-compilation** du backend WebTransport pour Android ARM64/API 21 ; elle ne constitue pas un smoke runtime Android WebTransport.
## Frontières de dépendances
Les graphes directs/inverses confirment que les backends realtime restent consommés uniquement par les launchers/outils techniques prévus. Aucun moteur ni gameplay ne dépend directement de `game-realtime-websocket-lib` ou `game-realtime-webtransport-lib`.
## Conclusion RC
La candidate est gelée, cohérente et validée sans correctif RC. La stable `0.3.5` peut se limiter aux changements mécaniques de version, changelog, roadmap, clôture du plan/index, historique RC, delta final et ajustement du prompt `0.3.6`.