v0.3.6-pre.009-fix.002
This commit is contained in:
88
deltas/0.3.6/pre.009-fix.002.md
Normal file
88
deltas/0.3.6/pre.009-fix.002.md
Normal file
@@ -0,0 +1,88 @@
|
||||
<!-- file: deltas/0.3.6/pre.009-fix.002.md -->
|
||||
<!-- version: 3 -->
|
||||
|
||||
# Delta v0.3.6-pre.009-fix.002
|
||||
|
||||
## Base requise
|
||||
|
||||
- `0.3.6-pre.9.fix.1` / livraison `pre.009-fix.001`.
|
||||
- Les audits Rust/Markdown du gate opérateur sont propres.
|
||||
- `cargo check --workspace` bloque sur `E0423` dans `crates/ksp-job-backfill-lib/src/request.rs` avant que Clippy/tests puissent valider le fix.
|
||||
- La cause est précise : `BackfillScopeFingerprint` est public et correctement référencé via le crate-root, mais son constructeur de tuple struct n'est pas visible via le réexport parce que son champ `[u8; 32]` reste privé dans `request.rs`.
|
||||
|
||||
## Correctif
|
||||
|
||||
Le fix conserve l'opacité publique du fingerprint et ne réintroduit pas un accès par nom local.
|
||||
|
||||
`impl crate::BackfillScopeFingerprint` reçoit un constructeur associé strictement privé :
|
||||
|
||||
```rust
|
||||
const fn from_bytes(bytes: [u8; 32]) -> Self {
|
||||
return Self(bytes);
|
||||
}
|
||||
```
|
||||
|
||||
La fonction de calcul appelle ensuite :
|
||||
|
||||
```rust
|
||||
return crate::BackfillScopeFingerprint::from_bytes(bytes);
|
||||
```
|
||||
|
||||
Ainsi :
|
||||
|
||||
- les consommateurs et le module propriétaire continuent de référencer le type partagé via `crate::BackfillScopeFingerprint` ;
|
||||
- l'initialisation du champ privé reste confinée dans l'impl situé dans le module propriétaire ;
|
||||
- le champ ne devient ni `pub` ni `pub(crate)` ;
|
||||
- aucun chemin `crate::request::BackfillScopeFingerprint` n'est introduit ;
|
||||
- aucun contrat public, octet de fingerprint, hash, scope, checkpoint, runtime, dépendance ou feature ne change.
|
||||
|
||||
## Cargo et versions de fichiers
|
||||
|
||||
- `workspace.package.version` : `0.3.6-pre.9.fix.1` -> `0.3.6-pre.9.fix.2`.
|
||||
- `Cargo.toml` : version d'en-tête `409` -> `410`.
|
||||
- `crates/ksp-job-backfill-lib/src/request.rs` : `4` -> `5`.
|
||||
- plan 027 : `17` -> `20` (trois révisions réelles pendant la matérialisation du fix).
|
||||
- validation 023 : `17` -> `20` (trois révisions réelles pendant la matérialisation du fix).
|
||||
|
||||
## Graphe de dépendances
|
||||
|
||||
Aucune dépendance ni feature ne change. Aucun `cargo tree` n'est requis pour ce fix, sauf revalidation volontaire après un `cargo clean` séparé.
|
||||
|
||||
## Payload
|
||||
|
||||
Ajout :
|
||||
|
||||
- `deltas/0.3.6/pre.009-fix.002.md`
|
||||
|
||||
Modifications :
|
||||
|
||||
- `Cargo.toml`
|
||||
- `crates/ksp-job-backfill-lib/src/request.rs`
|
||||
- `docs/plans/027-V0_3_6_JOB_API_BACKFILL_PLAN.md`
|
||||
- `docs/validation/023-V0_3_6_JOB_API_BACKFILL.md`
|
||||
|
||||
Aucune suppression.
|
||||
|
||||
## Validations d'assemblage
|
||||
|
||||
À exécuter dans l'environnement d'assemblage :
|
||||
|
||||
```text
|
||||
python3 scripts/audit_rust_workspace_rules.py
|
||||
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.6
|
||||
```
|
||||
|
||||
L'environnement d'assemblage ne fournit ni Cargo, ni Rustc, ni Rustfmt ; le gate Rust reste donc opérateur.
|
||||
|
||||
## Gate opérateur demandé
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
python3 scripts/audit_rust_workspace_rules.py
|
||||
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.6
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-job-backfill-lib
|
||||
```
|
||||
|
||||
Résultat attendu : 47 unitaires + 10 canaries d'intégration, sans warning Clippy.
|
||||
Reference in New Issue
Block a user