Files
khadhroony-solana-project/deltas/0.1.1/pre.003-fix.001.md

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_api passent ;
  • cargo tree résout solana-pubkey 4.3.0 puis solana-address 2.7.0 ;
  • cargo tree -d ne 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 = true dans les crates membres ;
  • la centralisation des contraintes de version et options communes ;
  • la convention de contrainte caret ^M.m pour 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.