v0.2.1-rel.001
This commit is contained in:
@@ -1,10 +1,14 @@
|
|||||||
<!-- file: CHANGELOG.md -->
|
<!-- file: CHANGELOG.md -->
|
||||||
<!-- version: 4 -->
|
<!-- version: 5 -->
|
||||||
|
|
||||||
# Changelog KSP
|
# Changelog KSP
|
||||||
|
|
||||||
Ce changelog résume uniquement les releases KSP considérées comme stables, dans l'ordre chronologique décroissant. Les détails de chaque livraison restent dans `deltas/`.
|
Ce changelog résume uniquement les releases KSP considérées comme stables, dans l'ordre chronologique décroissant. Les détails de chaque livraison restent dans `deltas/`.
|
||||||
|
|
||||||
|
## 0.2.1 — HTTP Solana foundation — 2026-08-17
|
||||||
|
|
||||||
|
`0.2.1` stabilise `ksp-onchain-transport-lib` comme foundation HTTP JSON-RPC Solana provider-neutral : settings publics, endpoints/pool/rôles, priorités et fairness, RPS/burst/concurrence/cooldown, deadline commune, retry/backoff, classification no-resend après dispatch ambigu, snapshots sûrs et exécution HTTP réelle via `reqwest`/rustls. La release fige un registre audité de 52 méthodes HTTP courantes et 14 méthodes historiques Deprecated/Removed, avec quatre wrappers typés canari (`getBalance`, `getGenesisHash`, `getHealth`, `getVersion`) et une partition explicite des 48 méthodes restantes sur `0.2.2`–`0.2.4`. Elle ajoute `std.transport`, son schema/exemple et l'adapter `ksp-config-lib -> ksp-onchain-transport-lib`, sans dépendance inverse, ainsi que la redaction des URLs/provider credentials, la neutralisation des URLs contenues dans les `reqwest::Error`, un sink Logging Transport dédié à `info`, des fixtures HTTP déterministes, des canaries de complétude et un smoke Devnet opt-in validant la composition Config -> Transport. Le smoke cross-crates reste temporairement hébergé dans Config et doit migrer vers une future surface d'intégration/orchestration ; ce placement n'est pas un modèle pour les futurs smokes `Config + autre crate`. Le prompt `prompts/007-V0_2_2_START_PROMPT.md` ouvre `0.2.2 — HTTP Accounts + Tokens + Cluster`.
|
||||||
|
|
||||||
## 0.2.0 — Audit bot3 et planification de la série `0.2.x` — 2026-08-17
|
## 0.2.0 — Audit bot3 et planification de la série `0.2.x` — 2026-08-17
|
||||||
|
|
||||||
`0.2.0` stabilise le cadrage de la prochaine phase fonctionnelle de KSP après audit de `khadhroony-bot3`. La release fixe l'ordre `0.2.1+` autour du transport HTTP Solana, du Wallet `.kspwallet`, de Wallet Desk, des transports WebSocket/LaserStream/Yellowstone, du transport off-chain de prix, de `ksp-interface-lib` et de `ksp-program-api`; elle impose la couverture exhaustive des surfaces Transport documentées avec warnings KSP pour les opérations deprecated/obsolete encore fonctionnelles et unstable/experimental. Elle stabilise également la progression durable `RAW -> CORE -> DECODE -> SPECIALIZED`, RAW/CORE sans décodage Program, puis des vertical slices complets par groupe à partir de DECODE, avec priorité Solana Core, SPL token/trading, metadata token, Anchor, Meteora/Raydium/Pump/Orca, routing et Market Desk progressive. Le prompt `prompts/006-V0_2_1_START_PROMPT.md` ouvre `0.2.1 — ksp-onchain-transport-lib / HTTP Solana foundation` avec un gate de sizing imposant qu'une release concrète reste clôturable dans une seule session.
|
`0.2.0` stabilise le cadrage de la prochaine phase fonctionnelle de KSP après audit de `khadhroony-bot3`. La release fixe l'ordre `0.2.1+` autour du transport HTTP Solana, du Wallet `.kspwallet`, de Wallet Desk, des transports WebSocket/LaserStream/Yellowstone, du transport off-chain de prix, de `ksp-interface-lib` et de `ksp-program-api`; elle impose la couverture exhaustive des surfaces Transport documentées avec warnings KSP pour les opérations deprecated/obsolete encore fonctionnelles et unstable/experimental. Elle stabilise également la progression durable `RAW -> CORE -> DECODE -> SPECIALIZED`, RAW/CORE sans décodage Program, puis des vertical slices complets par groupe à partir de DECODE, avec priorité Solana Core, SPL token/trading, metadata token, Anchor, Meteora/Raydium/Pump/Orca, routing et Market Desk progressive. Le prompt `prompts/006-V0_2_1_START_PROMPT.md` ouvre `0.2.1 — ksp-onchain-transport-lib / HTTP Solana foundation` avec un gate de sizing imposant qu'une release concrète reste clôturable dans une seule session.
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
# file: Cargo.toml
|
# file: Cargo.toml
|
||||||
# version: 108
|
# version: 109
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
resolver = "3"
|
resolver = "3"
|
||||||
members = ["crates/ksp-app-config-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib"]
|
members = ["crates/ksp-app-config-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib"]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.2.1-pre.7"
|
version = "0.2.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: ROADMAP.md -->
|
<!-- file: ROADMAP.md -->
|
||||||
<!-- version: 33 -->
|
<!-- version: 34 -->
|
||||||
|
|
||||||
# Roadmap KSP
|
# Roadmap KSP
|
||||||
|
|
||||||
@@ -41,11 +41,11 @@ Le roadmap décrit les objectifs à atteindre et les grandes étapes prévues. U
|
|||||||
### Cadrage
|
### Cadrage
|
||||||
|
|
||||||
- [X] `0.2.0` — Audit bot3, ordre fonctionnel de `0.2.x`, architecture durable, discipline de sizing et pipeline RAW/CORE/DECODE/SPECIALIZED stabilisés.
|
- [X] `0.2.0` — Audit bot3, ordre fonctionnel de `0.2.x`, architecture durable, discipline de sizing et pipeline RAW/CORE/DECODE/SPECIALIZED stabilisés.
|
||||||
- [/] `0.2.1` — HTTP foundation fonctionnellement complète dans la candidate de clôture : matrice 52+14, runtime/routing/résilience/exécution HTTP, 4 canaris typés, `std.transport`, adapter Config -> Transport, canaries de clôture, smoke Devnet opt-in et documentation durable sont matérialisés ; seule la publication stable `rel.001` reste à valider.
|
- [X] `0.2.1` — HTTP foundation stable : matrice 52+14, runtime/routing/résilience/exécution HTTP, 4 canaris typés, `std.transport`, adapter Config -> Transport, canaries de clôture, smoke Devnet opt-in et documentation durable validés ; les 48 wrappers typés restants sont reportés à `0.2.2`–`0.2.4`.
|
||||||
|
|
||||||
### Releases fonctionnelles décidées/pressenties
|
### Releases fonctionnelles décidées/pressenties
|
||||||
|
|
||||||
- [/] `0.2.1` — **HTTP transport foundation réduite par le gate `pre.001`** : surface candidate de release complète ; crate/settings/JSON-RPC/registry 52 current + 14 deprecated historiques, pool/rôles/limites/retry, Config adapter, documentation et 4 méthodes typées canari (`getBalance`, `getGenesisHash`, `getHealth`, `getVersion`) ; publication stable encore en attente.
|
- [X] `0.2.1` — **HTTP transport foundation réduite par le gate `pre.001`** : crate/settings/JSON-RPC/registry 52 current + 14 deprecated historiques, pool/rôles/limites/retry, Config adapter, documentation et 4 méthodes typées canari (`getBalance`, `getGenesisHash`, `getHealth`, `getVersion`) publiés stables.
|
||||||
- [ ] `0.2.2` — Compléter HTTP Accounts + Tokens + Cluster : 5 méthodes Accounts restantes + 5 Tokens + 12 Cluster restantes, soit 22 méthodes.
|
- [ ] `0.2.2` — Compléter HTTP Accounts + Tokens + Cluster : 5 méthodes Accounts restantes + 5 Tokens + 12 Cluster restantes, soit 22 méthodes.
|
||||||
- [ ] `0.2.3` — Compléter les 11 méthodes HTTP Transactions, y compris write/submission technique avec politique no-resend ambigu.
|
- [ ] `0.2.3` — Compléter les 11 méthodes HTTP Transactions, y compris write/submission technique avec politique no-resend ambigu.
|
||||||
- [ ] `0.2.4` — Compléter les 10 méthodes HTTP Blocks + 5 Economics et exécuter la compliance finale de toute la surface HTTP 52 current + 14 deprecated historiques.
|
- [ ] `0.2.4` — Compléter les 10 méthodes HTTP Blocks + 5 Economics et exécuter la compliance finale de toute la surface HTTP 52 current + 14 deprecated historiques.
|
||||||
|
|||||||
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`.
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/000-README.md -->
|
<!-- file: docs/000-README.md -->
|
||||||
<!-- version: 23 -->
|
<!-- version: 24 -->
|
||||||
|
|
||||||
# Documentation KSP
|
# Documentation KSP
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ D'autres sous-répertoires seront ajoutés uniquement lorsque leur rôle aura é
|
|||||||
|
|
||||||
## Documents de planification
|
## Documents de planification
|
||||||
|
|
||||||
Le plan historique de la phase fondatrice clôturée est conservé dans [`plans/001-V0_0_3_PLAN.md`](plans/001-V0_0_3_PLAN.md). La séquence active des premières releases fonctionnelles est définie dans [`plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md`](plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md). Le plan détaillé de la release stable `0.1.1` est conservé comme historique clôturé dans [`plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md`](plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.2` est conservé comme historique clôturé dans [`plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md`](plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.3 — Configuration foundation` est conservé comme historique clôturé dans [`plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md`](plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.4 — ksp-app-config-desk` est conservé comme historique clôturé dans [`plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md`](plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md), avec sa matrice finale [`validation/001-V0_1_4_CONFIG_DESKTOP.md`](validation/001-V0_1_4_CONFIG_DESKTOP.md). Son prompt d'ouverture historique reste [`../prompts/004-V0_1_4_START_PROMPT.md`](../prompts/004-V0_1_4_START_PROMPT.md). La release stable `0.2.0` clôt l'audit de bot3 et le découpage de la série. Son plan directeur est conservé comme historique clôturé dans [`plans/007-V0_2_0_SERIES_PLANNING.md`](plans/007-V0_2_0_SERIES_PLANNING.md), avec sa matrice finale [`validation/002-V0_2_0_SERIES_PLANNING.md`](validation/002-V0_2_0_SERIES_PLANNING.md). `0.2.1` a été ouverte par [`../prompts/006-V0_2_1_START_PROMPT.md`](../prompts/006-V0_2_1_START_PROMPT.md). Son `pre.001` applique le gate de sizing et crée [`plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md`](plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md); `pre.001-fix.001` recalibre la couverture typed sur `0.2.1`–`0.2.4` sans perdre l'inventaire exhaustif. `pre.007` prépare maintenant la clôture de la foundation avec [`validation/003-V0_2_1_ONCHAIN_HTTP.md`](validation/003-V0_2_1_ONCHAIN_HTTP.md), README/USAGE Transport, smoke Devnet opt-in et [`../prompts/007-V0_2_2_START_PROMPT.md`](../prompts/007-V0_2_2_START_PROMPT.md).
|
Le plan historique de la phase fondatrice clôturée est conservé dans [`plans/001-V0_0_3_PLAN.md`](plans/001-V0_0_3_PLAN.md). La séquence active des premières releases fonctionnelles est définie dans [`plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md`](plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md). Le plan détaillé de la release stable `0.1.1` est conservé comme historique clôturé dans [`plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md`](plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.2` est conservé comme historique clôturé dans [`plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md`](plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.3 — Configuration foundation` est conservé comme historique clôturé dans [`plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md`](plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.4 — ksp-app-config-desk` est conservé comme historique clôturé dans [`plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md`](plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md), avec sa matrice finale [`validation/001-V0_1_4_CONFIG_DESKTOP.md`](validation/001-V0_1_4_CONFIG_DESKTOP.md). Son prompt d'ouverture historique reste [`../prompts/004-V0_1_4_START_PROMPT.md`](../prompts/004-V0_1_4_START_PROMPT.md). La release stable `0.2.0` clôt l'audit de bot3 et le découpage de la série. Son plan directeur est conservé comme historique clôturé dans [`plans/007-V0_2_0_SERIES_PLANNING.md`](plans/007-V0_2_0_SERIES_PLANNING.md), avec sa matrice finale [`validation/002-V0_2_0_SERIES_PLANNING.md`](validation/002-V0_2_0_SERIES_PLANNING.md). La release stable `0.2.1 — HTTP Solana foundation` a été ouverte par [`../prompts/006-V0_2_1_START_PROMPT.md`](../prompts/006-V0_2_1_START_PROMPT.md). Son gate de sizing et sa matrice exhaustive sont conservés dans [`plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md`](plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md), avec la validation finale [`validation/003-V0_2_1_ONCHAIN_HTTP.md`](validation/003-V0_2_1_ONCHAIN_HTTP.md), README/USAGE Transport et le smoke Devnet opt-in de composition Config -> Transport. Le prompt [`../prompts/007-V0_2_2_START_PROMPT.md`](../prompts/007-V0_2_2_START_PROMPT.md) devient le point d'entrée de `0.2.2`.
|
||||||
|
|
||||||
`IDEAS.md` conserve les pistes et questions qui ne sont pas encore des engagements du roadmap ni des décisions architecturales.
|
`IDEAS.md` conserve les pistes et questions qui ne sont pas encore des engagements du roadmap ni des décisions architecturales.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md -->
|
<!-- file: docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md -->
|
||||||
<!-- version: 32 -->
|
<!-- version: 33 -->
|
||||||
|
|
||||||
# Séquence des releases fonctionnelles KSP
|
# Séquence des releases fonctionnelles KSP
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ Séquence par défaut :
|
|||||||
0.1.4 ksp-app-config-desk
|
0.1.4 ksp-app-config-desk
|
||||||
```
|
```
|
||||||
|
|
||||||
`0.1.1`, `0.1.2`, `0.1.3` et `0.1.4` sont désormais des releases stables.
|
`0.1.1`, `0.1.2`, `0.1.3`, `0.1.4`, `0.2.0` et `0.2.1` sont désormais des releases stables.
|
||||||
|
|
||||||
`0.1.4 — ksp-app-config-desk` établit le modèle de référence des futures applications Tauri KSP sans déplacer la logique Config dans l'application. Sa matrice finale a été validée avant `rel.001`, avec le build Tauri exécuté en dernière opération.
|
`0.1.4 — ksp-app-config-desk` établit le modèle de référence des futures applications Tauri KSP sans déplacer la logique Config dans l'application. Sa matrice finale a été validée avant `rel.001`, avec le build Tauri exécuté en dernière opération.
|
||||||
|
|
||||||
@@ -378,7 +378,7 @@ Mission : créer `ksp-onchain-transport-lib` avec la foundation HTTP JSON-RPC in
|
|||||||
|
|
||||||
Inclure : settings publics ; endpoint/provider/cluster ; pool logique ; rôles/capabilities/request kinds ouverts ; priorités/limites/concurrence ; timeout/retry/backoff ; JSON-RPC ; metadata centrale de statut méthode + forme de requête + runtime ; warning centralisé lorsqu'un contrat supported est deprecated/unstable ; document Config standard + adapter Config -> Transport ; `getBalance`, `getGenesisHash`, `getHealth`, `getVersion`.
|
Inclure : settings publics ; endpoint/provider/cluster ; pool logique ; rôles/capabilities/request kinds ouverts ; priorités/limites/concurrence ; timeout/retry/backoff ; JSON-RPC ; metadata centrale de statut méthode + forme de requête + runtime ; warning centralisé lorsqu'un contrat supported est deprecated/unstable ; document Config standard + adapter Config -> Transport ; `getBalance`, `getGenesisHash`, `getHealth`, `getVersion`.
|
||||||
|
|
||||||
Le plan détaillé actif est `docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md`. `pre.007` clôt la surface candidate avec canaries de complétude, smoke Devnet opt-in Config -> Transport, README/USAGE et prompt `0.2.2`. Un appel raw/générique ne compte pas comme couverture typée des méthodes reportées.
|
Le plan détaillé clôturé est `docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md`. `0.2.1-rel.001` publie la foundation après validation des canaries de complétude, du smoke Devnet opt-in Config -> Transport, des README/USAGE et des graphes Cargo. Le smoke cross-crates hébergé dans Config est transitoire et devra migrer vers une future surface d’intégration/orchestration ; aucun futur smoke `Config + autre crate` ne doit prendre Config comme destination générale. Un appel raw/générique ne compte pas comme couverture typée des méthodes reportées.
|
||||||
|
|
||||||
## `0.2.2` à `0.2.4` — complétude HTTP Solana
|
## `0.2.2` à `0.2.4` — complétude HTTP Solana
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md -->
|
<!-- file: docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md -->
|
||||||
<!-- version: 11 -->
|
<!-- version: 12 -->
|
||||||
|
|
||||||
# `0.2.1-pre.001` — plan `ksp-onchain-transport-lib` HTTP Solana foundation
|
# `0.2.1-pre.001` — plan `ksp-onchain-transport-lib` HTTP Solana foundation
|
||||||
|
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
Ce document ouvre `0.2.1` à partir de la base stable fournie `0.2.0` et exécute le gate de sizing imposé par le prompt `006` avant toute grosse implémentation. Sa version initiale appartient à `0.2.1-pre.001`; le split de releases présenté dans cette version du plan est le recalibrage documentaire de `0.2.1-pre.001-fix.001`.
|
Ce document ouvre `0.2.1` à partir de la base stable fournie `0.2.0` et exécute le gate de sizing imposé par le prompt `006` avant toute grosse implémentation. Sa version initiale appartient à `0.2.1-pre.001`; le split de releases présenté dans cette version du plan est le recalibrage documentaire de `0.2.1-pre.001-fix.001`.
|
||||||
|
|
||||||
> **État `pre.007` : candidate de clôture.** La foundation HTTP réduite est fonctionnellement matérialisée ; `pre.007` ajoute les canaries finales, le smoke Devnet opt-in, README/USAGE, la matrice de validation durable et le prompt `0.2.2`. La publication stable reste séparée dans `rel.001` après validations opérateur.
|
> **État `0.2.1-rel.001` : clôturé stable.** La foundation HTTP réduite est publiée après validation opérateur complète de `pre.007`, des graphes Cargo et du smoke Devnet opt-in. `0.2.2` devient la prochaine release active.
|
||||||
|
|
||||||
Conclusion du gate :
|
Conclusion du gate :
|
||||||
|
|
||||||
@@ -873,15 +873,15 @@ La release peut devenir stable seulement si :
|
|||||||
|
|
||||||
## 22. Prévision souple des prereleases de la `0.2.1` réduite
|
## 22. Prévision souple des prereleases de la `0.2.1` réduite
|
||||||
|
|
||||||
| Tranche | Objectif |
|
| Tranche | Objectif |
|
||||||
|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|-----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `pre.001` | audit KSP + bot3 + docs officielles, matrice 52+14, architecture, split et sizing |
|
| `pre.001` | audit KSP + bot3 + docs officielles, matrice 52+14, architecture, split et sizing |
|
||||||
| `pre.002` | **réalisé** : crate/workspace, codes erreur, settings/validation, JSON-RPC, descriptors/status, base Logging |
|
| `pre.002` | **réalisé** : crate/workspace, codes erreur, settings/validation, JSON-RPC, descriptors/status, base Logging |
|
||||||
| `pre.003` | **réalisé** : endpoint client + pool logique + rôles/capabilities + priorité/fairness/fallback + snapshots sûrs |
|
| `pre.003` | **réalisé** : endpoint client + pool logique + rôles/capabilities + priorité/fairness/fallback + snapshots sûrs |
|
||||||
| `pre.004` | **réalisé** : RPS/burst/concurrence/cooldown + deadline commune + retry/backoff + classification retry/no-resend |
|
| `pre.004` | **réalisé** : RPS/burst/concurrence/cooldown + deadline commune + retry/backoff + classification retry/no-resend |
|
||||||
| `pre.005` | **réalisé** : exécution HTTP JSON-RPC + `getHealth`, `getVersion`, `getGenesisHash`, `getBalance` + fixtures déterministes + centralisation des canaries workspace dans Core |
|
| `pre.005` | **réalisé** : exécution HTTP JSON-RPC + `getHealth`, `getVersion`, `getGenesisHash`, `getBalance` + fixtures déterministes + centralisation des canaries workspace dans Core |
|
||||||
| `pre.006` | **réalisé** : `std.transport` schema/document/example + registry Config + adapter Config -> Transport + sensibilité/provenance/env tests |
|
| `pre.006` | **réalisé** : `std.transport` schema/document/example + registry Config + adapter Config -> Transport + sensibilité/provenance/env tests |
|
||||||
| `pre.007` | **réalisé côté livraison candidate** : completeness/canaries, smoke opt-in, README/USAGE, docs finales, prompt `0.2.2`, préparation `rel.001`; `cargo tree`/Cargo restent à valider opérateur |
|
| `pre.007` | **réalisé et validé** : completeness/canaries, smoke opt-in, README/USAGE, docs finales, prompt `0.2.2`, validations Cargo et `cargo tree` |
|
||||||
|
|
||||||
Ce découpage est révisable si une tranche dépasse le budget ; la release réduite, contrairement au scope initial, reste raisonnablement clôturable dans la session.
|
Ce découpage est révisable si une tranche dépasse le budget ; la release réduite, contrairement au scope initial, reste raisonnablement clôturable dans la session.
|
||||||
|
|
||||||
@@ -982,15 +982,21 @@ Restent à `pre.006` : document/schema/exemple `std.transport`, enregistrement C
|
|||||||
- revérification officielle du 2026-08-17 : l’index Solana HTTP courant expose toujours 52 méthodes et la navigation Deprecated conserve les 14 noms historiques audités ;
|
- revérification officielle du 2026-08-17 : l’index Solana HTTP courant expose toujours 52 méthodes et la navigation Deprecated conserve les 14 noms historiques audités ;
|
||||||
- deux canaries d’intégration publiques figent la partition `52 current / 14 historical / 4-22-11-15` et le set exact des quatre canaris `0.2.1` ;
|
- deux canaries d’intégration publiques figent la partition `52 current / 14 historical / 4-22-11-15` et le set exact des quatre canaris `0.2.1` ;
|
||||||
- la candidate déclare **80 tests Transport** et **114 tests Config**, dont un unique smoke Devnet Config `ignored` ;
|
- la candidate déclare **80 tests Transport** et **114 tests Config**, dont un unique smoke Devnet Config `ignored` ;
|
||||||
- un smoke Devnet `ignored` sous `ksp-config-lib` valide de manière opt-in la chaîne Config -> `devnet_public` -> Transport -> `getHealth/getGenesisHash/getVersion/getBalance`, sans lecture d’environnement dans Transport ;
|
- un smoke Devnet `ignored` sous `ksp-config-lib` valide de manière opt-in la chaîne Config -> `devnet_public` -> Transport -> `getHealth/getGenesisHash/getVersion/getBalance`, sans lecture d’environnement dans Transport ; ce placement est une exception transitoire et non un modèle pour les futurs smokes `Config + autre crate` ;
|
||||||
- `ksp-onchain-transport-lib/README.md` et `USAGE.md` documentent frontières, API raw vs typed, résilience, sécurité, Config et utilisation ;
|
- `ksp-onchain-transport-lib/README.md` et `USAGE.md` documentent frontières, API raw vs typed, résilience, sécurité, Config et utilisation ;
|
||||||
- `docs/validation/003-V0_2_1_ONCHAIN_HTTP.md` devient la matrice durable de clôture ;
|
- `docs/validation/003-V0_2_1_ONCHAIN_HTTP.md` devient la matrice durable de clôture ;
|
||||||
- le niveau de référence du sink Transport dédié revient de `debug` à `info` avant stable ;
|
- le niveau de référence du sink Transport dédié revient de `debug` à `info` avant stable ;
|
||||||
- les écarts documentaires résiduels issus de l’audit complet sont normalisés : convention `bindings/gen`, README Config et inventaire composant HTTP ;
|
- les écarts documentaires résiduels issus de l’audit complet sont normalisés : convention `bindings/gen`, README Config et inventaire composant HTTP ;
|
||||||
- `prompts/007-V0_2_2_START_PROMPT.md` prépare `0.2.2 — HTTP Accounts + Tokens + Cluster` avec un nouvel audit officiel et gate de sizing ;
|
- `prompts/007-V0_2_2_START_PROMPT.md` prépare `0.2.2 — HTTP Accounts + Tokens + Cluster` avec un nouvel audit officiel et gate de sizing ;
|
||||||
- `CHANGELOG.md` n’est pas encore modifié : l’entrée stable `0.2.1` appartient à `rel.001`, conformément au workflow des releases précédentes.
|
- `CHANGELOG.md` est mis à jour dans `rel.001` avec la synthèse stable `0.2.1`.
|
||||||
|
|
||||||
Les validations Cargo et `cargo tree` de cette candidate doivent être exécutées sur le dépôt canonique. Si elles sont propres, `rel.001` reste strictement publicationnel : version stable, statuts ROADMAP/plan/validation, entrée CHANGELOG, delta de release, commit et tag `v0.2.1`.
|
Les validations Cargo, `cargo tree` et le smoke Devnet opt-in de cette candidate ont été exécutés avec succès sur le dépôt canonique. `rel.001` reste strictement publicationnel : version stable, statuts ROADMAP/plan/validation, entrée CHANGELOG et delta de release. Le commit `v0.2.1-rel.001` doit être validé avant création du tag stable `v0.2.1`.
|
||||||
|
|
||||||
|
### 22.7 Clôture stable `0.2.1-rel.001`
|
||||||
|
|
||||||
|
La publication stable est autorisée par les preuves opérateur du 2026-08-17 : `cargo fmt --all`, `cargo check --workspace`, `cargo clippy --workspace --all-targets`, tests ciblés Transport/Config/Core/Config Desk, `cargo test --workspace`, graphes `cargo tree` Transport et Config, puis smoke Devnet explicite. Le smoke live a atteint les quatre canaris avec le profil `devnet_public`.
|
||||||
|
|
||||||
|
TODO architectural conservé pour la suite : `ksp-config-lib` ne doit jamais devenir la destination générale des smoke tests cross-crates. Le test actuel `Config -> Transport -> Devnet` reste temporairement sous Config uniquement parce qu'aucune crate/surface d'intégration ou d'orchestration n'existe encore ; il devra migrer dès qu'une telle surface sera disponible, et les futurs smokes `Config + autre crate` devront viser cette surface dédiée.
|
||||||
|
|
||||||
## 23. Séquence `0.2.x` recalibrée
|
## 23. Séquence `0.2.x` recalibrée
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<!-- file: docs/validation/003-V0_2_1_ONCHAIN_HTTP.md -->
|
<!-- file: docs/validation/003-V0_2_1_ONCHAIN_HTTP.md -->
|
||||||
<!-- version: 1 -->
|
<!-- version: 2 -->
|
||||||
|
|
||||||
# Validation `0.2.1` — HTTP Solana foundation
|
# Validation `0.2.1` — HTTP Solana foundation
|
||||||
|
|
||||||
## Objet
|
## Objet
|
||||||
|
|
||||||
Cette matrice synthétise les critères de clôture de `0.2.1 — ksp-onchain-transport-lib / HTTP Solana foundation`, les preuves acquises jusqu'à `pre.006-fix.002` et les validations finales attendues de `pre.007` avant publication `rel.001`.
|
Cette matrice synthétise les critères de clôture de `0.2.1 — ksp-onchain-transport-lib / HTTP Solana foundation` et les preuves opérateur ayant autorisé la publication stable `0.2.1-rel.001`.
|
||||||
|
|
||||||
Elle ne remplace ni `docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md` ni les deltas `0.2.1`.
|
Elle ne remplace ni `docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md` ni les deltas `0.2.1`.
|
||||||
|
|
||||||
@@ -59,35 +59,35 @@ KSP les conserve comme `Deprecated / Removed / Historical`; `0.2.1` ne simule pa
|
|||||||
|
|
||||||
## Matrice de clôture
|
## Matrice de clôture
|
||||||
|
|
||||||
| Critère | État candidat `pre.007` | Preuve / contrat |
|
| Critère | État stable `0.2.1` | Preuve / contrat |
|
||||||
|------------------------------------------------------------|-------------------------|-----------------------------------------------------------------------|
|
|------------------------------------------------------------|---------------------|-----------------------------------------------------------------------|
|
||||||
| Crate `ksp-onchain-transport-lib` présente et indépendante | OK | manifest + canary Core `workspace_dependencies` |
|
| Crate `ksp-onchain-transport-lib` présente et indépendante | OK | manifest + canary Core `workspace_dependencies` |
|
||||||
| Transport -X-> Config/Store/Program | OK | canary de firewall workspace |
|
| Transport -X-> Config/Store/Program | OK | canary de firewall workspace |
|
||||||
| Transport -X-> `tracing` direct | OK | ownership Logging + `ksp-logging-lib` |
|
| Transport -X-> `tracing` direct | OK | ownership Logging + `ksp-logging-lib` |
|
||||||
| Features Cargo activées localement par consumer | OK | canary workspace + manifests |
|
| Features Cargo activées localement par consumer | OK | canary workspace + manifests |
|
||||||
| Target Logging explicite possédé par la crate | OK | `src/constants.rs` + canary `workspace_logging` |
|
| Target Logging explicite possédé par la crate | OK | `src/constants.rs` + canary `workspace_logging` |
|
||||||
| URL endpoint redacted dans settings/snapshots/Debug | OK | tests settings/client/pool/public API |
|
| URL endpoint redacted dans settings/snapshots/Debug | OK | tests settings/client/pool/public API |
|
||||||
| `reqwest::Error` source sans URL sensible | OK | `without_url()` + canary timeout secret |
|
| `reqwest::Error` source sans URL sensible | OK | `without_url()` + canary timeout secret |
|
||||||
| JSON-RPC 2.0 request/response/id/error | OK | tests `json_rpc` |
|
| JSON-RPC 2.0 request/response/id/error | OK | tests `json_rpc` |
|
||||||
| Registry HTTP courant | OK | 52 descriptors + canary de release |
|
| Registry HTTP courant | OK | 52 descriptors + canary de release |
|
||||||
| Registry historique Deprecated | OK | 14 descriptors `Removed` + canary de release |
|
| Registry historique Deprecated | OK | 14 descriptors `Removed` + canary de release |
|
||||||
| Partition typed future | OK | `4 / 22 / 11 / 15` pour `0.2.1`–`0.2.4` |
|
| Partition typed future | OK | `4 / 22 / 11 / 15` pour `0.2.1`–`0.2.4` |
|
||||||
| Quatre canaris typés exacts | OK | `getBalance`, `getGenesisHash`, `getHealth`, `getVersion` |
|
| Quatre canaris typés exacts | OK | `getBalance`, `getGenesisHash`, `getHealth`, `getVersion` |
|
||||||
| Pool rôles/capabilities/priorités/fairness | OK | tests pool |
|
| Pool rôles/capabilities/priorités/fairness | OK | tests pool |
|
||||||
| RPS/burst/concurrence/cooldown | OK | tests resilience/pool |
|
| RPS/burst/concurrence/cooldown | OK | tests resilience/pool |
|
||||||
| Deadline/timeout/retry borné | OK | tests executor/resilience |
|
| Deadline/timeout/retry borné | OK | tests executor/resilience |
|
||||||
| No-resend après dispatch ambigu | OK | descriptor + policy + tests |
|
| No-resend après dispatch ambigu | OK | descriptor + policy + tests |
|
||||||
| 429/Retry-After et statuts temporaires | OK | tests executor |
|
| 429/Retry-After et statuts temporaires | OK | tests executor |
|
||||||
| Config standard Transport | OK | `std.transport.json` + schema + example |
|
| Config standard Transport | OK | `std.transport.json` + schema + example |
|
||||||
| Direction Config -> Transport | OK | adapter `load_resolved_transport_config` |
|
| Direction Config -> Transport | OK | adapter `load_resolved_transport_config` |
|
||||||
| Sensibilité/provenance/env Transport | OK | tests Config |
|
| Sensibilité/provenance/env Transport | OK | tests Config |
|
||||||
| Logging Transport dédié | OK | sink dédié `info` dans `std.logging.json` |
|
| Logging Transport dédié | OK | sink dédié `info` dans `std.logging.json` |
|
||||||
| Tests réseau par défaut déterministes | OK | fixtures + serveur HTTP local |
|
| Tests réseau par défaut déterministes | OK | fixtures + serveur HTTP local |
|
||||||
| Smoke Devnet | OPT-IN | `tests/transport_devnet_smoke.rs`, ignored par défaut |
|
| Smoke Devnet | OPT-IN | `tests/transport_devnet_smoke.rs`, ignored par défaut |
|
||||||
| README durable | OK | `crates/ksp-onchain-transport-lib/README.md` |
|
| README durable | OK | `crates/ksp-onchain-transport-lib/README.md` |
|
||||||
| USAGE durable | OK | `crates/ksp-onchain-transport-lib/USAGE.md` |
|
| USAGE durable | OK | `crates/ksp-onchain-transport-lib/USAGE.md` |
|
||||||
| Prompt release suivante | OK | `prompts/007-V0_2_2_START_PROMPT.md` |
|
| Prompt release suivante | OK | `prompts/007-V0_2_2_START_PROMPT.md` |
|
||||||
| Matrice HTTP globale préservée | OK | plan `008`; 48 méthodes restantes restent affectées à `0.2.2`–`0.2.4` |
|
| Matrice HTTP globale préservée | OK | plan `008`; 48 méthodes restantes restent affectées à `0.2.2`–`0.2.4` |
|
||||||
|
|
||||||
## Canaries de complétude finales
|
## Canaries de complétude finales
|
||||||
|
|
||||||
@@ -103,11 +103,11 @@ historical => Deprecated + Removed + NotApplicable
|
|||||||
|
|
||||||
Ces checks complètent les tests unitaires existants du registre et protègent la frontière de release depuis l'API publique.
|
Ces checks complètent les tests unitaires existants du registre et protègent la frontière de release depuis l'API publique.
|
||||||
|
|
||||||
La candidate déclare **80 tests Transport** et **114 tests Config**, dont le smoke Devnet Config unique marqué `ignored`. Ces nombres sont des canaries de clôture de la candidate et devront être confirmés par Cargo sur le dépôt canonique.
|
La candidate validée déclare **80 tests Transport** et **114 tests Config**, dont le smoke Devnet Config unique marqué `ignored`. Cargo a confirmé ces surfaces sur le dépôt canonique avant `rel.001`.
|
||||||
|
|
||||||
## Smoke Devnet opt-in
|
## Smoke Devnet opt-in
|
||||||
|
|
||||||
Le smoke live appartient à `ksp-config-lib`, car il doit prouver la chaîne :
|
Le smoke live est temporairement hébergé dans `ksp-config-lib`, car la direction de dépendance actuelle permet d’y prouver la chaîne sans introduire Transport -> Config :
|
||||||
|
|
||||||
```text
|
```text
|
||||||
Config
|
Config
|
||||||
@@ -128,35 +128,24 @@ Exécution explicite :
|
|||||||
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
|
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
|
||||||
```
|
```
|
||||||
|
|
||||||
Ce test dépend d'un service Devnet externe. Il reste ignoré dans les suites déterministes et un incident/rate-limit du RPC public n'est pas assimilé à une régression locale sans analyse.
|
Ce test dépend d'un service Devnet externe. Il reste ignoré dans les suites déterministes et un incident/rate-limit du RPC public n'est pas assimilé à une régression locale sans analyse. Il a été exécuté explicitement avec succès avant `rel.001`.
|
||||||
|
|
||||||
## Audit `cargo tree` final attendu
|
**TODO ownership :** `ksp-config-lib` ne doit jamais devenir la destination générale des smoke tests, y compris pour les futurs scénarios `Config + autre crate`. Dès qu'une surface KSP d'intégration/orchestration appropriée existe, ce smoke doit y migrer ; les futurs smokes cross-crates doivent être créés directement sur cette surface dédiée.
|
||||||
|
|
||||||
À exécuter sur le dépôt canonique :
|
## Audit `cargo tree` final
|
||||||
|
|
||||||
```bash
|
Les graphes ont été exécutés sur le dépôt canonique pour Transport et Config sous les formes normale, duplicates et features. Ils confirment :
|
||||||
cargo tree -p ksp-onchain-transport-lib
|
|
||||||
cargo tree -p ksp-onchain-transport-lib -d
|
|
||||||
cargo tree -p ksp-onchain-transport-lib -e features
|
|
||||||
cargo tree -p ksp-onchain-transport-lib -e normal
|
|
||||||
|
|
||||||
cargo tree -p ksp-config-lib
|
- aucune dépendance Config sous Transport ;
|
||||||
cargo tree -p ksp-config-lib -d
|
|
||||||
cargo tree -p ksp-config-lib -e features
|
|
||||||
cargo tree -p ksp-config-lib -e normal
|
|
||||||
```
|
|
||||||
|
|
||||||
Points attendus :
|
|
||||||
|
|
||||||
- pas de Config sous Transport ;
|
|
||||||
- Config dépend de Transport dans le sens autorisé ;
|
- Config dépend de Transport dans le sens autorisé ;
|
||||||
- pas de Store/Program ;
|
- aucune dépendance Store/Program ;
|
||||||
- pas de `tracing` direct chez Transport ;
|
- aucune dépendance `tracing` directe de Transport ;
|
||||||
- `reqwest/rustls`, `serde/derive`, Tokio Transport et Tokio de test Config restent activés localement par les crates consommatrices.
|
- `reqwest/rustls`, `serde/derive`, Tokio Transport et Tokio de test Config restent activés localement par les crates consommatrices ;
|
||||||
|
- les doublons signalés par `cargo tree -d` sont limités à `syn` 2.x/3.x dans les graphes inspectés et proviennent des chaînes proc-macro/transitives, sans duplication d'une stack HTTP/Tokio KSP concurrente.
|
||||||
|
|
||||||
## Validations finales de `pre.007`
|
## Validations finales opérateur
|
||||||
|
|
||||||
Avant commit :
|
Validé le 2026-08-17 sur le dépôt canonique :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cargo fmt --all
|
cargo fmt --all
|
||||||
@@ -169,26 +158,24 @@ cargo test -p ksp-app-config-desk
|
|||||||
cargo test --workspace
|
cargo test --workspace
|
||||||
```
|
```
|
||||||
|
|
||||||
Puis, de manière opt-in :
|
Le smoke live a ensuite été exécuté explicitement :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
|
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
|
||||||
```
|
```
|
||||||
|
|
||||||
Le smoke live est une preuve supplémentaire ; les suites déterministes restent la gate reproductible de publication.
|
Résultat : `1 passed; 0 failed`; les quatre canaris foundation sont donc atteints via le profil Devnet committé.
|
||||||
|
|
||||||
## Préparation de `rel.001`
|
## Publication `rel.001`
|
||||||
|
|
||||||
Si les validations de `pre.007` sont propres, `rel.001` doit rester minimal :
|
`0.2.1-rel.001` ne contient aucune nouvelle capacité HTTP. Il publie :
|
||||||
|
|
||||||
```text
|
```text
|
||||||
workspace.package.version -> 0.2.1
|
workspace.package.version -> 0.2.1
|
||||||
ROADMAP : 0.2.1 -> [X]
|
ROADMAP : 0.2.1 -> [X]
|
||||||
CHANGELOG : synthèse stable 0.2.1
|
CHANGELOG : synthèse stable 0.2.1
|
||||||
plan 008 / matrice 003 : statut clôturé et preuves opérateur
|
plan 008 / matrice 003 : statut clôturé et preuves opérateur
|
||||||
nouveau delta deltas/0.2.1/rel.001.md
|
delta deltas/0.2.1/rel.001.md
|
||||||
commit v0.2.1-rel.001
|
commit v0.2.1-rel.001
|
||||||
tag v0.2.1
|
tag stable v0.2.1 après validation du commit de release
|
||||||
```
|
```
|
||||||
|
|
||||||
Aucune nouvelle capacité HTTP ne doit être introduite dans `rel.001`.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user