64 lines
2.9 KiB
Markdown
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.
|