v0.1.3-pre.008
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
<!-- file: docs/plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md -->
|
||||
<!-- version: 10 -->
|
||||
<!-- version: 11 -->
|
||||
|
||||
# Plan `0.1.3` — Configuration foundation
|
||||
|
||||
## 1. Statut et objectif
|
||||
|
||||
Ce plan a été établi par `0.1.3-pre.001`, corrigé par `0.1.3-pre.001-fix.001/.002/.003`, puis exécuté par petites tranches. `pre.002` a livré le bootstrap Config, `pre.003` le registre `file_id`, `pre.004` les contrats publics multi-output de Logging, `pre.005` le runtime multi-sink sur niveau/target/formats, `pre.006` le routing structuré `domain` et `pre.007` introduit le moteur JSON/JSON Schema ainsi que le premier document runtime `std.logging.json`. La prochaine tranche est `pre.008` pour la résolution des globals/profils/`default_profile`.
|
||||
Ce plan a été établi par `0.1.3-pre.001`, corrigé par `0.1.3-pre.001-fix.001/.002/.003`, puis exécuté par petites tranches. `pre.002` a livré le bootstrap Config, `pre.003` le registre `file_id`, `pre.004` les contrats publics multi-output de Logging, `pre.005` le runtime multi-sink sur niveau/target/formats, `pre.006` le routing structuré `domain`, `pre.007` le moteur JSON/JSON Schema et `pre.008` la résolution des globals/profils/`default_profile`. La prochaine tranche est `pre.009` pour les compositions génériques par `file_id`.
|
||||
|
||||
La base auditée reste la release stable `v0.1.2`.
|
||||
|
||||
@@ -1722,13 +1722,21 @@ Aucune dépendance à `ksp-logging-lib` n'est encore nécessaire dans Config : l
|
||||
|
||||
### `0.1.3-pre.008` — globals + profils + `default_profile`
|
||||
|
||||
- paramètres globaux hors profils ;
|
||||
- `profile_id` unique ;
|
||||
- `default_profile` autonome ;
|
||||
- sélection/résolution d'un profil spécialisé ;
|
||||
- héritage/usage des paramètres globaux par les profils selon le contrat retenu ;
|
||||
- provenance document/global/profile ;
|
||||
- tests sur `std.logging.json`.
|
||||
Tranche livrée :
|
||||
|
||||
- tout document standard possédant `default_profile` + `profiles` est soumis au contrat générique de profils Config ;
|
||||
- les `profile_id` doivent être uniques dans le document ;
|
||||
- `default_profile` reste une propriété globale autonome et doit référencer exactement un `profile_id` existant ;
|
||||
- `ConfigDocumentEngine::load_resolved_profile(file_id, requested_profile)` sélectionne soit le profil par défaut (`None`), soit un profil explicite (`Some(profile_id)`) ;
|
||||
- une sélection explicite inconnue retourne `config.profile_not_found` sans rendre le document source invalide ;
|
||||
- `ResolvedConfigProfile` conserve le `file_id`, le path source, le `profile_id` sélectionné, la source de sélection, les globals, le profil et une vue effective ;
|
||||
- les globals sont toutes les propriétés top-level hors clés réservées `default_profile` et `profiles` ;
|
||||
- la vue effective fusionne les globals puis les propriétés du profil sélectionné ; une clé du profil, si elle existe aussi globalement dans un futur schema, est déterministement prioritaire ;
|
||||
- `ConfigValueOrigin::{Global, Profile}` conserve la provenance top-level de chaque clé effective ;
|
||||
- aucune interpolation `${...}`, aucun override composite et aucune sensibilité ne sont encore appliqués à cette vue ; ces couches seront ajoutées sans faire perdre la provenance déjà portée ;
|
||||
- les tests couvrent le profil par défaut commité, la sélection explicite, la provenance global/profile, un profil demandé absent, les `profile_id` dupliqués et un `default_profile` orphelin.
|
||||
|
||||
La validation utilisateur de `pre.007` est acquise : `fmt/check/clippy/test` passent, le moteur Config compte 28 tests unitaires + 5 tests publics et `jsonschema` avec `default-features = false` n'introduit pas de stack HTTP/TLS. Le seul doublon signalé par `cargo tree -d` est `syn 2`/`syn 3`, transitif via l'écosystème `jsonschema` et sans duplication de crate runtime KSP à corriger dans cette tranche.
|
||||
|
||||
### `0.1.3-pre.009` — compositions génériques par `file_id`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user