152 lines
5.3 KiB
Markdown
152 lines
5.3 KiB
Markdown
<!-- file: deltas/0.3.4/rc.1.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta 0.3.4-rc.1
|
|
|
|
## Base requise
|
|
|
|
`0.3.4-beta.1`, validée par l'utilisateur le 2026-09-21.
|
|
|
|
## Objectif
|
|
|
|
Créer la candidate de publication `0.3.4` après validation large de la baseline realtime, sans rouvrir le comportement réseau.
|
|
|
|
Cette tranche ferme `VER-PHASE-010` : historique beta, documentation durable, changelog, prompt de la version suivante et gel RC.
|
|
|
|
## Gel fonctionnel
|
|
|
|
`0.3.4-rc.1` n'ajoute :
|
|
|
|
- aucun transport ;
|
|
- aucune API réseau ;
|
|
- aucune dépendance tierce ;
|
|
- aucun TLS ;
|
|
- aucun wire codec ;
|
|
- aucun protocole session/joueur/room ;
|
|
- aucune synchronisation gameplay ;
|
|
- aucune simulation authoritative ;
|
|
- aucun changement moteur, jeu, SDL, Android, Tauri ou WASM.
|
|
|
|
Les seules modifications techniques sont la promotion de `workspace.package.version` vers `0.3.4-rc.1`. Le code Rust realtime validé en beta reste inchangé.
|
|
|
|
Tout défaut de publication fermé relève de `0.3.4-rc.1.fix.N` selon `VER-RC-*`. Une réouverture fonctionnelle invalide la RC.
|
|
|
|
## Validation beta acquise
|
|
|
|
`history/0.3.4/beta.1.md` consigne la gate réelle :
|
|
|
|
- audits Rust/workspace, Markdown et distribution propres ;
|
|
- `cargo check --workspace` propre ;
|
|
- Clippy workspace strict propre ;
|
|
- `cargo test --workspace --all-targets --all-features` : 53 tests réussis, 0 échec ;
|
|
- smoke runtime `game-realtime-websocket-smoke: PASS` ;
|
|
- backend sur Tokio `1.53.1`, tokio-tungstenite/Tungstenite `0.30.0`, sans pile TLS ;
|
|
- arbre inverse limité à `game-realtime-websocket-smoke`, sans dépendance backend dans `crates/games/` ou `crates/engines/`.
|
|
|
|
Aucune beta supplémentaire n'est créée uniquement par cérémonie.
|
|
|
|
## Consolidation documentaire
|
|
|
|
La revue `DOC-CRATE-*` conclut :
|
|
|
|
- `game-realtime-transport-lib` reçoit un `README.md` durable décrivant son contrat, ses frontières et le sens des dépendances ; son API est assez petite pour ne pas justifier un `USAGE.md` séparé ;
|
|
- `game-realtime-websocket-lib` reçoit un `README.md` durable et un `USAGE.md`, car configuration, client/listener, limites, deadlines et smoke constituent un workflow de consommation non trivial ;
|
|
- `game-realtime-websocket-smoke` reste sans document local supplémentaire : la commande Cargo unique, le plan et le delta couvrent entièrement son rôle.
|
|
|
|
Les documents locaux ne contiennent aucun journal de prerelease.
|
|
|
|
## Changelog et roadmap
|
|
|
|
`CHANGELOG.md` reçoit l'entrée `0.3.4-rc.1` avec le scope réellement validé.
|
|
|
|
`ROADMAP.md` est relue mais reste inchangée : `0.3.4` ne devient `(x)` qu'après validation de la RC et promotion stable. `0.3.5` reste le POC WebTransport/QUIC prévu ensuite.
|
|
|
|
## Prompt suivant
|
|
|
|
Ajout de :
|
|
|
|
```text
|
|
prompts/006-V0_3_5_START_PROMPT.md
|
|
```
|
|
|
|
Le prompt part de la future stable/taggée `v0.3.4`, rappelle que la RC/stable doit être terminée si nécessaire, et cadre `0.3.5-alpha.1` autour de :
|
|
|
|
- recherche actuelle des stacks WebTransport/QUIC ;
|
|
- challenge du contrat transport-neutral livré par `0.3.4` ;
|
|
- plateformes navigateur/native/Android réellement testables ;
|
|
- exigences TLS/certificats/HTTP3/UDP ;
|
|
- fallback WebSocket au niveau d'ownership approprié ;
|
|
- comparaison mesurée sans présumer que WebTransport doit être retenu ;
|
|
- maintien hors scope des couches session/synchronisation/simulation.
|
|
|
|
Le prompt ne présente aucune validation future de la RC ou de la stable comme acquise.
|
|
|
|
## Fichiers
|
|
|
|
Modifiés :
|
|
|
|
```text
|
|
Cargo.toml
|
|
README.md
|
|
CHANGELOG.md
|
|
docs/000-README.md
|
|
docs/plans/004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md
|
|
```
|
|
|
|
Ajoutés :
|
|
|
|
```text
|
|
crates/common/game-realtime-transport-lib/README.md
|
|
crates/common/game-realtime-websocket-lib/README.md
|
|
crates/common/game-realtime-websocket-lib/USAGE.md
|
|
history/0.3.4/beta.1.md
|
|
prompts/006-V0_3_5_START_PROMPT.md
|
|
deltas/0.3.4/rc.1.md
|
|
```
|
|
|
|
## Validation RC
|
|
|
|
Depuis la racine :
|
|
|
|
```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 test workspace complet n'est pas répété par cérémonie : aucun Rust, dépendance ou contrat transverse n'a changé depuis la gate beta qui l'a déjà validé. Il redevient obligatoire si un fix RC touche ces éléments.
|
|
|
|
Le smoke doit afficher :
|
|
|
|
```text
|
|
game-realtime-websocket-smoke: PASS
|
|
```
|
|
|
|
L'arbre inverse doit continuer à montrer uniquement le launcher de smoke comme consommateur du backend WebSocket.
|
|
|
|
## Après validation
|
|
|
|
Si la RC est propre, la promotion vers `0.3.4` est mécanique :
|
|
|
|
- `workspace.package.version = 0.3.4` ;
|
|
- ajout de `history/0.3.4/rc.1.md` ;
|
|
- entrée stable dans `CHANGELOG.md` ;
|
|
- `ROADMAP.md` passe `0.3.4` en `(x)` ;
|
|
- clôture du plan `004` et de son index ;
|
|
- ajustement mécanique de `prompts/006-V0_3_5_START_PROMPT.md` si une référence devient certaine ;
|
|
- `deltas/0.3.4/rel.001.md`.
|
|
|
|
Aucun nouveau comportement ne doit apparaître dans cette promotion.
|