v0.2.5-pre.002-fix.002
This commit is contained in:
132
deltas/0.2.5/pre.002-fix.002.md
Normal file
132
deltas/0.2.5/pre.002-fix.002.md
Normal file
@@ -0,0 +1,132 @@
|
||||
<!-- file: deltas/0.2.5/pre.002-fix.002.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.2.5-pre.002-fix.002` — conformité Clippy du canari de frontière Wallet
|
||||
|
||||
## Base requise
|
||||
|
||||
```text
|
||||
livraison : 0.2.5-pre.002-fix.001
|
||||
workspace.package.version = "0.2.5-pre.2.fix.1"
|
||||
```
|
||||
|
||||
La base fonctionnelle reste l'archive Gitea opérateur `0.2.5-pre.002`, complétée par le delta `pre.002-fix.001` déjà appliqué. Aucun fichier historique n'est réécrit.
|
||||
|
||||
## Motif
|
||||
|
||||
La validation opérateur après `pre.002-fix.001` donne :
|
||||
|
||||
```text
|
||||
cargo fmt --all OK
|
||||
cargo check --workspace OK
|
||||
cargo clippy --workspace --all-targets ECHEC
|
||||
cargo test -p ksp-wallet-lib OK
|
||||
```
|
||||
|
||||
Clippy rejette deux appels à `expect()` dans le helper d'intégration `rust_source_files()` de `crates/ksp-wallet-lib/tests/dependency_boundary.rs` au titre de `clippy::expect_used`.
|
||||
|
||||
`RUST-ERR-006` n'autorise `unwrap`/`expect` dans les tests que dans la limite permise par la configuration Clippy. `allow-expect-in-tests = true` couvre les fonctions `#[test]`, mais le helper concerné n'est pas lui-même une fonction `#[test]`. Pour rendre le canari robuste et homogène, le correctif retire en plus les autres `expect()` de ce fichier d'intégration au lieu de dépendre de cette exception locale.
|
||||
|
||||
## Correction
|
||||
|
||||
`rust_source_files()` retourne désormais :
|
||||
|
||||
```text
|
||||
std::io::Result<Vec<PathBuf>>
|
||||
```
|
||||
|
||||
et traite explicitement les erreurs de :
|
||||
|
||||
```text
|
||||
read_dir
|
||||
lecture des DirectoryEntry
|
||||
récursion dans les sous-répertoires
|
||||
```
|
||||
|
||||
sans :
|
||||
|
||||
```text
|
||||
unwrap
|
||||
expect
|
||||
?
|
||||
allow local de lint
|
||||
```
|
||||
|
||||
Les deux fonctions `#[test]` retournent elles-mêmes `std::io::Result<()>` et propagent explicitement les erreurs filesystem. Le fichier d'intégration ne contient donc plus aucun `unwrap()` ni `expect()`.
|
||||
|
||||
Aucun comportement de `ksp-wallet-lib`, aucun contrat VIEW/OWNER, aucune dépendance et aucun format `.kspwallet` ne changent.
|
||||
|
||||
## Version Cargo
|
||||
|
||||
Le correctif modifie une source Rust participant au build de tests. Conformément à `VER-ID-007` et `VER-ID-010` :
|
||||
|
||||
```text
|
||||
0.2.5-pre.2.fix.1 -> 0.2.5-pre.2.fix.2
|
||||
```
|
||||
|
||||
## Fichiers modifiés
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
crates/ksp-wallet-lib/tests/dependency_boundary.rs
|
||||
```
|
||||
|
||||
## Fichiers ajoutés
|
||||
|
||||
```text
|
||||
deltas/0.2.5/pre.002-fix.002.md
|
||||
```
|
||||
|
||||
## Fichiers supprimés
|
||||
|
||||
Aucun.
|
||||
|
||||
## Fichiers volontairement inchangés
|
||||
|
||||
```text
|
||||
crates/ksp-wallet-lib/src/**
|
||||
deltas/0.2.5/pre.002.md
|
||||
deltas/0.2.5/pre.002-fix.001.md
|
||||
docs/**
|
||||
ROADMAP.md
|
||||
CHANGELOG.md
|
||||
```
|
||||
|
||||
## Validations déjà exécutées par l'opérateur sur `pre.002-fix.001`
|
||||
|
||||
- `cargo fmt --all` : OK ;
|
||||
- `cargo check --workspace` : OK ;
|
||||
- `cargo clippy --workspace --all-targets` : échec uniquement sur les deux `expect()` du helper `rust_source_files()` ;
|
||||
- `cargo test -p ksp-wallet-lib` : OK :
|
||||
- 7 unit tests ;
|
||||
- 2 dependency-boundary tests ;
|
||||
- 4 public API tests ;
|
||||
- 2 doctests `compile_fail`.
|
||||
|
||||
## Validation attendue après application
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-wallet-lib
|
||||
```
|
||||
|
||||
À la clôture de la tranche Rust, `cargo test --workspace` reste également requis par `RUST` selon le checkpoint de session retenu.
|
||||
|
||||
## Décisions
|
||||
|
||||
- ne pas contourner `clippy::expect_used` par un `#[allow]` local ;
|
||||
- ne conserver aucun `unwrap()`/`expect()` dans ce canari d'intégration, même là où l'exception Clippy les aurait autorisés ;
|
||||
- ne pas utiliser `?`, également interdit par les lints workspace ;
|
||||
- ne pas élargir le périmètre fonctionnel de `pre.002`.
|
||||
|
||||
## Questions ouvertes
|
||||
|
||||
Aucune nouvelle question fonctionnelle introduite par ce correctif.
|
||||
|
||||
## Commit attendu
|
||||
|
||||
```text
|
||||
v0.2.5-pre.002-fix.002
|
||||
```
|
||||
Reference in New Issue
Block a user