v0.2.2-pre.003-fix.001
This commit is contained in:
@@ -6,7 +6,7 @@ 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.2-pre.3"
|
version = "0.2.2-pre.3.fix.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"
|
||||||
|
|||||||
@@ -165,11 +165,9 @@ pub use self::rpc_common::SolanaContextConfig;
|
|||||||
pub use self::rpc_common::SolanaRpcContext;
|
pub use self::rpc_common::SolanaRpcContext;
|
||||||
/// Generic contextual result returned by typed Solana HTTP RPC adapters.
|
/// Generic contextual result returned by typed Solana HTTP RPC adapters.
|
||||||
pub use self::rpc_common::SolanaRpcResponse;
|
pub use self::rpc_common::SolanaRpcResponse;
|
||||||
#[cfg(test)]
|
/// Decodes one private serde wire type into the shared Transport error domain for typed RPC adapters.
|
||||||
/// Decodes one private serde wire type into the shared Transport error domain for staged DTO tests.
|
|
||||||
pub(crate) use self::rpc_common::decode_wire_json;
|
pub(crate) use self::rpc_common::decode_wire_json;
|
||||||
#[cfg(test)]
|
/// Parses a base58 public key without echoing its wire value into diagnostics for typed RPC adapters.
|
||||||
/// Parses a base58 public key without echoing its wire value into diagnostics for staged DTO tests.
|
|
||||||
pub(crate) use self::rpc_common::parse_wire_pubkey;
|
pub(crate) use self::rpc_common::parse_wire_pubkey;
|
||||||
/// Functional category used by the audited Solana HTTP JSON-RPC registry.
|
/// Functional category used by the audited Solana HTTP JSON-RPC registry.
|
||||||
pub use self::rpc_method::HttpRpcCategory;
|
pub use self::rpc_method::HttpRpcCategory;
|
||||||
|
|||||||
154
deltas/0.2.2/pre.003-fix.001.md
Normal file
154
deltas/0.2.2/pre.003-fix.001.md
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
<!-- file: deltas/0.2.2/pre.003-fix.001.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Delta `0.2.2-pre.003-fix.001` — activation production des helpers wire Accounts partagés
|
||||||
|
|
||||||
|
## Base requise
|
||||||
|
|
||||||
|
```text
|
||||||
|
livraison : 0.2.2-pre.003
|
||||||
|
workspace.package.version = "0.2.2-pre.3"
|
||||||
|
```
|
||||||
|
|
||||||
|
Le correctif est ouvert après validation locale communiquée le 2026-08-18. `pre.003` active en production les cinq wrappers Accounts, mais leurs
|
||||||
|
chemins de décodage utilisent `crate::decode_wire_json` et `crate::parse_wire_pubkey` alors que les deux réexports crate-private sont restés
|
||||||
|
conditionnés par `#[cfg(test)]` dans `lib.rs` depuis le nettoyage préparatoire de `pre.002-fix.001`.
|
||||||
|
|
||||||
|
La conséquence est une régression de compilation `E0425` sur `cargo check`, `cargo clippy` et `cargo test`.
|
||||||
|
|
||||||
|
## Objectif
|
||||||
|
|
||||||
|
Rendre production-live uniquement les deux réexports crate-private désormais réellement consommés par les wrappers Accounts, sans modifier leur
|
||||||
|
visibilité externe, sans changer les contrats publics `pre.003`, sans réécrire le delta historique `pre.003.md` et sans commencer la famille
|
||||||
|
Tokens de `pre.004`.
|
||||||
|
|
||||||
|
## Version Cargo
|
||||||
|
|
||||||
|
Le correctif modifie du Rust de production. Conformément à `VER-ID-007` et `VER-ID-010` :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.2.2-pre.3 -> 0.2.2-pre.3.fix.1
|
||||||
|
```
|
||||||
|
|
||||||
|
Aucune dépendance ni feature Cargo n'est ajoutée ou retirée.
|
||||||
|
|
||||||
|
## Correction
|
||||||
|
|
||||||
|
Dans `crates/ksp-onchain-transport-lib/src/lib.rs`, les deux réexports internes suivants ne sont plus conditionnés par `#[cfg(test)]` :
|
||||||
|
|
||||||
|
```text
|
||||||
|
pub(crate) use self::rpc_common::decode_wire_json;
|
||||||
|
pub(crate) use self::rpc_common::parse_wire_pubkey;
|
||||||
|
```
|
||||||
|
|
||||||
|
Leurs commentaires sont ajustés pour décrire leur rôle réel dans les adapters RPC typés, et non plus uniquement dans les tests préparatoires.
|
||||||
|
|
||||||
|
La visibilité reste strictement `pub(crate)` :
|
||||||
|
|
||||||
|
- aucune nouvelle API publique externe n'est créée ;
|
||||||
|
- `rpc_common` reste propriétaire des implémentations ;
|
||||||
|
- les wrappers Accounts peuvent continuer à utiliser la façade interne `crate::...` ;
|
||||||
|
- aucun callsite Accounts n'est modifié ;
|
||||||
|
- aucun `#[allow(...)]` n'est ajouté.
|
||||||
|
|
||||||
|
## Fichiers ajoutés
|
||||||
|
|
||||||
|
```text
|
||||||
|
deltas/0.2.2/pre.003-fix.001.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Fichiers modifiés
|
||||||
|
|
||||||
|
```text
|
||||||
|
Cargo.toml
|
||||||
|
crates/ksp-onchain-transport-lib/src/lib.rs
|
||||||
|
```
|
||||||
|
|
||||||
|
## Fichiers supprimés
|
||||||
|
|
||||||
|
Aucun.
|
||||||
|
|
||||||
|
## Fichiers volontairement inchangés
|
||||||
|
|
||||||
|
```text
|
||||||
|
deltas/0.2.2/pre.003.md
|
||||||
|
deltas/0.2.2/pre.002-fix.002.md
|
||||||
|
docs/plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md
|
||||||
|
ROADMAP.md
|
||||||
|
CHANGELOG.md
|
||||||
|
crates/ksp-onchain-transport-lib/src/rpc_common.rs
|
||||||
|
crates/ksp-onchain-transport-lib/src/rpc_accounts.rs
|
||||||
|
crates/ksp-onchain-transport-lib/src/rpc_tokens.rs
|
||||||
|
crates/ksp-onchain-transport-lib/src/rpc_cluster.rs
|
||||||
|
crates/ksp-onchain-transport-lib/unit_tests/**
|
||||||
|
crates/ksp-onchain-transport-lib/tests/**
|
||||||
|
crates/ksp-config-lib/**
|
||||||
|
config/**
|
||||||
|
```
|
||||||
|
|
||||||
|
Les deltas déjà publiés restent des traces historiques et ne sont pas réécrits.
|
||||||
|
|
||||||
|
## Validation ayant déclenché le correctif
|
||||||
|
|
||||||
|
Les commandes suivantes ont été exécutées par l'utilisateur sur `0.2.2-pre.003` :
|
||||||
|
|
||||||
|
```text
|
||||||
|
cargo fmt --all : exécuté
|
||||||
|
cargo check --workspace : ÉCHEC E0425
|
||||||
|
cargo clippy --workspace --all-targets : ÉCHEC E0425
|
||||||
|
cargo test -p ksp-onchain-transport-lib : ÉCHEC E0425
|
||||||
|
```
|
||||||
|
|
||||||
|
Les erreurs concernent douze usages production dans `rpc_accounts.rs`. Les deux symboles absents sont :
|
||||||
|
|
||||||
|
```text
|
||||||
|
crate::decode_wire_json
|
||||||
|
crate::parse_wire_pubkey
|
||||||
|
```
|
||||||
|
|
||||||
|
Le compilateur confirme que leurs réexports existent dans `lib.rs`, mais sont configurés hors build normal par `#[cfg(test)]`.
|
||||||
|
|
||||||
|
## Contrôles statiques effectués pendant la préparation du fix
|
||||||
|
|
||||||
|
- `decode_wire_json` reste défini production-live dans `rpc_common.rs` ;
|
||||||
|
- `parse_wire_pubkey` reste défini production-live dans `rpc_common.rs` ;
|
||||||
|
- seuls leurs deux réexports crate-private perdent `#[cfg(test)]` ;
|
||||||
|
- leur visibilité reste `pub(crate)` ;
|
||||||
|
- les douze callsites `rpc_accounts.rs` restent inchangés ;
|
||||||
|
- aucun `#[allow(dead_code)]` ou autre suppression de lint n'est ajouté ;
|
||||||
|
- aucun wrapper Token/Cluster supplémentaire n'est activé ;
|
||||||
|
- aucune dépendance, feature ou configuration n'est modifiée ;
|
||||||
|
- `workspace.package.version` vaut `0.2.2-pre.3.fix.1` ;
|
||||||
|
- le delta `pre.003.md` reste inchangé.
|
||||||
|
|
||||||
|
## Validations du correctif non exécutées dans le sandbox
|
||||||
|
|
||||||
|
Le sandbox de préparation ne fournit pas la toolchain Cargo utilisée par le checkout opérateur. Les validations Rust du présent fix ne sont donc
|
||||||
|
pas déclarées réussies.
|
||||||
|
|
||||||
|
Après application, exécuter :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo fmt --all
|
||||||
|
cargo check --workspace
|
||||||
|
cargo clippy --workspace --all-targets
|
||||||
|
cargo test -p ksp-onchain-transport-lib
|
||||||
|
```
|
||||||
|
|
||||||
|
Le résultat attendu est une compilation normale des cinq wrappers Accounts, sans les `E0425` signalées et sans nouveau warning.
|
||||||
|
|
||||||
|
## Décisions prises
|
||||||
|
|
||||||
|
- promouvoir les deux réexports internes parce qu'ils ont maintenant des consommateurs production réels ;
|
||||||
|
- conserver `pub(crate)` plutôt que d'élargir l'API publique ;
|
||||||
|
- ne pas modifier les douze callsites Accounts alors que leur chemin via la façade interne crate est cohérent ;
|
||||||
|
- ne pas réintroduire de gating test sur des helpers consommés au runtime ;
|
||||||
|
- ne pas commencer `pre.004` avant validation de ce fix.
|
||||||
|
|
||||||
|
## Questions ouvertes
|
||||||
|
|
||||||
|
Aucune question bloquante.
|
||||||
|
|
||||||
|
## Suite
|
||||||
|
|
||||||
|
Après validation et commit de `0.2.2-pre.003-fix.001`, clôturer `pre.003` puis poursuivre avec `0.2.2-pre.004` pour les cinq wrappers Tokens.
|
||||||
Reference in New Issue
Block a user