121 lines
3.3 KiB
Markdown
121 lines
3.3 KiB
Markdown
<!-- 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`.
|