v0.1.1-pre.003-fix.001

This commit is contained in:
2026-08-14 15:40:48 +02:00
parent 75e5ec047f
commit 4a86a76ca8
6 changed files with 151 additions and 14 deletions

View File

@@ -0,0 +1,120 @@
<!-- file: deltas/0.1.1/pre.003-fix.001.md -->
<!-- version: 1 -->
# 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 :
```text
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 :
```bash
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 :
```toml
solana-pubkey = { version = "4.3.0", default-features = false }
```
La dépendance appartient désormais au manifeste workspace :
```toml
[workspace.dependencies]
solana-pubkey = { version = "^4.3", default-features = false }
```
La crate propriétaire la consomme uniquement par héritage :
```toml
[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
```text
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é
```text
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 :
```bash
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`.