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

2.9 KiB

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

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.