0.3.4-alpha.3.fix.1

This commit is contained in:
2026-09-21 17:45:12 +02:00
parent 4fb521f54e
commit bbecae5e0d
8 changed files with 123 additions and 46 deletions

View File

@@ -0,0 +1,87 @@
<!-- file: deltas/0.3.4/alpha.3.fix.1.md -->
<!-- version: 1 -->
# Delta 0.3.4-alpha.3.fix.1
## Cause
La gate utilisateur de `0.3.4-alpha.3` s'est arrêtée avant compilation lors du chargement des manifests Cargo :
```text
error inheriting `futures-util` from workspace root manifest's `workspace.dependencies.futures-util`
Caused by:
`default-features = false` cannot override workspace's `default-features`
```
Le même défaut était présent sur `tokio-tungstenite` mais n'était pas encore affiché parce que Cargo s'arrêtait sur la première dépendance invalide.
`alpha.3` n'est donc pas historisée comme validée et aucune tranche `alpha.4` n'est ouverte avant fermeture de ce défaut.
## Correction
Le workspace passe à :
```text
0.3.4-alpha.3.fix.1
```
Les deux dépendances concernées portent désormais la désactivation de leurs features par défaut directement dans `[workspace.dependencies]` :
```toml
futures-util = { version = "0.3.34", default-features = false }
tokio-tungstenite = { version = "0.30.0", default-features = false }
```
La crate `game-realtime-websocket-lib` hérite ensuite de ces réglages et ajoute uniquement les features dont elle a besoin :
```toml
futures-util = { workspace = true, features = ["sink", "std"] }
tokio-tungstenite = { workspace = true, features = ["connect", "handshake"] }
```
Les features Tokio restent inchangées. Aucun TLS n'est ajouté et aucun code Rust/API/comportement transport n'est modifié.
## Pourquoi ce placement
Cargo autorise une crate membre à enrichir les `features` d'une dépendance héritée du workspace, mais pas à remplacer localement la valeur `default-features` définie par l'héritage. La politique `default-features = false` doit donc être possédée par la déclaration workspace lorsqu'elle est commune à l'utilisation héritée.
Ce fix corrige les deux dépendances concernées immédiatement afin d'éviter qu'une seconde erreur identique apparaisse après correction de `futures-util` seulement.
## Fichiers modifiés
```text
Cargo.toml
README.md
crates/common/game-realtime-websocket-lib/Cargo.toml
docs/plans/004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md
```
Nouveau fichier :
```text
deltas/0.3.4/alpha.3.fix.1.md
```
Aucun fichier `history/0.3.4/alpha.3.md` n'est créé : une entrée `history/` n'existe qu'après validation réussie du jalon qu'elle décrit.
## 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 tree -p game-realtime-websocket-lib --edges normal
```
La validation recommence depuis le début de la gate, car `alpha.3` n'a jamais atteint une compilation Cargo valide.