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

128 lines
3.2 KiB
Markdown

<!-- file: deltas/0.1.1/pre.002-fix.001.md -->
<!-- version: 1 -->
# Delta 0.1.1-pre.002-fix.001
## Base requise
Commit de livraison attendu :
```text
v0.1.1-pre.002
```
La version Cargo reste :
```text
0.1.1-pre.2
```
Ce correctif ne modifie aucun contrat public de `ksp-core-lib` et ne justifie donc aucune nouvelle prerelease Cargo.
## Objectif
Corriger les deux warnings remontés par les validations réelles de `0.1.1-pre.002` avant d'ouvrir `0.1.1-pre.003`.
Les validations exécutées sur le dépôt cible ont confirmé que :
- `cargo fmt --all` réussit ;
- `cargo check --workspace` réussit ;
- `cargo test --workspace` réussit avec 6 tests unitaires, 1 test d'intégration et 0 échec ;
- `cargo clippy --workspace --all-targets` termine sans erreur mais remonte deux warnings à corriger.
Warnings observés :
1. `clippy::extra_unused_type_parameters` sur le helper de vérification `Send + Sync` ;
2. `missing_docs` sur la crate de test d'intégration `tests/public_api.rs`.
## Fichiers modifiés
- `crates/ksp-core-lib/unit_tests/error.rs`
- `crates/ksp-core-lib/tests/public_api.rs`
## Fichier ajouté
- `deltas/0.1.1/pre.002-fix.001.md`
## Fichiers supprimés
Aucun.
## Correction `Send + Sync`
Le helper de test :
```text
assert_send_sync<T>()
```
utilisait `T` uniquement dans ses bornes de trait. Clippy considère alors le paramètre de type comme inutilisé avec `extra_unused_type_parameters`.
Le helper reçoit désormais un `std::marker::PhantomData<T>` :
```text
assert_send_sync<T>(PhantomData<T>)
```
et le test fournit `PhantomData<crate::Error>`.
Cette forme conserve exactement l'objectif du test de compilation : l'appel ne compile que si `crate::Error` satisfait `Send + Sync`, tout en utilisant réellement le paramètre générique et sans ajouter de dépendance, d'import ou de logique runtime significative.
## Correction `missing_docs`
Le test d'intégration `crates/ksp-core-lib/tests/public_api.rs` constitue une crate Rust indépendante lors de sa compilation.
Une rustdoc crate-level est ajoutée :
```text
//! Integration tests for the public `ksp-core-lib` error contract.
```
Cela satisfait le lint workspace `missing_docs = warn` sans désactiver le lint et sans documenter artificiellement les helpers privés du test.
## Headers de fichiers
Les deux fichiers Rust modifiés passent de :
```text
version: 1
```
à :
```text
version: 2
```
## Contrat public
Aucun changement.
Les éléments suivants restent strictement identiques à `0.1.1-pre.002` :
```text
ksp_core_lib::Error
ksp_core_lib::ErrorCode
ksp_core_lib::ErrorContext
ksp_core_lib::Result<T>
```
Le plan `docs/plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md` reste en version documentaire 5 : aucune décision d'architecture ou d'API n'est modifiée par ce correctif.
## Dépendances
Aucune dépendance ajoutée ou modifiée.
## Validations à exécuter après application
```bash
cargo fmt --all
cargo check --workspace
cargo test --workspace
cargo clippy --workspace --all-targets
```
Le résultat attendu de ce correctif est l'absence des deux warnings qui ont motivé `pre.002-fix.001`.
Aucune validation du correctif lui-même n'est déclarée réussie tant que ces commandes n'ont pas été exécutées sur le dépôt cible.