Files
khadhroony-solana-project/deltas/0.2.1/pre.005-fix.001.md

64 lines
2.9 KiB
Markdown

<!-- file: deltas/0.2.1/pre.005-fix.001.md -->
<!-- version: 1 -->
# `0.2.1-pre.005-fix.001` — normalisation des targets Logging KSP
## Base
- base fonctionnelle : `0.2.1-pre.005` ;
- validations utilisateur avant correctif : `cargo fmt --all`, `cargo check --workspace`, `cargo clippy --workspace --all-targets`, tests Transport, Core et workspace propres ;
- le correctif répond à l'audit manuel du code de logging après cette validation.
## Problème corrigé
Transport utilisait `target: env!("CARGO_PKG_NAME")` dans ses émissions `ksp-logging-lib`. Ce mécanisme produit actuellement le bon texte mais ne matérialise pas le target comme contrat d'observabilité possédé par la crate. Config présentait en parallèle un target local dans `environment.rs` et un littéral équivalent dans `persistence.rs`.
## Décision
- toute crate KSP comportementale qui émet via `ksp-logging-lib` possède son target principal dans `src/constants.rs` sous `pub(crate) const TRACING_TARGET: &str` ;
- le target principal est égal au nom Cargo de la crate ;
- les callsites utilisent `crate::TRACING_TARGET` ou un target spécialisé également possédé par `constants.rs` ;
- `env!("CARGO_PKG_NAME")` reste autorisé lorsqu'il représente réellement une metadata Cargo, notamment le User-Agent HTTP ;
- les règles sont figées par `DEP-LOG-010` et `DEP-LOG-011`.
## Modifications
### Transport
- ajout de `crates/ksp-onchain-transport-lib/src/constants.rs` ;
- export crate-private de `TRACING_TARGET` depuis `lib.rs` ;
- remplacement des targets `env!("CARGO_PKG_NAME")` dans `settings.rs`, `rpc_method.rs`, `client.rs`, `pool.rs` et `executor.rs` ;
- conservation volontaire de `env!("CARGO_PKG_NAME")`/`CARGO_PKG_VERSION` pour le User-Agent HTTP.
### Config
- ajout de `crates/ksp-config-lib/src/constants.rs` ;
- export crate-private de `TRACING_TARGET` depuis `lib.rs` ;
- suppression du `LOGGING_TARGET` local de `environment.rs` ;
- remplacement du target littéral de `persistence.rs`.
### Gouvernance
- ajout de `DEP-LOG-010/011` dans `docs/rules/RULES_DEPENDENCIES.md` ;
- ajout de `crates/ksp-core-lib/tests/workspace_logging.rs`, canarie workspace vérifiant l'ownership explicite des targets des crates comportementales et interdisant les targets dérivés de `CARGO_PKG_NAME` ou les littéraux dispersés ;
- correction du plan actif `008` pour refléter la feature `reqwest/rustls` locale à Transport et la convention de target explicite ;
- aucun changement de `ROADMAP.md`.
## Version
`workspace.package.version` passe à `0.2.1-pre.5.fix.1` car le correctif modifie du code Rust participant au runtime.
## Validation requise après application
```bash
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib
cargo test -p ksp-config-lib
cargo test -p ksp-core-lib
cargo test --workspace
```
Aucun `cargo tree` supplémentaire n'est requis : le graphe de dépendances et les features ne changent pas.