134 lines
3.9 KiB
Markdown
134 lines
3.9 KiB
Markdown
<!-- file: deltas/0.2.5/pre.010-fix.003.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.2.5-pre.010-fix.003` — alignement audit Rust sur rustfmt et TODO prix offchain
|
|
|
|
## 1. Base et version
|
|
|
|
Base :
|
|
|
|
```text
|
|
0.2.5-pre.010-fix.002
|
|
workspace.package.version = 0.2.5-pre.10.fix.2
|
|
```
|
|
|
|
Version technique cible :
|
|
|
|
```text
|
|
workspace.package.version = 0.2.5-pre.10.fix.3
|
|
```
|
|
|
|
Identifiant de livraison :
|
|
|
|
```text
|
|
0.2.5-pre.010-fix.003
|
|
```
|
|
|
|
Commit attendu après validation :
|
|
|
|
```text
|
|
v0.2.5-pre.010-fix.003
|
|
```
|
|
|
|
Aucun tag stable n'est créé par ce fix et `rel.001` reste bloqué jusqu'à validation complète.
|
|
|
|
## 2. Cause du fix
|
|
|
|
Après application de `fix.002`, l'opérateur a exécuté la séquence canonique :
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
python3 scripts/audit_rust_workspace_rules.py
|
|
```
|
|
|
|
`cargo fmt` a produit un ordre valide et canonique dans les façades, mais l'audit Python a ensuite signalé 52 violations `RUST-FMT-107` parce qu'il imposait son propre tri alphabétique par **symbole exporté**.
|
|
|
|
Ce contrôle était incorrect : l'audit structurel ne doit pas réimplémenter un ordre de réexports différent de celui possédé par rustfmt.
|
|
|
|
Les contrôles Rust/Cargo du même checkpoint étaient par ailleurs verts : `cargo check --workspace`, Clippy, tests Wallet et tests workspace complets passent.
|
|
|
|
## 3. Correction de l'audit des réexports
|
|
|
|
`RUST-FMT-107` est retiré de `audit_rust_general_rules.py`.
|
|
|
|
Le script continue de vérifier les contraintes structurelles que rustfmt ne possède pas :
|
|
|
|
```text
|
|
pub use avant pub(crate) use
|
|
exactement une ligne vide entre les deux visibilités
|
|
aucune ligne vide à l'intérieur d'un bloc homogène
|
|
pas de grouped use/re-export
|
|
pas de glob
|
|
pas d'alias
|
|
réexports internes via self::
|
|
rustdoc adjacente
|
|
résolution crate-root via l'audit de complétude
|
|
```
|
|
|
|
En revanche, l'ordre intra-bloc des `use`/réexports est désormais explicitement délégué à :
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
```
|
|
|
|
Le script ne tente plus de trier par symbole exporté ni de reproduire l'algorithme de rustfmt.
|
|
|
|
## 4. Règles Rust synchronisées
|
|
|
|
`RULES_RUST.md` précise désormais que :
|
|
|
|
- `rustfmt.toml` et `cargo fmt --all` sont canoniques pour l'ordre interne des `use`/réexports ;
|
|
- `RUST-FMT-005` n'impose pas son tri générique aux `use`/réexports ;
|
|
- `RUST-FMT-007` ne possède que la structure `pub` / `pub(crate)` et l'espacement ;
|
|
- `RUST-AUDIT-003` interdit explicitement au script de réimplémenter un ordre concurrent à rustfmt.
|
|
|
|
## 5. TODO `0.2.11` ajouté au prompt `0.2.6`
|
|
|
|
Le prompt `prompts/011-V0_2_6_START_PROMPT.md` contient maintenant un TODO durable :
|
|
|
|
```text
|
|
0.2.11
|
|
après réalisation et validation de l'application spécialisée de visualisation
|
|
de prix offchain, intégrer cette capacité dans ksp-app-wallet-desk
|
|
```
|
|
|
|
Le TODO précise que `0.2.6` ne doit pas anticiper cette logique et que `0.2.11` devra réauditer la frontière de partage afin de ne pas dupliquer récupération, normalisation, cache ou contrats de prix dans Wallet Desk.
|
|
|
|
## 6. Périmètre
|
|
|
|
Ce fix ne modifie :
|
|
|
|
```text
|
|
aucun fichier Rust
|
|
aucune API runtime
|
|
aucun wire .kspwallet
|
|
aucune dépendance
|
|
aucune primitive cryptographique
|
|
```
|
|
|
|
Le bump Cargo est requis parce que le script d'audit fait partie du toolchain de validation technique KSP.
|
|
|
|
## 7. Validation de préparation
|
|
|
|
Les scripts Python modifiés doivent passer :
|
|
|
|
```bash
|
|
python3 -m py_compile scripts/audit_rust_general_rules.py
|
|
python3 scripts/audit_rust_workspace_rules.py
|
|
```
|
|
|
|
La validation opérateur canonique doit impérativement conserver `cargo fmt --all` **avant** l'audit structurel afin de vérifier que le script accepte exactement l'état formaté par rustfmt.
|
|
|
|
## 8. Validation opérateur requise
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
python3 scripts/audit_rust_workspace_rules.py
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets
|
|
cargo test -p ksp-wallet-lib
|
|
cargo test --workspace
|
|
```
|
|
|
|
Les arbres de dépendances ne nécessitent pas d'être répétés pour ce fix : aucune dépendance n'est modifiée.
|