v0.2.1-rel.001
This commit is contained in:
161
deltas/0.2.1/rel.001.md
Normal file
161
deltas/0.2.1/rel.001.md
Normal file
@@ -0,0 +1,161 @@
|
||||
<!-- file: deltas/0.2.1/rel.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `v0.2.1-rel.001`
|
||||
|
||||
## Base
|
||||
|
||||
Base attendue :
|
||||
|
||||
```text
|
||||
v0.2.1-pre.007
|
||||
```
|
||||
|
||||
`pre.007` a été validée localement par l'opérateur le 2026-08-17 avec :
|
||||
|
||||
- `cargo fmt --all` ;
|
||||
- `cargo check --workspace` ;
|
||||
- `cargo clippy --workspace --all-targets` ;
|
||||
- `cargo test -p ksp-onchain-transport-lib` ;
|
||||
- `cargo test -p ksp-config-lib` ;
|
||||
- `cargo test -p ksp-core-lib` ;
|
||||
- `cargo test -p ksp-app-config-desk` ;
|
||||
- `cargo test --workspace` ;
|
||||
- les graphes `cargo tree`, `cargo tree -d`, `cargo tree -e features` et `cargo tree -e normal` pour Transport et Config ;
|
||||
- le smoke Devnet opt-in `cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture`, avec `1 passed; 0 failed`.
|
||||
|
||||
Version Cargo cible :
|
||||
|
||||
```text
|
||||
0.2.1
|
||||
```
|
||||
|
||||
## Objectif
|
||||
|
||||
Publier `0.2.1 — HTTP Solana foundation` sans ajouter de capacité fonctionnelle après la candidate `pre.007`.
|
||||
|
||||
`rel.001` est strictement publicationnelle :
|
||||
|
||||
- passage du workspace à la version stable `0.2.1` ;
|
||||
- clôture `[X]` de `0.2.1` dans le ROADMAP ;
|
||||
- ajout de l'entrée stable `0.2.1` au CHANGELOG ;
|
||||
- clôture du plan HTTP et de sa matrice de validation avec les preuves opérateur ;
|
||||
- synchronisation des index/plans généraux ;
|
||||
- conservation explicite du TODO d'ownership du smoke cross-crates.
|
||||
|
||||
Aucun fichier Rust de production, aucune API publique, aucune configuration runtime, aucune dépendance et aucune feature Cargo ne changent dans cette livraison.
|
||||
|
||||
## Surface stable publiée
|
||||
|
||||
`0.2.1` stabilise `ksp-onchain-transport-lib` avec :
|
||||
|
||||
```text
|
||||
JSON-RPC 2.0 sur HTTP POST
|
||||
52 méthodes HTTP courantes auditées
|
||||
14 méthodes historiques Deprecated / Removed
|
||||
4 wrappers typés : getBalance/getGenesisHash/getHealth/getVersion
|
||||
partition typed restante : 22 / 11 / 15 sur 0.2.2–0.2.4
|
||||
pool rôles/capabilities/priorités/fairness
|
||||
RPS/burst/concurrence/cooldown
|
||||
deadline commune + timeout/retry/backoff
|
||||
no-resend après dispatch ambigu
|
||||
429/Retry-After + statuts temporaires
|
||||
std.transport + schema + example
|
||||
adapter ksp-config-lib -> ksp-onchain-transport-lib
|
||||
redaction URL/provider credentials
|
||||
neutralisation des URLs contenues dans reqwest::Error
|
||||
sink Logging Transport dédié à info
|
||||
fixtures HTTP déterministes
|
||||
canaries de complétude
|
||||
smoke Devnet opt-in
|
||||
README/USAGE Transport
|
||||
```
|
||||
|
||||
La surface raw/générique reste distincte de la couverture typée : elle ne vaut pas implémentation des 48 wrappers reportés.
|
||||
|
||||
## Validation de la candidate
|
||||
|
||||
Les tests de `pre.007` ont confirmé notamment :
|
||||
|
||||
```text
|
||||
Transport : 70 unit + 8 public API + 2 release completeness = 80
|
||||
Config : 95 unit + 5 ownership + 13 public API + 1 smoke ignored = 114
|
||||
Core : tests unit/public/workspace canaries propres
|
||||
Config Desk : tests unit/desktop/public propres
|
||||
workspace : propre, hors probes explicitement ignored
|
||||
```
|
||||
|
||||
Le smoke Devnet a ensuite été lancé explicitement et a atteint les quatre canaris foundation via le profil `devnet_public` committé.
|
||||
|
||||
Les graphes Cargo confirment la frontière voulue :
|
||||
|
||||
```text
|
||||
ksp-config-lib -> ksp-onchain-transport-lib
|
||||
ksp-onchain-transport-lib -X-> ksp-config-lib
|
||||
Transport -X-> Store/Program/tracing direct
|
||||
```
|
||||
|
||||
Les features directes restent activées localement dans les crates consommatrices. Les doublons observés par `cargo tree -d` sur les graphes inspectés se limitent à `syn` 2.x/3.x dans les chaînes transitive/proc-macro ; aucune stack HTTP/Tokio KSP concurrente n'est introduite.
|
||||
|
||||
## TODO ownership des smoke tests cross-crates
|
||||
|
||||
Le fichier actuel :
|
||||
|
||||
```text
|
||||
crates/ksp-config-lib/tests/transport_devnet_smoke.rs
|
||||
```
|
||||
|
||||
reste temporairement sous Config parce que la direction de dépendance existante permet d'y composer Config -> Transport sans violer le firewall Transport -> Config.
|
||||
|
||||
Cette localisation est une **exception transitoire** et ne devient jamais une convention KSP :
|
||||
|
||||
- `ksp-config-lib` ne doit pas devenir la destination générale des smoke tests ;
|
||||
- cela inclut explicitement les futurs scénarios `Config + autre crate` ;
|
||||
- les tests déterministes de mapping/validation Config restent dans Config ;
|
||||
- un smoke autonome d'une crate peut rester dans cette crate s'il n'exige pas de composition interdite ;
|
||||
- les smokes cross-crates doivent appartenir à une future surface dédiée d'intégration/orchestration/demo ;
|
||||
- le smoke `Config -> Transport -> Devnet` devra migrer vers cette surface lorsqu'elle existera.
|
||||
|
||||
## Documentation de clôture
|
||||
|
||||
Mises à jour :
|
||||
|
||||
```text
|
||||
CHANGELOG.md
|
||||
docs/000-README.md
|
||||
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
|
||||
docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md
|
||||
docs/validation/003-V0_2_1_ONCHAIN_HTTP.md
|
||||
ROADMAP.md
|
||||
```
|
||||
|
||||
Le prompt de reprise `prompts/007-V0_2_2_START_PROMPT.md` était déjà livré en `pre.007` et reste inchangé ; il attend comme base le tag stable `v0.2.1`.
|
||||
|
||||
## Commit et tag
|
||||
|
||||
Identifiant de commit attendu :
|
||||
|
||||
```text
|
||||
v0.2.1-rel.001
|
||||
```
|
||||
|
||||
Le tag stable ne doit être créé qu'après application et validation de ce delta :
|
||||
|
||||
```text
|
||||
v0.2.1
|
||||
```
|
||||
|
||||
Le tag porte uniquement la publication stable ; aucun tag prerelease/fix n'est requis.
|
||||
|
||||
## Validation finale après application
|
||||
|
||||
Comme `rel.001` ne modifie aucun code de production et ne change que la version workspace et la documentation, la gate finale reste :
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test --workspace
|
||||
```
|
||||
|
||||
Après succès : commit `v0.2.1-rel.001`, puis création du tag `v0.2.1`.
|
||||
Reference in New Issue
Block a user