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

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md -->
<!-- version: 7 -->
<!-- version: 8 -->
# Plan 0.3.4 — transport realtime et baseline WebSocket
@@ -7,7 +7,7 @@
Plan actif créé pendant `0.3.4-alpha.1` à partir de l'archive taggée `v0.3.3`.
Les tranches `alpha.1`, `alpha.2`, `alpha.3.fix.1`, `alpha.4` et `alpha.5` ont été validées le 2026-09-21. `alpha.3` avait été rejetée avant compilation à cause d'un héritage Cargo invalide de `default-features`; son fix a ensuite validé le backend WebSocket, le round-trip localhost et le graphe sans TLS. `alpha.4` a fermé les limites, timeouts, cas négatifs et lifecycle. `alpha.5` a ensuite fourni le smoke runtime hors harness de test : bind loopback réel, échange binaire bidirectionnel, close propre et sortie `PASS`. Les critères d'entrée en beta sont donc satisfaits et la tranche active `beta.1` ouvre la validation large sans nouveau scope.
Les tranches `alpha.1`, `alpha.2`, `alpha.3.fix.1`, `alpha.4`, `alpha.5` et `beta.1` ont été validées le 2026-09-21. `alpha.3` avait été rejetée avant compilation à cause d'un héritage Cargo invalide de `default-features`; son fix a ensuite validé le backend WebSocket, le round-trip localhost et le graphe sans TLS. `alpha.4` a fermé les limites, timeouts, cas négatifs et lifecycle, puis `alpha.5` a fourni le smoke runtime hors harness de test. `beta.1` a enfin validé le workspace complet avec 53 tests, le smoke `PASS` et l'arbre inverse montrant que seul le launcher de smoke consomme le backend. La tranche active est désormais `0.3.4-rc.1` : comportement gelé, consolidation de publication uniquement.
## Mission
@@ -454,9 +454,27 @@ cargo tree -i game-realtime-websocket-lib --workspace --edges normal
Elle revalide également audits, format/check et Clippy. Le test workspace couvre les suites transport/WebSocket et leurs loopbacks ; le smoke reste exécuté séparément car un binaire runtime n'est pas remplacé par le harness `#[test]`. L'arbre inverse doit confirmer qu'aucune crate sous `crates/games/` ou `crates/engines/` ne dépend du backend WebSocket.
`0.3.4-beta.1` a satisfait cette gate le 2026-09-21 : 53 tests workspace réussis, smoke runtime `PASS`, graphe backend sans TLS et arbre inverse limité à `game-realtime-websocket-smoke`. Aucun fix beta n'est requis.
### RC
La RC gèle le comportement et rejoue les gates de publication utiles. Le test workspace complet n'est répété que si un fix depuis la beta a modifié du Rust, des dépendances ou une frontière transverse qui le justifie.
La RC gèle le comportement et rejoue les gates de publication utiles. Comme aucun Rust, dépendance tierce ou contrat transport n'a changé depuis la beta, le test workspace complet n'est pas répété par cérémonie. La gate RC retenue est :
```bash
cargo fmt --all
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 Web deltas history
python3 scripts/audit_distribution_layout.py
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p game-realtime-transport-lib --all-targets --all-features
cargo test -p game-realtime-websocket-lib --all-targets --all-features
cargo run -p game-realtime-websocket-smoke
cargo tree -i game-realtime-websocket-lib --workspace --edges normal
```
Le smoke doit encore afficher `game-realtime-websocket-smoke: PASS`. Tout défaut de publication fermé produit `rc.1.fix.N`; toute réouverture fonctionnelle abandonne la RC conformément à `VER-RC-004`.
## Forecast révisé
@@ -526,18 +544,29 @@ Un défaut fermé produit `beta.1.fix.N`. Une capacité manquante réouvre une a
### `0.3.4-rc.1` — candidate gelée
- scope gelé ;
- `CHANGELOG.md` ;
- `ROADMAP.md` si statut macro à réconcilier ;
- historique beta ;
- documentation finale ;
- prompt `0.3.5` préparant WebTransport/QUIC sur la même frontière ;
- aucune abstraction nouvelle sans défaut de release.
- scope fonctionnel gelé après validation complète de `beta.1` ;
- entrée RC dans `CHANGELOG.md` ;
- `ROADMAP.md` relue mais conservée non cochée jusqu'à la stable ;
- historique `beta.1` ;
- README durable de `game-realtime-transport-lib` ;
- README + USAGE durables de `game-realtime-websocket-lib` ;
- prompt `0.3.5` préparant le POC WebTransport/QUIC sur la même frontière, sans prétendre qu'un backend ou une stack QUIC est déjà validé ;
- aucune abstraction nouvelle ni modification du comportement réseau sans défaut de release.
### `0.3.4` — stable
Promotion mécanique : version stable, historique RC, changelog stable, clôture du plan, delta final et ajustement mécanique du prompt suivant.
## Consolidation documentaire RC
La revue `DOC-CRATE-*` conclut :
- `game-realtime-transport-lib` est une capability durable et réutilisable : un `README.md` local documente responsabilité, frontière, sémantique et sens des dépendances ; son API publique reste suffisamment petite pour ne pas justifier un `USAGE.md` séparé ;
- `game-realtime-websocket-lib` est un backend durable avec configuration, client, listener et lifecycle opératoire : il reçoit un `README.md` et un `USAGE.md` ;
- `game-realtime-websocket-smoke` reste un launcher de validation minimal : le plan et la commande Cargo couvrent entièrement son usage, donc aucun document local supplémentaire n'est créé.
Cette documentation est durable et ne contient pas de journal de prerelease. Les détails de validation restent dans `deltas/`, `history/` et `CHANGELOG.md`.
## Sizing
Le scope reste compatible avec une seule version/session : deux petites crates techniques, un seul backend concret et des tests locaux. Le POC WebTransport/QUIC, la session multijoueur et la simulation authoritative sont explicitement exclus.