249 lines
7.1 KiB
Markdown
249 lines
7.1 KiB
Markdown
<!-- file: deltas/0.2.2/pre.007.md -->
|
||
<!-- version: 1 -->
|
||
|
||
# Delta `v0.2.2-pre.007`
|
||
|
||
## Base
|
||
|
||
Base attendue :
|
||
|
||
```text
|
||
v0.2.2-pre.006-fix.001
|
||
```
|
||
|
||
Cette base a été validée localement par l'opérateur le 2026-08-18 avec :
|
||
|
||
- `cargo fmt --all` ;
|
||
- `cargo check --workspace` ;
|
||
- `cargo clippy --workspace --all-targets` ;
|
||
- `cargo test -p ksp-onchain-transport-lib`.
|
||
|
||
Résultats Transport communiqués :
|
||
|
||
```text
|
||
127 unit tests passed
|
||
13 public API tests passed
|
||
6 release completeness tests passed
|
||
0 warning clippy signalé
|
||
```
|
||
|
||
Version Cargo cible :
|
||
|
||
```text
|
||
0.2.2-pre.7
|
||
```
|
||
|
||
## Objectif
|
||
|
||
Fermer la dernière prerelease fonctionnelle de `0.2.2` sans ajouter de nouvelle méthode HTTP :
|
||
|
||
- revérifier l'inventaire officiel Solana ;
|
||
- figer la complétude exacte des 22 wrappers `0.2.2` ;
|
||
- ajouter un smoke Devnet opt-in **Transport pur** avec settings programmatiques ;
|
||
- conserver séparément le smoke historique de composition Config -> Transport ;
|
||
- synchroniser README/USAGE et la documentation d'architecture/planification ;
|
||
- produire la matrice finale `0.2.2` ;
|
||
- produire le prompt de démarrage `0.2.3 — HTTP Transactions` ;
|
||
- préparer un `rel.001` strictement publicationnel.
|
||
|
||
Aucun 23e wrapper `0.2.2` et aucune méthode Transactions n'est introduit dans cette tranche.
|
||
|
||
## Réaudit officiel final
|
||
|
||
La documentation officielle Solana a été revérifiée le 2026-08-18 :
|
||
|
||
```text
|
||
https://solana.com/docs/rpc/http
|
||
https://solana.com/docs/rpc/deprecated/confirmtransaction
|
||
```
|
||
|
||
L'index courant contient toujours :
|
||
|
||
```text
|
||
52 méthodes HTTP courantes
|
||
14 méthodes historiques Deprecated
|
||
```
|
||
|
||
Les familles restent :
|
||
|
||
```text
|
||
Accounts : 6 current
|
||
Tokens : 5 current
|
||
Cluster : 15 current
|
||
```
|
||
|
||
En retranchant les quatre canaris `0.2.1` (`getBalance`, `getGenesisHash`, `getHealth`, `getVersion`), la partition `0.2.2` reste exactement `5 + 5 + 12 = 22`. Aucun recalibrage n'est nécessaire.
|
||
|
||
## Canaries de complétude
|
||
|
||
`tests/release_completeness.rs` gagne un canary final qui fige depuis l'API publique :
|
||
|
||
```text
|
||
V0_2_2 exact set == 22 méthodes du plan 009
|
||
22 => Stable + Supported + Read + RetrySafe
|
||
V0_2_3 count == 11
|
||
V0_2_4 count == 15
|
||
```
|
||
|
||
Les canaries antérieures `52 + 14`, `4 / 22 / 11 / 15`, foundation exacte, Accounts, Tokens et Cluster restent inchangées.
|
||
|
||
La candidate attend donc :
|
||
|
||
```text
|
||
127 tests unitaires Transport
|
||
13 tests public API
|
||
7 tests release completeness
|
||
1 smoke Devnet Transport ignored par défaut
|
||
```
|
||
|
||
## Smoke Devnet Transport pur
|
||
|
||
Nouveau test :
|
||
|
||
```text
|
||
crates/ksp-onchain-transport-lib/tests/transport_devnet_smoke.rs
|
||
```
|
||
|
||
Contrairement au smoke historique de `0.2.1`, il ne dépend pas de Config :
|
||
|
||
```text
|
||
settings programmatiques
|
||
-> https://api.devnet.solana.com
|
||
-> HttpTransportPool
|
||
-> getAccountInfo(System Program)
|
||
-> getTokenSupply(mint de l'exemple Devnet officiel courant)
|
||
-> getEpochInfo
|
||
-> getVoteAccounts
|
||
```
|
||
|
||
Exécution opt-in :
|
||
|
||
```bash
|
||
cargo test -p ksp-onchain-transport-lib --test transport_devnet_smoke -- --ignored --nocapture
|
||
```
|
||
|
||
Ce smoke appartient durablement à Transport parce qu'il ne valide que Transport. Il reste `ignored` car il dépend d'un réseau externe et d'un état Devnet.
|
||
|
||
Le smoke `crates/ksp-config-lib/tests/transport_devnet_smoke.rs` reste séparé et valide uniquement la composition historique :
|
||
|
||
```text
|
||
Config -> Transport -> quatre canaris foundation
|
||
```
|
||
|
||
Il reste transitoire et devra migrer vers une future surface d'intégration/orchestration/demo ; Config ne devient pas la destination générale des smokes cross-crates.
|
||
|
||
## Documentation durable
|
||
|
||
Mises à jour :
|
||
|
||
- README Transport : 26 wrappers typed candidats, répartition 4 + 5 + 5 + 12 et ownership des deux smokes ;
|
||
- USAGE Transport : exemples typed `0.2.2` et commandes des deux smokes ;
|
||
- inventaire composant : état candidate `0.2.2` ;
|
||
- séquence fonctionnelle : `pre.002`–`pre.006` exécutées et `pre.007` candidate ;
|
||
- plan `009` : état candidate, réaudit final, smoke et préparation stable ;
|
||
- ROADMAP : `0.2.2` passe à `[/]`, pas à `[X]` avant stable ;
|
||
- index docs/plans/validation/prompts synchronisés.
|
||
|
||
Nouveaux documents :
|
||
|
||
```text
|
||
docs/validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md
|
||
prompts/008-V0_2_3_START_PROMPT.md
|
||
```
|
||
|
||
`CHANGELOG.md` n'est volontairement pas modifié dans cette prerelease.
|
||
|
||
## Prompt `0.2.3`
|
||
|
||
Le prompt suivant cible exactement les 11 méthodes Transactions actuellement affectées à `V0_2_3` :
|
||
|
||
```text
|
||
8 Read / RetrySafe
|
||
2 WriteSubmission / NeverAfterDispatch
|
||
1 Simulation / RetrySafe
|
||
```
|
||
|
||
Il impose un nouveau `pre.001` d'audit/sizing et met au premier plan la règle no-resend de `requestAirdrop` et `sendTransaction`.
|
||
|
||
## Préparation de `rel.001`
|
||
|
||
Si la candidate passe les validations opérateur, `rel.001` doit rester publicationnel :
|
||
|
||
```text
|
||
workspace.package.version -> 0.2.2
|
||
ROADMAP : 0.2.2 -> [X]
|
||
CHANGELOG : synthèse stable 0.2.2
|
||
plan 009 / validation 004 : clôture + preuves opérateur
|
||
deltas/0.2.2/rel.001.md
|
||
commit v0.2.2-rel.001
|
||
tag v0.2.2 après validation du commit
|
||
```
|
||
|
||
Aucun développement fonctionnel nouveau ne doit entrer dans `rel.001`.
|
||
|
||
## Fichiers ajoutés
|
||
|
||
```text
|
||
crates/ksp-onchain-transport-lib/tests/transport_devnet_smoke.rs
|
||
docs/validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md
|
||
prompts/008-V0_2_3_START_PROMPT.md
|
||
deltas/0.2.2/pre.007.md
|
||
```
|
||
|
||
## Fichiers modifiés
|
||
|
||
```text
|
||
Cargo.toml
|
||
ROADMAP.md
|
||
crates/ksp-onchain-transport-lib/README.md
|
||
crates/ksp-onchain-transport-lib/USAGE.md
|
||
crates/ksp-onchain-transport-lib/tests/release_completeness.rs
|
||
docs/000-README.md
|
||
docs/architecture/004-COMPONENT_INVENTORY.md
|
||
docs/plans/000-README.md
|
||
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
|
||
docs/plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md
|
||
docs/validation/000-README.md
|
||
prompts/000-README.md
|
||
```
|
||
|
||
Aucun ancien delta et aucun `CHANGELOG.md` ne sont modifiés.
|
||
|
||
## Validations exécutées dans la préparation de livraison
|
||
|
||
Contrôles statiques exécutés :
|
||
|
||
- version Cargo `0.2.2-pre.7` ;
|
||
- présence exacte des 22 noms dans le canary final ;
|
||
- fixture live absente des suites par défaut via `#[ignore]` ;
|
||
- smoke Transport sans dépendance Config ni lecture d'environnement ;
|
||
- index docs/plans/validation/prompts synchronisés ;
|
||
- versions de fichiers modifiés incrémentées ;
|
||
- aucun ajout de dépendance/feature Cargo ;
|
||
- archive réextraite et comparée au payload préparé.
|
||
|
||
Cargo n'est pas disponible dans l'environnement de préparation. Les validations suivantes restent donc à exécuter par l'opérateur sur le dépôt canonique :
|
||
|
||
```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 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
|
||
cargo tree -p ksp-config-lib -d
|
||
cargo tree -p ksp-config-lib -e features
|
||
cargo tree -p ksp-config-lib -e normal
|
||
|
||
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
|
||
```
|