0.3.5-beta.1.fix.1
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
# file: Cargo.toml
|
# file: Cargo.toml
|
||||||
# version: 111
|
# version: 112
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
resolver = "3"
|
resolver = "3"
|
||||||
@@ -30,7 +30,7 @@ members = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.3.5-beta.1"
|
version = "0.3.5-beta.1.fix.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://git.sasedev.com/Sasedev/games"
|
repository = "https://git.sasedev.com/Sasedev/games"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: README.md -->
|
<!-- file: README.md -->
|
||||||
<!-- version: 79 -->
|
<!-- version: 80 -->
|
||||||
|
|
||||||
# games.sasedev
|
# 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 stable de référence : `0.3.4`.
|
||||||
|
|
||||||
Version active : `0.3.5-beta.1`. `0.3.2` reste différée.
|
Version active : `0.3.5-beta.1.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-beta.1` ouvre la validation large du POC WebTransport/QUIC après fermeture de toutes les tranches alpha : chemins natif et navigateur, composition WebTransport-first avec fallback WebSocket strictement classifié, datagrams backend-spécifiques et caractérisation loopback bornée. La beta n’ajoute aucune nouvelle capacité ; elle doit confirmer le workspace complet, les smokes retenus, le build navigateur/WASM, la portabilité Android raisonnable et les frontières de dépendances avant consolidation pré-RC. La conclusion technique provisoire reste de conserver WebTransport comme second backend à côté de WebSocket, sans prétendre qu’un résultat loopback prédit les performances Internet/mobile.
|
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-beta.1.fix.1` ferme un défaut de cohérence de version du host navigateur découvert pendant la validation large ; `0.3.5-beta.1` avait ouvert la validation large du POC WebTransport/QUIC après fermeture de toutes les tranches alpha : chemins natif et navigateur, composition WebTransport-first avec fallback WebSocket strictement classifié, datagrams backend-spécifiques et caractérisation loopback bornée. La beta n’ajoute aucune nouvelle capacité ; elle doit confirmer le workspace complet, les smokes retenus, le build navigateur/WASM, la portabilité Android raisonnable et les frontières de dépendances avant consolidation pré-RC. La conclusion technique provisoire reste de conserver WebTransport comme second backend à côté de WebSocket, sans prétendre qu’un résultat loopback prédit les performances Internet/mobile.
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "game-realtime-webtransport-browser-smoke-web",
|
"name": "game-realtime-webtransport-browser-smoke-web",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.3.5-alpha.7.fix.2",
|
"version": "0.3.5-beta.1.fix.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"wasm:dev": "cargo build -p game-realtime-webtransport-browser-smoke --lib --target wasm32-unknown-unknown && wasm-bindgen ../../../builds/sasedev-games/target/wasm32-unknown-unknown/debug/game_realtime_webtransport_browser_smoke.wasm --target web --out-dir ../../../builds/sasedev-games/game-realtime-webtransport-browser-smoke/wasm --out-name game_realtime_webtransport_browser_smoke",
|
"wasm:dev": "cargo build -p game-realtime-webtransport-browser-smoke --lib --target wasm32-unknown-unknown && wasm-bindgen ../../../builds/sasedev-games/target/wasm32-unknown-unknown/debug/game_realtime_webtransport_browser_smoke.wasm --target web --out-dir ../../../builds/sasedev-games/game-realtime-webtransport-browser-smoke/wasm --out-name game_realtime_webtransport_browser_smoke",
|
||||||
|
|||||||
69
deltas/0.3.5/beta.1.fix.1.md
Normal file
69
deltas/0.3.5/beta.1.fix.1.md
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
<!-- file: deltas/0.3.5/beta.1.fix.1.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Delta 0.3.5-beta.1.fix.1
|
||||||
|
|
||||||
|
## Base requise
|
||||||
|
|
||||||
|
`0.3.5-beta.1`.
|
||||||
|
|
||||||
|
## Objet
|
||||||
|
|
||||||
|
Fermer le défaut de cohérence de version découvert pendant la gate `beta.1` : le host frontend du smoke navigateur restait déclaré en `0.3.5-alpha.7.fix.2` alors que sa crate Rust et le workspace étaient en `0.3.5-beta.1`.
|
||||||
|
|
||||||
|
La version technique devient :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.3.5-beta.1.fix.1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Modifications
|
||||||
|
|
||||||
|
- synchroniser `Web/game-realtime-webtransport-browser-smoke/package.json` avec `0.3.5-beta.1.fix.1` ;
|
||||||
|
- ajouter `DIST-LAYOUT-114` afin que l’audit compare désormais cette version frontend à `[workspace.package].version` ;
|
||||||
|
- mettre à jour le README et le plan de version ;
|
||||||
|
- ne modifier aucun backend realtime, contrat, smoke, mesure, engine ou gameplay.
|
||||||
|
|
||||||
|
La tentative Android ARM64 de `beta.1` reste classée comme **preuve non exécutée pour cause d’environnement** : `ring` a échoué avant compilation du backend car `aarch64-linux-android-clang` n’était pas disponible. Ce point ne constitue pas un défaut de code démontré et reste à documenter comme plateforme non validée dans `beta.2`.
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
(cd Web/game-realtime-webtransport-browser-smoke && npm install && npm run build)
|
||||||
|
```
|
||||||
|
|
||||||
|
Puis vérifier le smoke navigateur réel :
|
||||||
|
|
||||||
|
Terminal 1 :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo run -p game-realtime-webtransport-browser-smoke
|
||||||
|
```
|
||||||
|
|
||||||
|
Terminal 2 :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
(cd Web/game-realtime-webtransport-browser-smoke && npm run dev)
|
||||||
|
```
|
||||||
|
|
||||||
|
Ouvrir l’URL `OPEN=...` et attendre :
|
||||||
|
|
||||||
|
```text
|
||||||
|
game-realtime-webtransport-browser-smoke: PASS
|
||||||
|
```
|
||||||
|
|
||||||
|
Le log npm doit annoncer `game-realtime-webtransport-browser-smoke-web@0.3.5-beta.1.fix.1`.
|
||||||
|
|
||||||
|
## Après validation
|
||||||
|
|
||||||
|
Créer `history/0.3.5/beta.1.fix.1.md`, puis ouvrir `0.3.5-beta.2`.
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
<!-- file: docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md -->
|
<!-- file: docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md -->
|
||||||
<!-- version: 18 -->
|
<!-- version: 19 -->
|
||||||
|
|
||||||
# Plan 0.3.5 — POC WebTransport/QUIC et fallback WebSocket
|
# Plan 0.3.5 — POC WebTransport/QUIC et fallback WebSocket
|
||||||
|
|
||||||
## Statut
|
## 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`, le POC datagram backend-spécifique validé par `0.3.5-alpha.9.fix.1`, puis la caractérisation comparative bornée validée par `0.3.5-alpha.10.fix.1`. `0.3.5-beta.1` est maintenant la tranche active de validation large, sans nouvelle fonctionnalité.
|
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`, le POC datagram backend-spécifique validé par `0.3.5-alpha.9.fix.1`, puis la caractérisation comparative bornée validée par `0.3.5-alpha.10.fix.1`. `0.3.5-beta.1` a validé le workspace complet, les smokes natifs, les mesures, le build WASM/frontend et le smoke navigateur réel. La preuve Android ARM64 a été bloquée uniquement par l’absence de `aarch64-linux-android-clang` dans l’environnement. La gate a aussi révélé que le `package.json` du host navigateur était resté à `0.3.5-alpha.7.fix.2`; `0.3.5-beta.1.fix.1` corrige cette dérive et ajoute un audit de synchronisation ciblé.
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
@@ -603,6 +603,17 @@ Preuves realtime et multiplateformes retenues :
|
|||||||
|
|
||||||
Toute capacité fonctionnelle majeure manquante réouvre une alpha ; un défaut fermé de validation/build produit `beta.1.fix.N`.
|
Toute capacité fonctionnelle majeure manquante réouvre une alpha ; un défaut fermé de validation/build produit `beta.1.fix.N`.
|
||||||
|
|
||||||
|
### `0.3.5-beta.1.fix.1` — cohérence de version du host navigateur
|
||||||
|
|
||||||
|
Correctif fermé de validation :
|
||||||
|
|
||||||
|
- synchroniser `Web/game-realtime-webtransport-browser-smoke/package.json` avec la version workspace ;
|
||||||
|
- ajouter `DIST-LAYOUT-114` pour empêcher une nouvelle dérive de cette version ;
|
||||||
|
- ne modifier aucun backend, protocole, test, mesure ou comportement runtime ;
|
||||||
|
- conserver la preuve Android ARM64 comme non validée dans cet environnement tant que le compilateur NDK `aarch64-linux-android-clang` n’est pas disponible.
|
||||||
|
|
||||||
|
Après validation de ce fix, enregistrer `history/0.3.5/beta.1.fix.1.md` puis ouvrir `beta.2`.
|
||||||
|
|
||||||
### `0.3.5-beta.2` — consolidation pré-RC
|
### `0.3.5-beta.2` — consolidation pré-RC
|
||||||
|
|
||||||
Tranche explicitement réservée par `SESSION-009` / `VER-PHASE-010` :
|
Tranche explicitement réservée par `SESSION-009` / `VER-PHASE-010` :
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# file: scripts/audit_distribution_layout.py
|
# file: scripts/audit_distribution_layout.py
|
||||||
# version: 24
|
# version: 25
|
||||||
|
|
||||||
"""Audit the static distribution layout expected by supported POCs."""
|
"""Audit the static distribution layout expected by supported POCs."""
|
||||||
|
|
||||||
@@ -342,6 +342,10 @@ def audit_webtransport_browser_smoke(root: pathlib.Path) -> list[str]:
|
|||||||
if not all(path.exists() for path in (package_path, tsconfig_path, vite_path, main_path, rust_manifest_path, rust_main_path)):
|
if not all(path.exists() for path in (package_path, tsconfig_path, vite_path, main_path, rust_manifest_path, rust_main_path)):
|
||||||
return violations
|
return violations
|
||||||
package = package_path.read_text(encoding="utf-8")
|
package = package_path.read_text(encoding="utf-8")
|
||||||
|
workspace_manifest = (root / "Cargo.toml").read_text(encoding="utf-8")
|
||||||
|
workspace_section = workspace_manifest.split("[workspace.package]", maxsplit=1)[1].split("[", maxsplit=1)[0]
|
||||||
|
workspace_version_line = next((line.strip() for line in workspace_section.splitlines() if line.strip().startswith("version = ")), "")
|
||||||
|
workspace_version = workspace_version_line.removeprefix("version = ").strip().strip('"')
|
||||||
tsconfig = tsconfig_path.read_text(encoding="utf-8")
|
tsconfig = tsconfig_path.read_text(encoding="utf-8")
|
||||||
vite = vite_path.read_text(encoding="utf-8")
|
vite = vite_path.read_text(encoding="utf-8")
|
||||||
main = main_path.read_text(encoding="utf-8")
|
main = main_path.read_text(encoding="utf-8")
|
||||||
@@ -362,6 +366,11 @@ def audit_webtransport_browser_smoke(root: pathlib.Path) -> list[str]:
|
|||||||
for content, fragment, message in required_fragments:
|
for content, fragment, message in required_fragments:
|
||||||
if fragment not in content:
|
if fragment not in content:
|
||||||
violations.append(message)
|
violations.append(message)
|
||||||
|
expected_package_version = f'"version": "{workspace_version}"'
|
||||||
|
if expected_package_version not in package:
|
||||||
|
violations.append(
|
||||||
|
f"DIST-LAYOUT-114: browser WebTransport smoke frontend version must match workspace version {workspace_version}"
|
||||||
|
)
|
||||||
return violations
|
return violations
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user