v0.1.3-rel.001

This commit is contained in:
2026-08-16 08:06:38 +02:00
parent 8279241144
commit 513f57dd21
9 changed files with 214 additions and 22 deletions

View File

@@ -1,15 +1,15 @@
<!-- file: docs/plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md -->
<!-- version: 18 -->
<!-- version: 19 -->
# 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`, `pre.007` le moteur JSON/JSON Schema, `pre.008` la résolution des globals/profils/`default_profile`, `pre.009` les compositions génériques par `file_id`, `pre.010` le snapshot process + `.env` et le resolver `${...}`, `pre.011` la sensibilité et les représentations real/safe/provenance, puis `pre.012` l'adapter Config -> Logging. `pre.013` a livré management + persistence JSON/.env et son `fix.001` a corrigé la syntaxe du warning de cleanup. `pre.014` a livré les ownership audits exécutables et la robustesse de frontière puis a été validée intégralement par l'utilisateur. `pre.015` est la prerelease finale : elle consolide la documentation durable, ferme/reporte explicitement les TODO, introduit le changelog général stable, prépare le prompt `0.1.4` et place `0.1.3` en attente de `rel.001`.
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 jusqu'à `pre.015` et ses fixes documentaires. La validation finale de `pre.015-fix.002` a été communiquée le 2026-08-16 avec `cargo check --workspace`, `cargo clippy --workspace --all-targets`, `cargo test --workspace` et les audits `cargo tree` Config/Logging attendus. `0.1.3-rel.001` publie désormais cette fondation sous la version stable `0.1.3`; le présent document devient un plan historique clôturé.
La base auditée reste la release stable `v0.1.2`.
La release `0.1.3` introduira `ksp-config-lib` comme **propriétaire unique KSP de la configuration applicative**. À terme, les autres crates et applications KSP ne doivent pas :
La release stable `0.1.3` introduit `ksp-config-lib` comme **propriétaire unique KSP de la configuration applicative**. À terme, les autres crates et applications KSP ne doivent pas :
- lire directement les documents JSON de configuration ;
- valider elles-mêmes ces documents contre leurs schémas ;
@@ -1893,7 +1893,11 @@ Tranche livrée :
- aucune nouvelle API, dépendance, variable runtime ou ressource Config exécutable ;
- `ROADMAP.md` reste en `[/]` pour `0.1.3` jusqu'à validation de cette prerelease et publication `rel.001`.
Après validation de `pre.015`, la seule étape de `0.1.3` est la livraison `rel.001` : passage Cargo à `0.1.3`, synchronisation du changelog/roadmap/plans, puis tag `v0.1.3` sur le commit stable validé.
`pre.015-fix.001` a ensuite figé les règles de validation courante/ciblée, les README/USAGE de clôture et le modèle documentaire Tauri (`PRESENTATION.md` uniquement lorsqu'une présentation UI existe). `pre.015-fix.002` a figé l'usage de la stack Tauri tracing — et non `tauri-plugin-log` — ainsi que les critères fonctionnels minimaux de `0.1.4` pour la gestion multi-profils Logging et le hot reload observable.
La validation finale de `pre.015-fix.002` est acquise le 2026-08-16 : `cargo check --workspace`, `cargo clippy --workspace --all-targets`, `cargo test --workspace`, `cargo tree -p ksp-config-lib`, `-d`, `-e features`, `-e normal` et `cargo tree -p ksp-logging-lib -d` passent. Les tests rapportés comprennent 80 tests unitaires Config, 4 audits ownership, 11 tests publics Config, 14 tests unitaires Core + 3 publics, 34 tests unitaires Logging et toutes ses intégrations exécutées; le probe d'overhead reste volontairement ignoré par défaut. Le seul doublon Config observé reste `syn 2`/`syn 3` transitif via `jsonschema`; Logging n'a aucun doublon signalé.
`0.1.3-rel.001` clôt la release : `workspace.package.version = "0.1.3"`, changelog/roadmap/index synchronisés, puis tag `v0.1.3` après validation du commit stable.
Le découpage reste souple. Tout dépassement du budget de tranche est corrigé par une nouvelle scission explicite ; le nombre de prereleases n'est pas une cible à minimiser.