v0.2.1-pre.006-fix.001
This commit is contained in:
121
deltas/0.2.1/pre.006-fix.001.md
Normal file
121
deltas/0.2.1/pre.006-fix.001.md
Normal file
@@ -0,0 +1,121 @@
|
||||
<!-- file: deltas/0.2.1/pre.006-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# `0.2.1-pre.006-fix.001` — inventaire Config Desk et routing debug Transport ciblé
|
||||
|
||||
## Base
|
||||
|
||||
Base attendue :
|
||||
|
||||
```text
|
||||
v0.2.1-pre.006
|
||||
```
|
||||
|
||||
La validation utilisateur de `pre.006` a confirmé :
|
||||
|
||||
- `cargo fmt --all` propre ;
|
||||
- `cargo check --workspace` propre ;
|
||||
- `cargo clippy --workspace --all-targets` propre ;
|
||||
- `cargo test -p ksp-config-lib` : 95 unit tests + 5 ownership + 13 public API, propres ;
|
||||
- `cargo test -p ksp-onchain-transport-lib` : 70 unit tests + 8 public API, propres ;
|
||||
- `cargo test -p ksp-core-lib` : 14 unit tests + 3 public API + 2 workspace dependencies + 1 workspace logging, propres ;
|
||||
- `cargo test --workspace` échoue uniquement sur `ksp-app-config-desk::profiles::tests::profile_inventory_exposes_logging_default_and_available_profiles`, qui attend encore un seul document profilé alors que `cfg.std.transport` est désormais le second ;
|
||||
- les audits `cargo tree` Config montrent la dépendance interne attendue `ksp-config-lib -> ksp-onchain-transport-lib`, sans nouvelle dépendance externe volontaire ; le doublon `syn 2/3` reste transitif.
|
||||
|
||||
## Problème 1 — inventaire Profils Config Desk
|
||||
|
||||
Le panneau Profils est volontairement générique et parcourt les documents Config enregistrés qui exposent `default_profile` / `profiles`. Le test historique supposait cependant que seul `cfg.std.logging` possédait ce contrat et imposait `inventory.len() == 1`.
|
||||
|
||||
`pre.006` ajoute légitimement `cfg.std.transport`, donc cette assertion est devenue obsolète alors que l'implémentation runtime se comporte correctement.
|
||||
|
||||
### Correction
|
||||
|
||||
Le test devient `profile_inventory_exposes_registered_standard_profile_documents` et vérifie :
|
||||
|
||||
- présence de `cfg.std.logging` ;
|
||||
- présence de `cfg.std.transport` ;
|
||||
- pour chaque document retourné, `default_profile` est non vide et appartient à `profile_ids`.
|
||||
|
||||
Le test ne fige plus le nombre total de documents profilés, afin que l'ajout futur d'un autre document standard ne provoque pas la même régression artificielle.
|
||||
|
||||
## Problème 2 — verbosité Transport pendant le développement actif
|
||||
|
||||
Le target `ksp-onchain-transport-lib` est désormais explicite et stable. Pendant le développement actif de `0.2.1`, ses événements `debug` doivent pouvoir être inspectés sans relever toute la configuration Logging au niveau `debug`.
|
||||
|
||||
La solution retenue utilise la granularité déjà possédée par `ksp-logging-lib` :
|
||||
|
||||
```text
|
||||
default_filter = warn
|
||||
console.filter.level = info
|
||||
file.all.info = info
|
||||
ksp-config-lib = info
|
||||
ksp-logging-lib = info
|
||||
ksp-app-config-desk = info
|
||||
ksp-onchain-transport-lib = debug
|
||||
file.onchain_transport.debug = debug / target ksp-onchain-transport-lib uniquement
|
||||
```
|
||||
|
||||
Nouveau sink canonique :
|
||||
|
||||
```text
|
||||
output_id = file.onchain_transport.debug
|
||||
path = transport/onchain/ksp-onchain-transport-debug.log
|
||||
level = debug
|
||||
targets = [ksp-onchain-transport-lib]
|
||||
domains = [*]
|
||||
```
|
||||
|
||||
Le `target_filter` Transport à `debug` autorise ces événements au niveau du takeover global. Les filtres de sortie maintiennent cependant la console et `file.all.info` à `info`; les événements Transport `debug` sont donc persistés uniquement dans le fichier dédié.
|
||||
|
||||
Aucun profil global `debug` n'est ajouté : cette option produirait inutilement davantage d'événements pour les autres crates.
|
||||
|
||||
## Règle Logging
|
||||
|
||||
Ajout de `DEP-LOG-012` : lorsqu'une seule crate/target nécessite temporairement `debug`/`trace`, KSP privilégie un `target_filter` ciblé et un sink dédié plutôt qu'un relèvement global du profil.
|
||||
|
||||
Cette règle complète `KSP-APP-031` : la verbosité élevée reste temporaire pendant le développement/correctif de la crate concernée. La tranche finale `pre.007` doit réévaluer le niveau Transport et le ramener à `info`/`warn` avant la stable, sauf justification opératoire explicite.
|
||||
|
||||
Le plan actif `008` est synchronisé avec cette décision.
|
||||
|
||||
## Version
|
||||
|
||||
`workspace.package.version` passe à :
|
||||
|
||||
```text
|
||||
0.2.1-pre.6.fix.1
|
||||
```
|
||||
|
||||
Le fix touche un test Rust participant au workspace et la configuration runtime Logging canonique ; le signal Cargo est donc incrémenté.
|
||||
|
||||
## Fichiers modifiés
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
config/std.logging.json
|
||||
crates/ksp-app-config-desk/unit_tests/profiles.rs
|
||||
docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md
|
||||
docs/rules/RULES_DEPENDENCIES.md
|
||||
```
|
||||
|
||||
## Fichier ajouté
|
||||
|
||||
```text
|
||||
deltas/0.2.1/pre.006-fix.001.md
|
||||
```
|
||||
|
||||
`ROADMAP.md`, `pre.006.md` et les deltas historiques restent inchangés.
|
||||
|
||||
## Validation requise après application
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-app-config-desk
|
||||
cargo test -p ksp-config-lib
|
||||
cargo test -p ksp-onchain-transport-lib
|
||||
cargo test -p ksp-core-lib
|
||||
cargo test --workspace
|
||||
```
|
||||
|
||||
Aucun `cargo tree` supplémentaire n'est requis pour ce fix : aucune dépendance ni feature n'est modifiée.
|
||||
Reference in New Issue
Block a user