0.3.4-alpha.5
This commit is contained in:
127
deltas/0.3.4/alpha.5.md
Normal file
127
deltas/0.3.4/alpha.5.md
Normal file
@@ -0,0 +1,127 @@
|
||||
<!-- file: deltas/0.3.4/alpha.5.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.3.4-alpha.5
|
||||
|
||||
## Base
|
||||
|
||||
Base directe : `0.3.4-alpha.4`, validée par l'utilisateur le 2026-09-21.
|
||||
|
||||
La gate `alpha.4` est entièrement propre, mais la revue post-validation a identifié une omission de processus : les preuves runtime réseau restent sous le harness de test Cargo. Cette tranche ajoute le smoke réellement exécutable avant toute promotion en beta.
|
||||
|
||||
## Historique du jalon précédent
|
||||
|
||||
Ajout de :
|
||||
|
||||
```text
|
||||
history/0.3.4/alpha.4.md
|
||||
```
|
||||
|
||||
L'historique enregistre les audits propres, check/Clippy propres, sept tests transport, onze tests WebSocket/robustesse et le graphe de dépendances sans TLS fournis par l'utilisateur.
|
||||
|
||||
## Launcher de smoke runtime
|
||||
|
||||
Ajout de la crate binaire :
|
||||
|
||||
```text
|
||||
crates/apps/game-realtime-websocket-smoke
|
||||
```
|
||||
|
||||
Ce launcher n'introduit aucune logique session/gameplay et n'ajoute aucune dépendance tierce nouvelle. Il consomme uniquement :
|
||||
|
||||
- `game-realtime-websocket-lib` ;
|
||||
- `game-realtime-transport-lib` ;
|
||||
- le logging commun ;
|
||||
- Tokio pour posséder le runtime du processus de smoke.
|
||||
|
||||
Le backend reste donc conforme à la décision d'ownership : `game-realtime-websocket-lib` ne crée toujours ni runtime ni thread privé.
|
||||
|
||||
## Scénario fumé
|
||||
|
||||
La commande :
|
||||
|
||||
```bash
|
||||
cargo run -p game-realtime-websocket-smoke
|
||||
```
|
||||
|
||||
exécute hors harness `#[test]` le scénario suivant :
|
||||
|
||||
1. initialise le tracing applicatif commun ;
|
||||
2. bind un listener WebSocket sur `127.0.0.1:0` ;
|
||||
3. construit l'endpoint `ws://` à partir du port réellement alloué ;
|
||||
4. accepte un serveur et connecte un client via les API publiques ;
|
||||
5. envoie un payload binaire client → serveur et vérifie son contenu ;
|
||||
6. envoie un payload binaire serveur → client et vérifie son contenu ;
|
||||
7. initie un close propre côté client ;
|
||||
8. vérifie que le serveur observe `TransportReceive::Closed` ;
|
||||
9. affiche `game-realtime-websocket-smoke: PASS` et sort avec le code zéro.
|
||||
|
||||
Une deadline globale de cinq secondes empêche le smoke de rester bloqué en cas de régression. Toute erreur de bind/connect/send/receive/close, payload inattendu ou timeout produit un code de sortie non nul.
|
||||
|
||||
Le smoke ne dépend ni d'Internet, ni d'un service externe, ni d'un port fixe.
|
||||
|
||||
## Documentation locale
|
||||
|
||||
`DOC-CRATE-*` est réévalué pour le nouveau launcher. Aucun `README.md` ou `USAGE.md` local n'est ajouté : le binaire n'a aucune configuration, aucun argument et un unique workflow opérateur (`cargo run -p game-realtime-websocket-smoke`), entièrement documenté par le plan actif et le présent delta.
|
||||
|
||||
## Plan et version
|
||||
|
||||
L'audit de distribution exige désormais aussi la présence du manifeste du launcher de smoke afin que cette preuve runtime ne puisse pas disparaître silencieusement d'une archive future.
|
||||
|
||||
Le workspace passe à :
|
||||
|
||||
```text
|
||||
0.3.4-alpha.5
|
||||
```
|
||||
|
||||
Le plan `0.3.4` est corrigé pour distinguer explicitement les tests automatisés du smoke runtime et rendre ce dernier obligatoire avant l'entrée en beta.
|
||||
|
||||
`CHANGELOG.md` et `ROADMAP.md` restent inchangés : aucun scope macro ou jalon RC/stable n'est modifié.
|
||||
|
||||
## Fichiers
|
||||
|
||||
Modifiés :
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
README.md
|
||||
docs/plans/004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md
|
||||
scripts/audit_distribution_layout.py
|
||||
```
|
||||
|
||||
Ajoutés :
|
||||
|
||||
```text
|
||||
crates/apps/game-realtime-websocket-smoke/Cargo.toml
|
||||
crates/apps/game-realtime-websocket-smoke/src/main.rs
|
||||
history/0.3.4/alpha.4.md
|
||||
deltas/0.3.4/alpha.5.md
|
||||
```
|
||||
|
||||
## Validation attendue
|
||||
|
||||
```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 -p game-realtime-websocket-smoke --edges normal
|
||||
```
|
||||
|
||||
La validation attendue du smoke est explicitement :
|
||||
|
||||
```text
|
||||
game-realtime-websocket-smoke: PASS
|
||||
```
|
||||
|
||||
avec code de sortie zéro. La compilation, les tests et le smoke restent exécutés côté utilisateur conformément à `CMD-BUILD-005`.
|
||||
Reference in New Issue
Block a user