3.3 KiB
Delta 0.1.1-pre.003-fix.001 — Cargo workspace + Clippy
Statut
Correctif de 0.1.1-pre.003 après application et validation partielle de la tranche par le user.
Version technique du correctif :
workspace.package.version = "0.1.1-pre.3.fix.1"
Le périmètre fonctionnel de pre.003 ne change pas.
Base et validations reçues
Sur 0.1.1-pre.3, le user a exécuté avec succès :
cargo fmt --all
cargo check --workspace
cargo test --workspace
cargo tree -p ksp-core-lib
cargo tree -p ksp-core-lib -d
Résultats communiqués :
- 14 tests unitaires passent ;
- 3 tests d'intégration
public_apipassent ; cargo treerésoutsolana-pubkey 4.3.0puissolana-address 2.7.0;cargo tree -dne rapporte aucun doublon.
cargo clippy --workspace --all-targets échoue sur trois closures de program_ids.rs à cause de la règle workspace clippy::implicit_return = deny.
Correction Cargo
La déclaration directe suivante dans crates/ksp-core-lib/Cargo.toml est supprimée :
solana-pubkey = { version = "4.3.0", default-features = false }
La dépendance appartient désormais au manifeste workspace :
[workspace.dependencies]
solana-pubkey = { version = "^4.3", default-features = false }
La crate propriétaire la consomme uniquement par héritage :
[dependencies]
solana-pubkey.workspace = true
La contrainte ^4.3 exprime la génération compatible voulue par KSP ; le patch concret reste résolu par Cargo/lockfile.
Règles ajoutées
docs/rules/RULES_DEPENDENCIES.md ajoute DEP-CARGO-001 à DEP-CARGO-005 afin de rendre obligatoire :
- la centralisation des dépendances externes sous
[workspace.dependencies]; - l'usage de
.workspace = truedans les crates membres ; - la centralisation des contraintes de version et options communes ;
- la convention de contrainte caret
^M.mpour une génération majeure/mineure compatible ; - la distinction entre contrainte de manifeste et résolution concrète du lockfile.
Correction Clippy
Les trois closures signalées utilisent maintenant un return explicite dans leur corps :
- filtre générique de
program_ids(...); - recherche texte
find_program_id(...); - recherche typée
find_program_pubkey(...).
Aucune signature ni sémantique de l'API publique ne change.
Documentation
docs/plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md est aligné sur la nouvelle règle Cargo et documente la contrainte workspace ^4.3 au lieu d'une déclaration locale 4.3.0.
Fichiers modifiés
Cargo.toml
crates/ksp-core-lib/Cargo.toml
crates/ksp-core-lib/src/program_ids.rs
docs/plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md
docs/rules/RULES_DEPENDENCIES.md
Fichier ajouté
deltas/0.1.1/pre.003-fix.001.md
Validations de ce correctif
Non exécutées dans l'environnement de préparation du delta, qui ne fournit pas la toolchain Cargo/Rust du dépôt.
À exécuter après application :
cargo fmt --all
cargo check --workspace
cargo test --workspace
cargo clippy --workspace --all-targets
cargo tree -p ksp-core-lib
cargo tree -p ksp-core-lib -d
Hors scope
Ce correctif n'ajoute ni Program ID, ni dépendance, ni primitive Core supplémentaire et ne démarre pas 0.1.1-pre.004.