Files
khadhroony-solana-project/deltas/0.2.1/rel.001.md
2026-08-17 22:50:56 +02:00

5.3 KiB
Raw Blame History

Delta v0.2.1-rel.001

Base

Base attendue :

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 :

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 :

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.20.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 :

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 :

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 :

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 :

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 :

v0.2.1-rel.001

Le tag stable ne doit être créé qu'après application et validation de ce delta :

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 :

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.