160 lines
3.9 KiB
Markdown
160 lines
3.9 KiB
Markdown
<!-- 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.
|