Files
games/deltas/0.3.4/alpha.3.fix.1.md

3.0 KiB

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 :

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 à :

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] :

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 :

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

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 :

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

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.