Files
khadhroony-solana-project/deltas/0.2.5/pre.002-fix.002.md

3.6 KiB

Delta 0.2.5-pre.002-fix.002 — conformité Clippy du canari de frontière Wallet

Base requise

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 :

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 :

std::io::Result<Vec<PathBuf>>

et traite explicitement les erreurs de :

read_dir
lecture des DirectoryEntry
récursion dans les sous-répertoires

sans :

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 :

0.2.5-pre.2.fix.1 -> 0.2.5-pre.2.fix.2

Fichiers modifiés

Cargo.toml
crates/ksp-wallet-lib/tests/dependency_boundary.rs

Fichiers ajoutés

deltas/0.2.5/pre.002-fix.002.md

Fichiers supprimés

Aucun.

Fichiers volontairement inchangés

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

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

v0.2.5-pre.002-fix.002