183 lines
6.7 KiB
Markdown
183 lines
6.7 KiB
Markdown
<!-- file: deltas/0.1.3/rel.001.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.1.3-rel.001` — publication stable Configuration foundation
|
|
|
|
## Base requise
|
|
|
|
`0.1.3-pre.015` avec les correctifs documentaires `pre.015-fix.001` et `pre.015-fix.002`, au sens des commits de livraison correspondants, avec :
|
|
|
|
```text
|
|
workspace.package.version = "0.1.3-pre.15"
|
|
```
|
|
|
|
Les deux fixes de `pre.015` ne modifient pas la version Cargo.
|
|
|
|
## Objectif
|
|
|
|
Publier la release stable `0.1.3`, clôturer `Configuration foundation` et préparer l'ouverture de `0.1.4 — ksp-app-config-desk` sans ajouter de nouvelle fonctionnalité runtime.
|
|
|
|
## Version Cargo
|
|
|
|
`workspace.package.version` passe de :
|
|
|
|
```text
|
|
0.1.3-pre.15
|
|
```
|
|
|
|
à :
|
|
|
|
```text
|
|
0.1.3
|
|
```
|
|
|
|
Le header de `Cargo.toml` passe de version 60 à 61.
|
|
|
|
Aucune dépendance ni feature Cargo n'est ajoutée ou retirée par cette publication.
|
|
|
|
## Validations finales exécutées par le user
|
|
|
|
Commandes communiquées avec succès le 2026-08-16 sur `0.1.3-pre.15` après application de `pre.015-fix.001` et `pre.015-fix.002` :
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets
|
|
cargo test --workspace
|
|
cargo tree -p ksp-config-lib
|
|
cargo tree -p ksp-config-lib -d
|
|
cargo tree -p ksp-config-lib -e features
|
|
cargo tree -p ksp-config-lib -e normal
|
|
cargo tree -p ksp-logging-lib -d
|
|
```
|
|
|
|
Résultats communiqués :
|
|
|
|
- `cargo check --workspace` : succès ;
|
|
- `cargo clippy --workspace --all-targets` : succès sans warning communiqué ;
|
|
- `cargo test --workspace` : succès ;
|
|
- `ksp-config-lib` : 80 tests unitaires, 4 audits ownership et 11 tests publics réussis ;
|
|
- `ksp-core-lib` : 14 tests unitaires et 3 tests publics réussis ;
|
|
- `ksp-logging-lib` : 34 tests unitaires et toutes les intégrations exécutées réussies ; le probe d'overhead reste volontairement `ignored` par défaut ;
|
|
- `cargo tree -p ksp-config-lib -d` : seul doublon observé, `syn 2.0.119` / `syn 3.0.3`, transitif via `jsonschema` et ses dépendances ;
|
|
- `cargo tree -p ksp-config-lib -e normal` : graphe runtime cohérent avec Core, Logging, `serde`, `serde_json` et `jsonschema` ;
|
|
- `cargo tree -p ksp-logging-lib -d` : aucun doublon.
|
|
|
|
## Surface stable publiée
|
|
|
|
`0.1.3` stabilise notamment :
|
|
|
|
- `ksp-config-lib` comme propriétaire unique KSP des documents Config, schemas, profils, compositions, variables applicatives KSP/KSPB, `.env`, interpolation et persistence autorisée ;
|
|
- le bootstrap non récursif `cfgpath` / `schemapath` et les overrides physiques `--filemap=<file_id>=<filename>` ;
|
|
- le registre logique `file_id -> filename` et l'association logique document/schema ;
|
|
- parsing JSON, validation JSON Schema Draft 2020-12 et validation sémantique KSP ;
|
|
- globals, `default_profile`, profils, provenance de sélection et compositions par `file_id` ;
|
|
- priorité `process environment > .env > fallback > missing`, avec chaîne vide explicitement définie ;
|
|
- placeholders `${NAME}` et `${NAME:-fallback}` sous contrôle exclusif de Config ;
|
|
- sensibilité `Public` / `Internal` / `Secret`, valeurs réelle/sûre et provenance par segment/pointeur JSON ;
|
|
- redaction des secrets dans les surfaces sûres et accès réel explicite pour les consumers/management légitimes ;
|
|
- `Config -> ksp_logging_lib::LoggingSettings`, validation effective de `logs_directory`, console, multi-sinks, formats, rotations, targets et domains ;
|
|
- management typé de `std.logging.json`, lecture management du source brut et persistence atomique ;
|
|
- create/update/remove `.env`, preservation des commentaires/lignes non ciblées, permissions existantes et mode `0600` pour un nouveau `.env` sur Unix ;
|
|
- rapports de changement distinguant source/effective/shadowing/reload ;
|
|
- audits d'ownership empêchant les crates hors Config de contourner Config pour les variables KSP/KSPB ou les ressources physiques gérées ;
|
|
- audit automatique de couverture `.env.example` ;
|
|
- documentation durable `ksp-config-lib/README.md`, `USAGE.md` et `TODO.md`.
|
|
|
|
La release complète également `ksp-logging-lib` avec les capacités nécessaires au contrat `std.logging.json` : settings multi-output, runtime multi-sink, routing niveau/target/domain, formats et hot reload transactionnel, sans introduire de dépendance inverse Logging -> Config.
|
|
|
|
## Documentation de clôture
|
|
|
|
Le présent delta :
|
|
|
|
- ajoute `0.1.3` en tête de `CHANGELOG.md` ;
|
|
- marque `0.1.3` réalisée dans `ROADMAP.md` ;
|
|
- clôt `005-V0_1_3_CONFIG_FOUNDATION_PLAN.md` comme plan historique ;
|
|
- actualise les index docs/plans et la séquence fonctionnelle ;
|
|
- corrige dans le README racine l'ancienne mention `apps/` : les packages Rust KSP, y compris les applications Tauri, vivent directement sous `crates/` selon la convention workspace retenue ;
|
|
- conserve `prompts/004-V0_1_4_START_PROMPT.md` comme prompt final d'ouverture de la release suivante.
|
|
|
|
## Fichiers ajoutés
|
|
|
|
```text
|
|
deltas/0.1.3/rel.001.md
|
|
```
|
|
|
|
## Fichiers modifiés
|
|
|
|
```text
|
|
Cargo.toml
|
|
CHANGELOG.md
|
|
ROADMAP.md
|
|
README.md
|
|
docs/000-README.md
|
|
docs/plans/000-README.md
|
|
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
|
|
docs/plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md
|
|
```
|
|
|
|
## Fichiers supprimés
|
|
|
|
Aucun.
|
|
|
|
## Décisions
|
|
|
|
Aucune nouvelle décision fonctionnelle Config n'est introduite par `rel.001`.
|
|
|
|
La publication stable confirme les décisions prises pendant `0.1.3`, notamment l'ownership exclusif de Config, la séparation source/effective, la politique de sensibilité/redaction, la persistence atomique et la frontière Config -> Logging.
|
|
|
|
Les conventions Tauri ajoutées dans `pre.015-fix.001/.002` servent de contraintes d'entrée pour `0.1.4`, mais leur implémentation appartient à cette release suivante.
|
|
|
|
## Validation du commit stable
|
|
|
|
Ce delta modifie `Cargo.toml` et de la documentation, mais aucun fichier Rust. Conformément aux règles KSP, `cargo fmt --all` n'est pas requis par une modification Rust dans ce delta.
|
|
|
|
Avant publication/tag, exécuter sur `workspace.package.version = "0.1.3"` :
|
|
|
|
```bash
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets
|
|
cargo test --workspace
|
|
cargo tree -p ksp-config-lib
|
|
cargo tree -p ksp-config-lib -d
|
|
cargo tree -p ksp-config-lib -e normal
|
|
cargo tree -p ksp-logging-lib -d
|
|
```
|
|
|
|
`cargo test --workspace` est approprié ici car il s'agit précisément de la fermeture d'une version stable.
|
|
|
|
## Publication Git
|
|
|
|
Après validation du delta :
|
|
|
|
1. vérifier le working tree ;
|
|
2. créer le commit de release :
|
|
|
|
```text
|
|
v0.1.3-rel.001
|
|
```
|
|
|
|
3. créer le tag stable :
|
|
|
|
```text
|
|
v0.1.3
|
|
```
|
|
|
|
Aucun tag des prereleases/fixes intermédiaires n'est requis.
|
|
|
|
## Suite
|
|
|
|
Après le tag `v0.1.3`, ouvrir :
|
|
|
|
```text
|
|
0.1.4-pre.001
|
|
```
|
|
|
|
avec :
|
|
|
|
```text
|
|
prompts/004-V0_1_4_START_PROMPT.md
|
|
```
|
|
|
|
`0.1.4-pre.001` commence par brainstorming, audit de la base Tauri de khadhroony-bot3 et planification détaillée avant implémentation de `ksp-app-config-desk`.
|