v0.1.1-pre.002-fix.001
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# file: Cargo.toml
|
||||
# version: 19
|
||||
# version: 20
|
||||
|
||||
[workspace]
|
||||
resolver = "3"
|
||||
members = ["crates/ksp-core-lib"]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.1.1-pre.2"
|
||||
version = "0.1.1-pre.2.fix.1"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// file: crates/ksp-core-lib/tests/public_api.rs
|
||||
// version: 1
|
||||
// version: 2
|
||||
|
||||
//! Integration tests for the public `ksp-core-lib` error contract.
|
||||
|
||||
fn public_result() -> ksp_core_lib::Result<()> {
|
||||
let error = ksp_core_lib::Error::new(ksp_core_lib::ErrorCode::new("consumer", "failed"), "consumer failure").with_context("operation", "public_api");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-core-lib/unit_tests/error.rs
|
||||
// version: 1
|
||||
// version: 2
|
||||
|
||||
#[derive(Debug)]
|
||||
struct TestSource;
|
||||
@@ -12,7 +12,7 @@ impl std::fmt::Display for TestSource {
|
||||
|
||||
impl std::error::Error for TestSource {}
|
||||
|
||||
fn assert_send_sync<T>()
|
||||
fn assert_send_sync<T>(_: std::marker::PhantomData<T>)
|
||||
where
|
||||
T: std::marker::Send + std::marker::Sync,
|
||||
{
|
||||
@@ -73,6 +73,6 @@ fn standard_source_is_preserved() {
|
||||
|
||||
#[test]
|
||||
fn common_error_is_send_and_sync() {
|
||||
assert_send_sync::<crate::Error>();
|
||||
assert_send_sync(std::marker::PhantomData::<crate::Error>);
|
||||
return;
|
||||
}
|
||||
|
||||
127
deltas/0.1.1/pre.002-fix.001.md
Normal file
127
deltas/0.1.1/pre.002-fix.001.md
Normal file
@@ -0,0 +1,127 @@
|
||||
<!-- 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.
|
||||
Reference in New Issue
Block a user