diff --git a/Cargo.toml b/Cargo.toml index 113bddb..2c7ac78 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ # file: Cargo.toml -# version: 107 +# version: 108 [workspace] resolver = "3" @@ -29,7 +29,7 @@ members = [ ] [workspace.package] -version = "0.3.5-alpha.9" +version = "0.3.5-alpha.9.fix.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/games" diff --git a/README.md b/README.md index 33eb706..234330e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - + # games.sasedev @@ -27,9 +27,9 @@ Workspace expérimental puis productif pour des jeux multiplateformes principale Version stable de référence : `0.3.4`. -Version active : `0.3.5-alpha.9`. `0.3.2` reste différée. +Version active : `0.3.5-alpha.9.fix.1`. `0.3.2` reste différée. -La stable `0.3.4` livre la première baseline realtime : contrat binaire transport-neutral, backend WebSocket Tokio/tokio-tungstenite, limites et deadlines, tests loopback/robustesse, smoke runtime localhost public et frontières de dépendances empêchant moteurs et gameplay de dépendre d'un backend concret. `0.3.5-alpha.9` conserve les chemins WebTransport natif et navigateur validés, la composition WebTransport-first avec fallback WebSocket strictement classifié, puis ajoute un POC datagram backend-spécifique isolé. Les datagrams restent hors du contrat `RealtimeConnection` : ils sont non fiables, non ordonnés et bornés par la taille négociée de la session. Les mesures comparatives restent réservées à la tranche suivante. +La stable `0.3.4` livre la première baseline realtime : contrat binaire transport-neutral, backend WebSocket Tokio/tokio-tungstenite, limites et deadlines, tests loopback/robustesse, smoke runtime localhost public et frontières de dépendances empêchant moteurs et gameplay de dépendre d'un backend concret. `0.3.5-alpha.9.fix.1` conserve les chemins WebTransport natif et navigateur validés, la composition WebTransport-first avec fallback WebSocket strictement classifié, puis ajoute le POC datagram backend-spécifique isolé de `alpha.9` avec son correctif de documentation du crate de test d’intégration. Les datagrams restent hors du contrat `RealtimeConnection` : ils sont non fiables, non ordonnés et bornés par la taille négociée de la session. Les mesures comparatives restent réservées à la tranche suivante. Les deux premiers jeux sont des POC structurels : `game-reflex-poc` et `game-snake-poc`. Ils existent d'abord pour valider les frontières du workspace, le moteur, les assets et le packaging multiplateforme. diff --git a/crates/common/game-realtime-webtransport-lib/tests/datagrams.rs b/crates/common/game-realtime-webtransport-lib/tests/datagrams.rs index 934cbee..4a011fa 100644 --- a/crates/common/game-realtime-webtransport-lib/tests/datagrams.rs +++ b/crates/common/game-realtime-webtransport-lib/tests/datagrams.rs @@ -1,5 +1,7 @@ // file: crates/common/game-realtime-webtransport-lib/tests/datagrams.rs -// version: 1 +// version: 2 + +//! Integration coverage for backend-specific WebTransport datagrams. #![cfg(not(target_arch = "wasm32"))] diff --git a/deltas/0.3.5/alpha.9.fix.1.md b/deltas/0.3.5/alpha.9.fix.1.md new file mode 100644 index 0000000..fd89f00 --- /dev/null +++ b/deltas/0.3.5/alpha.9.fix.1.md @@ -0,0 +1,103 @@ + + + +# Delta 0.3.5-alpha.9.fix.1 + +## Base requise + +`0.3.5-alpha.9`. + +La gate utilisateur du 2026-09-22 valide : + +- fmt et les trois audits ; +- `cargo check --workspace` ; +- les tests `game-realtime-webtransport-lib`, y compris les `2/2` tests datagram ; +- le smoke datagram natif, terminé par `game-realtime-webtransport-datagram-smoke: PASS` ; +- `cargo check`, Clippy et build de `game-realtime-webtransport-lib` sur `wasm32-unknown-unknown` ; +- les graphes de dépendances attendus. + +La gate complète échoue uniquement sur Clippy workspace avec `missing_docs` pour le crate d’intégration `crates/common/game-realtime-webtransport-lib/tests/datagrams.rs`. Les tests et le smoke datagram eux-mêmes sont verts. + +`alpha.9` n'est donc pas historisée comme validée avant ce correctif. + +## Cause + +Chaque fichier sous `tests/` est compilé comme un crate d’intégration autonome. La règle workspace : + +```text +missing_docs = "warn" +``` + +devient bloquante sous : + +```text +cargo clippy --workspace --all-targets --all-features -- -D warnings +``` + +Le nouveau `tests/datagrams.rs` documente ses tests mais ne possédait pas de rustdoc `//!` au niveau crate. + +## Correction + +La version technique passe à : + +```text +0.3.5-alpha.9.fix.1 +``` + +Le correctif ajoute uniquement une documentation de niveau crate à `tests/datagrams.rs`. Il n'ajoute aucune exception `allow`, ne modifie aucun test et ne change : + +- ni la surface datagram de `WebTransportSession` ; +- ni le framing fiable ; +- ni `RealtimeConnection` ; +- ni les backends natif/WASM ; +- ni les deadlines ; +- ni les dépendances ; +- ni le smoke datagram. + +## Fichiers modifiés + +```text +Cargo.toml +README.md +crates/common/game-realtime-webtransport-lib/tests/datagrams.rs +docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md +``` + +Nouveau fichier : + +```text +deltas/0.3.5/alpha.9.fix.1.md +``` + +Aucun `history/0.3.5/alpha.9.md` n'est créé avant une gate entièrement verte. + +## 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-webtransport-lib --all-targets --all-features +cargo run -p game-realtime-webtransport-datagram-smoke + +cargo check -p game-realtime-webtransport-lib --target wasm32-unknown-unknown +cargo clippy -p game-realtime-webtransport-lib --target wasm32-unknown-unknown --lib -- -D warnings +cargo build -p game-realtime-webtransport-lib --target wasm32-unknown-unknown +``` + +Le smoke doit terminer par : + +```text +game-realtime-webtransport-datagram-smoke: PASS +``` + +## Après validation + +Créer `history/0.3.5/alpha.9.fix.1.md` à partir des sorties réellement fournies, puis ouvrir `0.3.5-alpha.10` pour les mesures comparatives bornées WebSocket / WebTransport fiable, avec les datagrams mesurés séparément. diff --git a/docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md b/docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md index 898f1ce..1d44dff 100644 --- a/docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md +++ b/docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md @@ -1,11 +1,11 @@ - + # Plan 0.3.5 — POC WebTransport/QUIC et fallback WebSocket ## Statut -Plan actif créé pendant `0.3.5-alpha.1` à partir de l'archive taggée `v0.3.4`, puis réconcilié pour l'implémentation native de `0.3.5-alpha.2`, son correctif de validation `0.3.5-alpha.2.fix.1`, le chemin fiable validé de `0.3.5-alpha.3`, la robustesse validée par `0.3.5-alpha.4.fix.1`, le smoke natif validé de `0.3.5-alpha.5`, le chemin client WASM validé de `0.3.5-alpha.6`, le smoke navigateur validé par `0.3.5-alpha.7.fix.2`, la composition/fallback WebSocket validée par `0.3.5-alpha.8.fix.1` et le POC datagram backend-spécifique de `0.3.5-alpha.9`. +Plan actif créé pendant `0.3.5-alpha.1` à partir de l'archive taggée `v0.3.4`, puis réconcilié pour l'implémentation native de `0.3.5-alpha.2`, son correctif de validation `0.3.5-alpha.2.fix.1`, le chemin fiable validé de `0.3.5-alpha.3`, la robustesse validée par `0.3.5-alpha.4.fix.1`, le smoke natif validé de `0.3.5-alpha.5`, le chemin client WASM validé de `0.3.5-alpha.6`, le smoke navigateur validé par `0.3.5-alpha.7.fix.2`, la composition/fallback WebSocket validée par `0.3.5-alpha.8.fix.1` et le POC datagram backend-spécifique de `0.3.5-alpha.9`, corrigé par `0.3.5-alpha.9.fix.1` après la gate Clippy. Le cadrage détaillé et la comparaison des stacks actuelles sont conservés dans `docs/studies/026-V0_3_5_WEBTRANSPORT_QUIC_STACK_AUDIT.md`. Le présent document porte les décisions opérationnelles, le scope, les gates et le forecast vivant de la version. @@ -551,6 +551,8 @@ Le backend fiable natif et le navigateur étant désormais validés, la tranche Le smoke navigateur interactif n'est pas rouvert dans cette tranche : sa preuve fiable `alpha.7.fix.2` reste intacte. La valeur retenue est **future capability backend-spécifique utile**, à mesurer en `alpha.10`, sans promotion vers le contrat commun. +Correctif `0.3.5-alpha.9.fix.1` : la gate utilisateur de `alpha.9` confirme fmt/audits, `cargo check --workspace`, les tests WebTransport dont `2/2` tests datagram, le smoke datagram natif terminé par `PASS`, ainsi que check/Clippy/build WASM. Clippy workspace échoue uniquement parce que le nouveau crate d’intégration `tests/datagrams.rs` ne possède pas de rustdoc de niveau crate sous `missing_docs = "warn"` promu en erreur par `-D warnings`. Le correctif ajoute cette documentation sans modifier API, comportement, test ou dépendance. + ### `0.3.5-alpha.10` — mesures comparatives bornées - launcher/outil minimal de mesure ;