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.