v0.2.2-rel.001

This commit is contained in:
2026-08-18 10:14:43 +02:00
parent c93a833bac
commit fff69ead9c
13 changed files with 293 additions and 90 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/000-README.md -->
<!-- version: 5 -->
<!-- version: 6 -->
# Validations KSP
@@ -12,4 +12,4 @@ Documents :
- [`001-V0_1_4_CONFIG_DESKTOP.md`](001-V0_1_4_CONFIG_DESKTOP.md) — matrice finale de `0.1.4 — ksp-app-config-desk`.
- [`002-V0_2_0_SERIES_PLANNING.md`](002-V0_2_0_SERIES_PLANNING.md) — matrice finale de la release stable `0.2.0`, avec audit de cohérence et preuves opérateur de `pre.003`.
- [`003-V0_2_1_ONCHAIN_HTTP.md`](003-V0_2_1_ONCHAIN_HTTP.md) — matrice de clôture de `0.2.1 — HTTP Solana foundation`, registry 52+14, résilience, Config -> Transport, quatre canaris et smoke Devnet opt-in.
- [`004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md`](004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md) — matrice de clôture candidate de `0.2.2`, 22 wrappers Accounts/Tokens/Cluster, canaries 52+14, smoke Devnet Transport pur et préparation de `0.2.3`.
- [`004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md`](004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md) — matrice finale validée de `0.2.2`, 22 wrappers Accounts/Tokens/Cluster, canaries 52+14, graphes Cargo, smoke Devnet Transport pur, smoke historique Config -> Transport et préparation de `0.2.3`.

View File

@@ -1,11 +1,11 @@
<!-- file: docs/validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md -->
<!-- version: 3 -->
<!-- version: 4 -->
# Validation finale `0.2.2` — HTTP Accounts + Tokens + Cluster
## Statut
Cette matrice accompagne la candidate `0.2.2-pre.007`. Elle ne publie pas encore la release stable : les preuves opérateur finales doivent être enregistrées avant `0.2.2-rel.001`.
Cette matrice clôt la release stable `0.2.2`. Les preuves opérateur finales ont été enregistrées sur la candidate corrigée `0.2.2-pre.007-fix.002` avant `0.2.2-rel.001`.
Base fonctionnelle validée avant `pre.007` :
@@ -57,7 +57,7 @@ Cluster : 15 = getGenesisHash/getHealth/getVersion acquis en 0.2.1 + 12 en 0.2.
Aucune méthode `0.2.2` n'est reclassée Deprecated/Unstable. Les 22 descriptors restent `Stable / Supported / Read / RetrySafe`.
## Surface typée candidate
## Surface typée stable
`0.2.2` ajoute exactement :
@@ -68,7 +68,7 @@ Cluster : 12
Total : 22
```
Avec les quatre canaris de `0.2.1`, Transport expose donc 26 wrappers typed à la candidate.
Avec les quatre canaris de `0.2.1`, Transport expose donc 26 wrappers typed dans la release stable.
Les partitions futures restent intactes :
@@ -81,7 +81,7 @@ L'API raw `execute_standard_rpc()` reste disponible mais ne compte pas comme cou
## Contrats wire à préserver
La candidate doit conserver notamment :
La release stable conserve notamment :
- `Account.data` legacy / encoded / `jsonParsed` sans décodage Program ;
- `Account.space: Option<u64>` ;
@@ -121,7 +121,7 @@ partition == 4 / 22 / 11 / 15
historical => Deprecated + Removed + Historical + NotApplicable
```
Après `pre.007`, la suite attendue est :
La suite stable confirmée est :
```text
127 unit tests
@@ -174,7 +174,7 @@ Ownership : ce smoke cross-crates est transitoire. `ksp-config-lib` ne doit pas
## Dépendances, sécurité et logging
La candidate ne doit introduire :
La release stable n'introduit :
```text
aucune dépendance externe nouvelle
@@ -185,11 +185,11 @@ aucun client HTTP parallèle
Les invariants de sécurité `0.2.1` restent obligatoires : URL/provider credentials absents des diagnostics ordinaires, `reqwest::Error::without_url()` avant exposition comme source, aucune réponse/body massif journalisé par défaut.
La baseline Logging Transport reste `info` avant publication stable.
La baseline Logging Transport reste `info` dans la publication stable.
## Documentation candidate
## Documentation stable
Doivent être synchronisés :
Sont synchronisés :
```text
crates/ksp-onchain-transport-lib/README.md
@@ -201,20 +201,39 @@ ROADMAP.md
prompts/008-V0_2_3_START_PROMPT.md
```
`CHANGELOG.md` reste volontairement inchangé avant `rel.001`.
`0.2.2-rel.001` ajoute l'entrée stable au `CHANGELOG.md` sans modifier la surface fonctionnelle.
## Validations finales opérateur à exécuter sur `pre.007`
## Validations finales opérateur observées
Sur `0.2.2-pre.007-fix.002`, l'opérateur a exécuté le 2026-08-18 :
```bash
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
cargo test -p ksp-onchain-transport-lib --test transport_devnet_smoke -- --ignored --nocapture
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
```
Résultats :
```text
fmt/check/clippy : succès, aucun warning Clippy
Transport unit : 127 passed
Transport public : 13 passed
release canaries : 7 passed
workspace : succès
Transport smoke : 1 passed; 0 failed
Config smoke : 1 passed; 0 failed
```
Les suites normales conservent les smokes réseau sous `#[ignore]`; leur exécution explicite ci-dessus constitue la preuve live de clôture.
Les graphes suivants ont été inspectés pendant la candidate :
```bash
cargo tree -p ksp-onchain-transport-lib
cargo tree -p ksp-onchain-transport-lib -d
cargo tree -p ksp-onchain-transport-lib -e features
@@ -225,27 +244,20 @@ cargo tree -p ksp-config-lib -e features
cargo tree -p ksp-config-lib -e normal
```
Puis les deux smokes opt-in :
Les fixes `pre.007-fix.001` et `pre.007-fix.002` n'ajoutent ni dépendance ni feature. Le graphe reste conforme au firewall : Config peut dépendre de Transport, Transport ne dépend pas de Config/Store/Program et n'importe pas `tracing` directement. Les doublons constatés sur les graphes inspectés restent ceux de `syn` 2.x/3.x dans les chaînes transitive/proc-macro ; aucune stack HTTP/Tokio KSP concurrente n'est introduite.
```bash
cargo test -p ksp-onchain-transport-lib --test transport_devnet_smoke -- --ignored --nocapture
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
```
## Publication `rel.001`
Les résultats doivent être reportés dans `rel.001`; cette matrice ne les anticipe pas.
## Passage à `rel.001`
Si toutes les validations passent, `rel.001` doit rester strictement publicationnel :
`0.2.2-rel.001` reste strictement publicationnelle :
```text
workspace.package.version -> 0.2.2
ROADMAP : 0.2.2 -> [X]
CHANGELOG : synthèse stable 0.2.2
plan 009 / validation 004 : statut clôturé + preuves opérateur
plan 009 / validation 004 : clôturés avec preuves opérateur
deltas/0.2.2/rel.001.md
commit v0.2.2-rel.001
tag stable v0.2.2 après validation du commit
```
Aucune nouvelle méthode HTTP, aucun nouveau DTO et aucun nouveau comportement runtime ne doivent apparaître dans `rel.001`.
Aucune nouvelle méthode HTTP, aucun nouveau DTO et aucun nouveau comportement runtime n'apparaissent dans `rel.001`.