6.0 KiB
Delta 0.2.1-pre.002-fix.001 — nettoyage Clippy et documentation des tests
Base requise
release : 0.2.1
prerelease corrigée : pre.002
identifiant de commit attendu : v0.2.1-pre.002-fix.001
workspace.package.version : 0.2.1-pre.2.fix.1
base : v0.2.1-pre.002
Le correctif est ouvert à partir de la validation locale transmise après application de pre.002.
Objectif
Corriger exclusivement les warnings révélés par cargo clippy --workspace --all-targets et cargo test, sans modifier le périmètre fonctionnel ni les contrats publics introduits par pre.002 :
- supprimer trois usages de
assert!(false, ...)signalés parclippy::assertions_on_constantsdans les tests unitaires ; - appliquer les deux simplifications
clippy::collapsible_ifdans la validation des settings ; - documenter les deux crates de tests d'intégration afin de satisfaire
missing_docs; - conserver inchangés le registre 52 current + 14 historiques, les settings publics, les envelopes JSON-RPC, les codes d'erreur, les descriptors et le firewall de dépendances.
Version Cargo
Le correctif touche du Rust de production et de test. Conformément à VER-ID-007 et VER-ID-010 :
0.2.1-pre.2 -> 0.2.1-pre.2.fix.1
Toutes les crates membres continuent d'hériter version.workspace = true.
Corrections Rust
Validation des settings
Les deux validations imbriquées suivantes sont exprimées sous forme de let-chain Rust 2024 :
max_idle_connections_per_host = Some(0)
pause_after_rate_limit = Some(Duration::ZERO)
La sémantique reste strictement identique : les valeurs nulles configurées restent rejetées avec ERROR_CODE_INVALID_SETTINGS.
Tests JSON-RPC
Les tests qui validaient la variante attendue avec un match et assert!(false, ...) utilisent désormais :
- une assertion
matches!sur la variante attendue ; - un
if letpour vérifier le payload de cette variante.
Aucun panic!/unreachable! explicite n'est introduit.
Test de matrice de couverture
Le cas HttpRpcCoverageRelease::Historical rencontré dans current_http_rpc_methods() est désormais comptabilisé dans un compteur local puis vérifié avec :
historical == 0
La preuve reste donc explicite sans assertion constante fausse.
Tests d'intégration
Les targets Cargo :
tests/public_api.rs
tests/dependency_boundary.rs
possèdent maintenant une documentation de crate //!, ce qui satisfait le lint workspace missing_docs sans masquer le warning global.
Graphe de dépendances
Les quatre commandes cargo tree ont été exécutées localement sur pre.002 avant ce fix.
Constats :
- aucune dépendance directe interdite Transport -> Config/Store/Program/tracing n'apparaît ;
reqwest 0.13.4reste la dépendance HTTP retenue parpre.002;cargo tree -dne rapporte comme duplication quesyn 2.0.119/syn 3.0.3, issue des chaînes proc-macro/ICU/Serde et ne justifiant pas une modification du graphe KSP dans ce correctif ;- aucune dépendance n'est ajoutée ou retirée par
fix.001.
Fichiers ajoutés
deltas/0.2.1/pre.002-fix.001.md
Fichiers modifiés
Cargo.toml
ROADMAP.md
crates/ksp-onchain-transport-lib/src/settings.rs
crates/ksp-onchain-transport-lib/unit_tests/json_rpc.rs
crates/ksp-onchain-transport-lib/unit_tests/rpc_method.rs
crates/ksp-onchain-transport-lib/tests/dependency_boundary.rs
crates/ksp-onchain-transport-lib/tests/public_api.rs
Fichiers supprimés
Aucun.
Validation de pre.002 ayant déclenché le correctif
Les commandes suivantes ont été exécutées par le user sur v0.2.1-pre.002 avant création du fix :
cargo fmt --all : exécuté
cargo check --workspace : OK
cargo clippy --workspace --all-targets : terminé avec warnings
cargo test -p ksp-onchain-transport-lib : OK, 40 tests passés
cargo test --workspace : OK ; 1 test diagnostic ignoré comme prévu
cargo tree -p ksp-onchain-transport-lib : exécuté
cargo tree -p ksp-onchain-transport-lib -d : exécuté
cargo tree -p ksp-onchain-transport-lib -e features : exécuté
cargo tree -p ksp-onchain-transport-lib -e normal : exécuté
Warnings observés et ciblés par ce fix :
3 x clippy::assertions_on_constants
2 x clippy::collapsible_if
2 x missing documentation for integration-test crate
Validations du correctif
Le sandbox de préparation ne possède pas cargo, rustc ni rustfmt. Les validations Rust du correctif ne peuvent donc pas y être exécutées et ne sont pas déclarées réussies.
Après application du delta, exécuter dans cet ordre :
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib
cargo test --workspace
Les quatre cargo tree ne sont pas obligatoires à répéter pour ce fix puisqu'aucune dépendance n'a changé. Ils peuvent être relancés si une vérification de non-régression du graphe est souhaitée.
Contrôles statiques effectués pendant la préparation
- aucune occurrence restante de
assert!(falsedans la crate Transport ; - les deux blocs signalés
collapsible_ifont été remplacés ; - les deux tests d'intégration possèdent une rustdoc de crate ;
- les headers/version des fichiers modifiés ont été incrémentés ;
pre.002.mdn'est pas modifié ;- le périmètre public de
pre.002reste inchangé.
Décisions prises
- ne pas masquer les lints par
#[allow(...)]; corriger leur cause ; - ne pas remplacer
assert!(false)parpanic!()ouunreachable!(); - ne pas modifier le graphe de dépendances pour le seul doublon
syn 2/3; - conserver ce travail sous un vrai
pre.002-fix.001, conformément à l'historique Git KSP.
Questions ouvertes
Aucune pour ce correctif. Après validation et commit, 0.2.1 peut reprendre avec la prerelease suivante prévue par le plan 008.