v0.2.3-pre.006-fix.001
This commit is contained in:
@@ -1,12 +1,12 @@
|
|||||||
# file: Cargo.toml
|
# file: Cargo.toml
|
||||||
# version: 126
|
# version: 127
|
||||||
|
|
||||||
[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.3-pre.6"
|
version = "0.2.3-pre.6.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"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs
|
// file: crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs
|
||||||
// version: 6
|
// version: 7
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn transaction_encoding_strings_match_current_and_legacy_wire_labels() {
|
fn transaction_encoding_strings_match_current_and_legacy_wire_labels() {
|
||||||
@@ -308,7 +308,7 @@ fn transaction_pool_for_urls(urls: &[(&str, u32)], request_timeout: std::time::D
|
|||||||
true,
|
true,
|
||||||
crate::HttpProviderName::new("fixture"),
|
crate::HttpProviderName::new("fixture"),
|
||||||
crate::HttpClusterName::new("local"),
|
crate::HttpClusterName::new("local"),
|
||||||
crate::HttpEndpointUrl::parse(url).expect("fixture URL must parse"),
|
crate::HttpEndpointUrl::parse(*url).expect("fixture URL must parse"),
|
||||||
std::time::Duration::from_millis(100),
|
std::time::Duration::from_millis(100),
|
||||||
request_timeout,
|
request_timeout,
|
||||||
std::option::Option::Some(1),
|
std::option::Option::Some(1),
|
||||||
|
|||||||
159
deltas/0.2.3/pre.006-fix.001.md
Normal file
159
deltas/0.2.3/pre.006-fix.001.md
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
<!-- file: deltas/0.2.3/pre.006-fix.001.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Delta `0.2.3-pre.006-fix.001` — type URL des fixtures write
|
||||||
|
|
||||||
|
## Base requise
|
||||||
|
|
||||||
|
Ce correctif s'applique après :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.2.3-pre.006
|
||||||
|
workspace.package.version = "0.2.3-pre.6"
|
||||||
|
```
|
||||||
|
|
||||||
|
Le commit de livraison attendu pour la base est :
|
||||||
|
|
||||||
|
```text
|
||||||
|
v0.2.3-pre.006
|
||||||
|
```
|
||||||
|
|
||||||
|
## Motif du fix
|
||||||
|
|
||||||
|
Les validations opérateur du 2026-08-18 ont établi :
|
||||||
|
|
||||||
|
```text
|
||||||
|
cargo fmt --all OK
|
||||||
|
cargo check --workspace OK
|
||||||
|
cargo clippy --workspace --all-targets ÉCHEC dans lib test
|
||||||
|
cargo test -p ksp-onchain-transport-lib ÉCHEC à la compilation de lib test
|
||||||
|
```
|
||||||
|
|
||||||
|
Le défaut est strictement situé dans le helper de fixtures HTTP multi-endpoints ajouté par `pre.006` :
|
||||||
|
|
||||||
|
```rust
|
||||||
|
for (index, (url, priority)) in urls.iter().enumerate() {
|
||||||
|
// ...
|
||||||
|
HttpEndpointUrl::parse(url)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`urls` est de type `&[(&str, u32)]`. L'itération par référence produit donc `url: &&str`, alors que `HttpEndpointUrl::parse` attend une valeur implémentant `Into<String>`. `&&str` n'implémente pas cette conversion.
|
||||||
|
|
||||||
|
Le compilateur propose correctement de déréférencer une fois la valeur :
|
||||||
|
|
||||||
|
```rust
|
||||||
|
HttpEndpointUrl::parse(*url)
|
||||||
|
```
|
||||||
|
|
||||||
|
Aucun défaut de production, de policy write ou de no-resend n'est mis en évidence par cette erreur ; la compilation échoue avant l'exécution des nouveaux tests de `pre.006`.
|
||||||
|
|
||||||
|
## Version technique
|
||||||
|
|
||||||
|
Le correctif modifie une source Rust de test. Conformément au signal technique KSP :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.2.3-pre.6 -> 0.2.3-pre.6.fix.1
|
||||||
|
```
|
||||||
|
|
||||||
|
Le header du `Cargo.toml` passe de `version: 126` à `version: 127`.
|
||||||
|
|
||||||
|
Le commit de livraison attendu est :
|
||||||
|
|
||||||
|
```text
|
||||||
|
v0.2.3-pre.006-fix.001
|
||||||
|
```
|
||||||
|
|
||||||
|
## Correction
|
||||||
|
|
||||||
|
Dans :
|
||||||
|
|
||||||
|
```text
|
||||||
|
crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs
|
||||||
|
```
|
||||||
|
|
||||||
|
la construction des endpoints de fixture passe désormais la chaîne référencée elle-même :
|
||||||
|
|
||||||
|
```rust
|
||||||
|
crate::HttpEndpointUrl::parse(*url).expect("fixture URL must parse")
|
||||||
|
```
|
||||||
|
|
||||||
|
Le header du fichier passe de `version: 6` à `version: 7`.
|
||||||
|
|
||||||
|
Cette modification ne change ni l'URL, ni l'ordre des endpoints, ni leurs priorités, ni les paramètres de retry. Elle corrige uniquement le niveau de référence transmis au constructeur typé.
|
||||||
|
|
||||||
|
## Contrats inchangés
|
||||||
|
|
||||||
|
Le correctif ne change pas :
|
||||||
|
|
||||||
|
- `requestAirdrop` ;
|
||||||
|
- `sendTransaction` ;
|
||||||
|
- leurs configs publiques ;
|
||||||
|
- les encodings `base58` / `base64` ;
|
||||||
|
- la distinction `sendTransaction.maxRetries` / retry HTTP KSP ;
|
||||||
|
- les descriptors `WriteSubmission / NeverAfterDispatch` ;
|
||||||
|
- la policy centrale no-resend après dispatch ambigu ;
|
||||||
|
- les fixtures JSON de `pre.006` ;
|
||||||
|
- le plan `010` ;
|
||||||
|
- `KSP-TRANSPORT-007` ;
|
||||||
|
- les dépendances ;
|
||||||
|
- le nombre ou le contenu fonctionnel des tests ajoutés par `pre.006`.
|
||||||
|
|
||||||
|
Aucun fichier de production de `ksp-onchain-transport-lib` n'est modifié.
|
||||||
|
|
||||||
|
## Fichiers modifiés
|
||||||
|
|
||||||
|
```text
|
||||||
|
Cargo.toml
|
||||||
|
crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs
|
||||||
|
```
|
||||||
|
|
||||||
|
## Fichier ajouté
|
||||||
|
|
||||||
|
```text
|
||||||
|
deltas/0.2.3/pre.006-fix.001.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dépendances
|
||||||
|
|
||||||
|
Aucune dépendance ajoutée, supprimée ou modifiée.
|
||||||
|
|
||||||
|
## Validations à rejouer
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo fmt --all
|
||||||
|
cargo check --workspace
|
||||||
|
cargo clippy --workspace --all-targets
|
||||||
|
cargo test -p ksp-onchain-transport-lib
|
||||||
|
```
|
||||||
|
|
||||||
|
Résultat attendu après compilation du test :
|
||||||
|
|
||||||
|
```text
|
||||||
|
175 unit tests
|
||||||
|
18 public API tests
|
||||||
|
12 release completeness tests
|
||||||
|
1 smoke Devnet ignored / opt-in
|
||||||
|
0 échec
|
||||||
|
```
|
||||||
|
|
||||||
|
Les tests write de `pre.006` doivent notamment pouvoir s'exécuter et démontrer les scénarios no-resend 429 / 503 / timeout ainsi que le fallback autorisé après `NotDispatched`.
|
||||||
|
|
||||||
|
Aucune validation du fix lui-même n'est déclarée réussie sans exécution réelle sur le dépôt opérateur.
|
||||||
|
|
||||||
|
## Suite
|
||||||
|
|
||||||
|
Après validation et commit de :
|
||||||
|
|
||||||
|
```text
|
||||||
|
v0.2.3-pre.006-fix.001
|
||||||
|
```
|
||||||
|
|
||||||
|
reprendre la tranche planifiée :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.2.3-pre.007
|
||||||
|
simulateTransaction complet
|
||||||
|
```
|
||||||
|
|
||||||
|
Le réaudit rétroactif `KSP-TRANSPORT-007` reste planifié dans une prerelease dédiée avant la tranche finale de clôture.
|
||||||
Reference in New Issue
Block a user