v0.2.13-pre.005-fix.001
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/016-V0_2_13_INTERFACE.md -->
|
||||
<!-- version: 5 -->
|
||||
<!-- version: 6 -->
|
||||
|
||||
# Validation `0.2.13` — Interface / wire foundation
|
||||
|
||||
@@ -140,15 +140,15 @@ Si une nouvelle dépendance externe apparaît après `pre.001`, la présente mat
|
||||
|
||||
## 10. Tests de release
|
||||
|
||||
| Famille | Attendu | Statut |
|
||||
|--------------------------|-------------------------------------------------|-----------------|
|
||||
| unit tests privés | account meta/borne puis instruction/adversarial | PASS pre.004 |
|
||||
| `tests/public_api.rs` | consommation crate-root uniquement | PASS pre.004 |
|
||||
| external consumer canary | surface utilisable hors modules privés | PRÉSENT pre.005 |
|
||||
| dependency boundary | firewall exact | PASS pre.004 |
|
||||
| release completeness | inventaire exact, aucun domaine supplémentaire | PRÉSENT pre.005 |
|
||||
| round-trip codec | aucun tant qu'aucun codec | N/A |
|
||||
| network smoke | aucun pour crate wire pure | N/A |
|
||||
| Famille | Attendu | Statut |
|
||||
|--------------------------|-------------------------------------------------|--------------|
|
||||
| unit tests privés | account meta/borne puis instruction/adversarial | PASS pre.004 |
|
||||
| `tests/public_api.rs` | consommation crate-root uniquement | PASS pre.004 |
|
||||
| external consumer canary | surface utilisable hors modules privés | PASS pre.005 |
|
||||
| dependency boundary | firewall exact | PASS pre.004 |
|
||||
| release completeness | inventaire exact, aucun domaine supplémentaire | PASS pre.005 |
|
||||
| round-trip codec | aucun tant qu'aucun codec | N/A |
|
||||
| network smoke | aucun pour crate wire pure | N/A |
|
||||
|
||||
## 11. Gate technique final attendu
|
||||
|
||||
@@ -286,3 +286,46 @@ Les nouveaux tests sont **présents mais non déclarés PASS dans le sandbox**,
|
||||
Le consumer externe est un test d'intégration Rust, donc compilé par Cargo dans un crate distinct de `ksp-interface-lib`. Sa source ne consomme que les exports du crate-root ; les modules privés ne sont pas utilisés.
|
||||
|
||||
Le canari de complétude impose exactement les exports publics retenus et exactement quatre modules/fichiers de production : `error.rs`, `lib.rs`, `program_account_meta.rs`, `program_instruction.rs`. Cette contrainte ferme explicitement le risque d'ajout opportuniste d'une seconde famille wire avant la release stable.
|
||||
|
||||
## 17. Gate `pre.005` et correctif `pre.005-fix.001`
|
||||
|
||||
Le gate ciblé Interface est intégralement vert :
|
||||
|
||||
```text
|
||||
unit tests Interface 10/10 PASS
|
||||
manifest/source firewall 4/4 PASS
|
||||
external consumer 1/1 PASS
|
||||
public API 5/5 PASS
|
||||
release completeness 3/3 PASS
|
||||
doctests 0 échec
|
||||
```
|
||||
|
||||
Le workspace échoue ensuite dans le canari transversal Logging :
|
||||
|
||||
```text
|
||||
ksp-logging-lib/tests/ownership.rs
|
||||
workspace_crates_do_not_bypass_ksp_logging_facade
|
||||
```
|
||||
|
||||
Diagnostic confirmé : `tests/dependency_boundary.rs` contient le littéral `tracing::` uniquement comme pattern interdit. Le scanner Logging travaille sur le texte brut des `.rs` et interprète donc ce pattern de test comme un bypass réel. Le graphe Cargo Interface reste pourtant :
|
||||
|
||||
```text
|
||||
ksp-interface-lib
|
||||
└── ksp-core-lib
|
||||
└── solana-pubkey 4.3.0
|
||||
```
|
||||
|
||||
`pre.005-fix.001` remplace uniquement ce littéral source par une construction compile-time équivalente `concat!("tracing", "::")`. La propriété testée reste identique ; seule l'interaction entre deux scanners est corrigée.
|
||||
|
||||
Statut du fix avant gate opérateur :
|
||||
|
||||
```text
|
||||
production src inchangé
|
||||
API publique inchangée
|
||||
dépendances inchangées
|
||||
logging runtime Interface toujours absent
|
||||
codec toujours absent
|
||||
version technique 0.2.13-pre.5.fix.1
|
||||
cargo test --workspace après fix À REJOUER
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user