0.3.4-alpha.3.fix.1
This commit is contained in:
87
deltas/0.3.4/alpha.3.fix.1.md
Normal file
87
deltas/0.3.4/alpha.3.fix.1.md
Normal 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.
|
||||
Reference in New Issue
Block a user