Files
khadhroony-solana-project/deltas/0.1.3/rel.001.md
2026-08-16 08:06:38 +02:00

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`.