v0.1.2-pre.006
This commit is contained in:
213
deltas/0.1.2/pre.006.md
Normal file
213
deltas/0.1.2/pre.006.md
Normal file
@@ -0,0 +1,213 @@
|
||||
<!-- file: deltas/0.1.2/pre.006.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.1.2-pre.006
|
||||
|
||||
## Base requise
|
||||
|
||||
Livraison précédente validée :
|
||||
|
||||
```text
|
||||
0.1.2-pre.005-fix.001
|
||||
```
|
||||
|
||||
La base porte :
|
||||
|
||||
```text
|
||||
workspace.package.version = "0.1.2-pre.5.fix.1"
|
||||
Cargo.toml header version = 37
|
||||
```
|
||||
|
||||
## Validation de la base
|
||||
|
||||
La validation utilisateur de `pre.005-fix.001` est propre :
|
||||
|
||||
```text
|
||||
cargo fmt --all OK
|
||||
cargo check --workspace OK
|
||||
cargo clippy --workspace --all-targets OK
|
||||
cargo test --workspace OK
|
||||
cargo test -p ksp-logging-lib --test overhead -- --ignored --nocapture OK
|
||||
```
|
||||
|
||||
Le stress test concurrent ne produit plus le flux TRACE parasite corrigé par `pre.005-fix.001`.
|
||||
|
||||
Le probe diagnostic d'overhead a passé son garde-fou sur 200000 itérations :
|
||||
|
||||
```text
|
||||
baseline = 19.658553 ms
|
||||
reload = 28.807958 ms
|
||||
```
|
||||
|
||||
Ces nombres restent des observations diagnostiques et non un benchmark contractuel.
|
||||
|
||||
## Objet de pre.006
|
||||
|
||||
`pre.006` est la prerelease finale prévue de `0.1.2`.
|
||||
|
||||
Elle :
|
||||
|
||||
- ajoute une validation des spans async sur un executor Tokio réel ;
|
||||
- garde Tokio hors des dépendances runtime de `ksp-logging-lib` ;
|
||||
- consolide la documentation de la crate ;
|
||||
- ferme les TODO de prerelease ;
|
||||
- prépare le prompt final de `0.1.3 — ksp-config-lib` ;
|
||||
- prépare les validations finales précédant `rel.001`.
|
||||
|
||||
## Tokio uniquement pour les tests
|
||||
|
||||
Version actuelle vérifiée le 2026-08-14 :
|
||||
|
||||
```text
|
||||
tokio 1.53.1
|
||||
```
|
||||
|
||||
Le workspace centralise une contrainte de génération :
|
||||
|
||||
```toml
|
||||
tokio = { version = "^1.53", default-features = false, features = ["rt", "rt-multi-thread", "macros"] }
|
||||
```
|
||||
|
||||
`ksp-logging-lib` le consomme uniquement comme dev-dependency :
|
||||
|
||||
```toml
|
||||
[dev-dependencies]
|
||||
tokio.workspace = true
|
||||
```
|
||||
|
||||
Aucun source de production de Logging n'importe Tokio. L'API `instrument(span, future)` reste fondée sur `std::future::Future` et reste indépendante de l'executor choisi par le consumer.
|
||||
|
||||
## Tests Tokio réels
|
||||
|
||||
Nouveau fichier :
|
||||
|
||||
```text
|
||||
crates/ksp-logging-lib/tests/tokio_span.rs
|
||||
```
|
||||
|
||||
### Current-thread
|
||||
|
||||
Le premier test utilise :
|
||||
|
||||
```text
|
||||
#[tokio::test(flavor = "current_thread")]
|
||||
```
|
||||
|
||||
Il instrumente une future contenant plusieurs `tokio::task::yield_now().await` et utilise un subscriber de test associé au span pour compter les `enter`/`exit`.
|
||||
|
||||
Le test exige plusieurs ré-entrées du span après suspension et un nombre final d'entrées/sorties identique.
|
||||
|
||||
### Multi-thread
|
||||
|
||||
Le second test utilise :
|
||||
|
||||
```text
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
```
|
||||
|
||||
Deux futures instrumentées sont lancées avec `tokio::spawn`, effectuent des suspensions répétées puis doivent terminer normalement. Le test vérifie également l'équilibre des `enter`/`exit`.
|
||||
|
||||
Ce test démontre l'utilisation correcte de la surface KSP sous un runtime Tokio multi-thread ; il ne prétend pas imposer ni mesurer une migration déterministe d'une même future entre worker threads.
|
||||
|
||||
## Documentation finale
|
||||
|
||||
Mises à jour :
|
||||
|
||||
- `crates/ksp-logging-lib/README.md` : indépendance de l'executor en production et statut test-only de Tokio ;
|
||||
- `crates/ksp-logging-lib/USAGE.md` : exemple async et frontière executor ;
|
||||
- `crates/ksp-logging-lib/TODO.md` : seules restent les validations finales et la future livraison stable ;
|
||||
- `docs/plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md` : statut validé de `pre.005-fix.001`, contenu `pre.006`, validations finales et absence de question architecturale bloquante ;
|
||||
- `prompts/000-README.md` : ajout du prompt Config ;
|
||||
- `prompts/003-V0_1_3_START_PROMPT.md` : prompt final pour ouvrir `0.1.3` après `v0.1.2`.
|
||||
|
||||
`ROADMAP.md` reste volontairement inchangé : `0.1.2` demeure en cours tant que `rel.001` et le tag `v0.1.2` ne sont pas validés.
|
||||
|
||||
Aucun changelog général n'existe actuellement dans le dépôt ; `pre.006` n'en crée pas artificiellement un.
|
||||
|
||||
## Version technique
|
||||
|
||||
La prerelease devient :
|
||||
|
||||
```text
|
||||
workspace.package.version = "0.1.2-pre.6"
|
||||
```
|
||||
|
||||
L'en-tête du manifest racine devient :
|
||||
|
||||
```text
|
||||
# version: 38
|
||||
```
|
||||
|
||||
Le manifest de `ksp-logging-lib` devient :
|
||||
|
||||
```text
|
||||
# version: 4
|
||||
```
|
||||
|
||||
## Fichiers du delta
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
crates/ksp-logging-lib/Cargo.toml
|
||||
crates/ksp-logging-lib/README.md
|
||||
crates/ksp-logging-lib/TODO.md
|
||||
crates/ksp-logging-lib/USAGE.md
|
||||
crates/ksp-logging-lib/tests/tokio_span.rs
|
||||
docs/plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md
|
||||
prompts/000-README.md
|
||||
prompts/003-V0_1_3_START_PROMPT.md
|
||||
deltas/0.1.2/pre.006.md
|
||||
```
|
||||
|
||||
## Validations finales à exécuter
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
cargo check --workspace
|
||||
cargo build -p ksp-logging-lib
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test --workspace
|
||||
cargo test -p ksp-logging-lib --test overhead -- --ignored --nocapture
|
||||
cargo tree -p ksp-logging-lib
|
||||
cargo tree -p ksp-logging-lib -d
|
||||
cargo tree -p ksp-logging-lib -e features
|
||||
cargo tree -p ksp-logging-lib -e normal
|
||||
cargo tree -p ksp-logging-lib -e dev
|
||||
```
|
||||
|
||||
Contrôles attendus en particulier :
|
||||
|
||||
- les deux tests de `tests/tokio_span.rs` passent ;
|
||||
- `cargo build -p ksp-logging-lib` reste un build normal sans Tokio comme dépendance runtime ;
|
||||
- le graphe `-e normal` n'inclut pas Tokio ;
|
||||
- Tokio est visible uniquement via l'usage dev attendu ;
|
||||
- aucune seconde version évitable n'apparaît ;
|
||||
- l'audit ownership continue à interdire les contournements de la façade tracing.
|
||||
|
||||
Aucune validation Cargo n'est déclarée réussie dans ce delta avant exécution dans l'environnement de développement.
|
||||
|
||||
## Suite après validation
|
||||
|
||||
Si `pre.006` est propre, la prochaine livraison est :
|
||||
|
||||
```text
|
||||
0.1.2-rel.001
|
||||
```
|
||||
|
||||
Elle publiera :
|
||||
|
||||
```text
|
||||
workspace.package.version = "0.1.2"
|
||||
```
|
||||
|
||||
puis, après validation utilisateur, le commit final recevra :
|
||||
|
||||
```text
|
||||
v0.1.2
|
||||
```
|
||||
|
||||
La session fonctionnelle suivante pourra alors démarrer avec :
|
||||
|
||||
```text
|
||||
prompts/003-V0_1_3_START_PROMPT.md
|
||||
```
|
||||
Reference in New Issue
Block a user