157 lines
5.5 KiB
Markdown
157 lines
5.5 KiB
Markdown
<!-- file: deltas/0.2.7/pre.002-fix.001.md -->
|
|
<!-- version: 2 -->
|
|
|
|
# Delta `0.2.7-pre.002-fix.001` — Clippy strict, canaris desktop et signal Cargo synchronisé
|
|
|
|
## 1. Base requise
|
|
|
|
```text
|
|
0.2.7-pre.002 appliquée
|
|
workspace.package.version = 0.2.7-pre.2
|
|
```
|
|
|
|
La validation opérateur de `0.2.7-pre.002` confirme :
|
|
|
|
```text
|
|
cargo fmt --all OK
|
|
python3 scripts/audit_rust_workspace_rules.py clean
|
|
cargo check --workspace OK avec 2 warnings dead_code WS
|
|
cargo test -p ksp-onchain-transport-lib 256 unit + 28 public API + 22 release completeness OK
|
|
```
|
|
|
|
`cargo clippy --workspace --all-targets` échoue sur les règles workspace strictes `clippy::implicit_return` et `clippy::question_mark_used`. `cargo test --workspace` atteint ensuite le canari Config Desk qui compare encore la version packagée stable `0.2.6` à la prerelease Cargo courante.
|
|
|
|
Cette version 2 du fichier delta accompagne l'archive d'échange **corrigée** de `pre.002-fix.001`. L'archive `pre.002-fix.001` précédemment transmise sans mise à jour du `Cargo.toml` racine est révoquée avant application/commit : elle ne doit pas être utilisée.
|
|
|
|
## 2. Signal technique
|
|
|
|
Le correctif touche des sources Rust et des tests Rust. Conformément à `VER-ID-007`, `VER-ID-010` et au contrat `Cargo.toml` de `FILE_CONTRACTS.md`, le signal Cargo est synchronisé :
|
|
|
|
```text
|
|
livraison = 0.2.7-pre.002-fix.001
|
|
workspace.package.version = 0.2.7-pre.2.fix.1
|
|
commit = v0.2.7-pre.002-fix.001
|
|
```
|
|
|
|
Aucun tag prerelease.
|
|
|
|
Toutes les crates qui utilisent `version.workspace = true` héritent automatiquement de `0.2.7-pre.2.fix.1`.
|
|
|
|
Le manifeste racine passe aussi :
|
|
|
|
```text
|
|
# version: 193 -> 194
|
|
```
|
|
|
|
Aucune dépendance, feature, membre workspace ou lint n'est modifié.
|
|
|
|
## 3. Corrections Transport
|
|
|
|
`crates/ksp-onchain-transport-lib/src/ws_settings.rs` et `ws_lifecycle.rs` sont alignés avec les lints workspace stricts :
|
|
|
|
- les helpers `as_str()` utilisent un `return match` explicite ;
|
|
- les propagations d'erreur n'utilisent plus l'opérateur `?`, interdit par `clippy::question_mark_used` ;
|
|
- les constructeurs crate-internal de snapshots, encore réservés aux tests dans `pre.002`, sont compilés uniquement sous `cfg(test)` afin de supprimer les warnings `dead_code` avant leur consommation runtime future.
|
|
|
|
Aucun contrat public, default WebSocket, logging target ou règle de redaction n'est modifié. Le tracing reste exclusivement émis via `ksp-logging-lib` avec le `TRACING_TARGET` de `ksp-onchain-transport-lib`; aucun `tracing` direct n'est introduit.
|
|
|
|
## 4. Canaris desktop packagés
|
|
|
|
Le test Config Desk :
|
|
|
|
```text
|
|
pre_018_packaged_runtime_bundles_config_resources_and_activates_shared_writable_root
|
|
```
|
|
|
|
ne compare plus `tauri.conf.json` et `package.json` à chaque valeur de `CARGO_PKG_VERSION`. Cette égalité rendait le test faux dès l'ouverture d'une prerelease Cargo alors que les ressources desktop packagées restaient volontairement sur la baseline stable `0.2.6`.
|
|
|
|
Le canari Wallet Desk analogue est corrigé dans la même livraison afin d'éviter le même faux négatif lors du `cargo test --workspace` suivant.
|
|
|
|
Les garanties conservées sont :
|
|
|
|
```text
|
|
version tauri >= 0.2.6
|
|
version package >= 0.2.6
|
|
version tauri == version package
|
|
```
|
|
|
|
Le cœur SemVer est comparé sur `major.minor.patch`; un suffixe prerelease éventuel ne change pas ce floor. Wallet Desk conserve en plus la vérification que le HTML embarque la version packagée réellement déclarée.
|
|
|
|
Les versions npm/Tauri ne sont pas forcées à suivre chaque prerelease Cargo par ce correctif.
|
|
|
|
## 5. Fichiers ajoutés
|
|
|
|
```text
|
|
deltas/0.2.7/pre.002-fix.001.md
|
|
```
|
|
|
|
## 6. Fichiers modifiés
|
|
|
|
```text
|
|
Cargo.toml
|
|
crates/ksp-app-config-desk/tests/desktop_contract.rs
|
|
crates/ksp-app-wallet-desk/tests/desktop_contract.rs
|
|
crates/ksp-onchain-transport-lib/src/ws_lifecycle.rs
|
|
crates/ksp-onchain-transport-lib/src/ws_settings.rs
|
|
```
|
|
|
|
## 7. Fichiers supprimés
|
|
|
|
```text
|
|
aucun
|
|
```
|
|
|
|
## 8. Validations exécutées pour la préparation de l'archive corrigée
|
|
|
|
Sur la reconstruction `0.2.7-pre.002 + pre.002-fix.001 corrigé` :
|
|
|
|
```text
|
|
python3 scripts/audit_rust_workspace_rules.py OK / clean
|
|
inspection workspace.package.version 0.2.7-pre.2.fix.1
|
|
inspection absence de tracing direct OK
|
|
inspection absence de ? dans ws_settings.rs OK
|
|
inspection contenu archive OK
|
|
```
|
|
|
|
## 9. Validations non exécutées dans le sandbox
|
|
|
|
Cargo n'est pas disponible dans l'environnement de préparation. Aucun gate Cargo n'est déclaré réussi pour cette archive corrigée.
|
|
|
|
## 10. Validation opérateur requise
|
|
|
|
Après application de **cette archive corrigée uniquement** :
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
python3 scripts/audit_rust_workspace_rules.py
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets
|
|
cargo test -p ksp-onchain-transport-lib
|
|
cargo test -p ksp-app-config-desk --test desktop_contract
|
|
cargo test -p ksp-app-wallet-desk --test desktop_contract
|
|
cargo test --workspace
|
|
```
|
|
|
|
Si ce checkpoint est vert, le commit attendu est :
|
|
|
|
```text
|
|
v0.2.7-pre.002-fix.001
|
|
```
|
|
|
|
La tranche suivante reste `0.2.7-pre.003`.
|
|
|
|
## 11. Décisions prises
|
|
|
|
```text
|
|
le fix code porte bien un signal Cargo fix.1
|
|
les canaris desktop conservent un floor >= 0.2.6 au lieu d'une égalité à CARGO_PKG_VERSION
|
|
aucune modification fonctionnelle supplémentaire de la surface WebSocket
|
|
aucune synchronisation forcée des versions npm/Tauri avec les prereleases Cargo
|
|
```
|
|
|
|
## 12. Questions ouvertes
|
|
|
|
```text
|
|
aucune pour ce correctif
|
|
```
|