v0.1.3-rel.001
This commit is contained in:
182
deltas/0.1.3/rel.001.md
Normal file
182
deltas/0.1.3/rel.001.md
Normal file
@@ -0,0 +1,182 @@
|
||||
<!-- 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`.
|
||||
Reference in New Issue
Block a user