100 lines
3.4 KiB
Markdown
100 lines
3.4 KiB
Markdown
<!-- file: deltas/0.3.6/pre.002-fix.001.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.3.6-pre.002-fix.001` — compilation des tests lifecycle
|
|
|
|
## Base requise
|
|
|
|
```text
|
|
0.3.6-pre.002
|
|
workspace.package.version = 0.3.6-pre.2
|
|
SHA-256 archive = d49f551ce2c04aeb3b545bfc11f0d66852ca10fd75b65c8614a8b99a3eb6cb0f
|
|
```
|
|
|
|
## Objectif
|
|
|
|
Corriger strictement l'erreur de compilation découverte par le gate opérateur dans `unit_tests/lifecycle.rs`, sans modifier l'API publique, le lifecycle, le token d'annulation ni le périmètre fonctionnel de `pre.002`.
|
|
|
|
## Défaut observé
|
|
|
|
Le premier test créait une variable locale nommée `lifecycle`, puis tentait plus bas de rappeler le helper homonyme `lifecycle()`. Le binding local masquait alors la fonction et provoquait `E0618`; l'inférence qui suivait produisait également `E0282`.
|
|
|
|
`cargo check --workspace` était vert parce qu'il ne compilait pas les modules `#[cfg(test)]`. Clippy `--all-targets` et `cargo test -p ksp-job-api` ont correctement exposé le défaut.
|
|
|
|
## Correction
|
|
|
|
Le helper privé de fixture devient `new_lifecycle()` et ses six appels sont synchronisés. Le nom distinct ne peut plus être masqué par les variables `lifecycle` représentant les instances testées. Les dix tests unitaires et onze canaries d'intégration restent inchangés en nombre et en intention.
|
|
|
|
## Fichiers ajoutés
|
|
|
|
```text
|
|
deltas/0.3.6/pre.002-fix.001.md
|
|
```
|
|
|
|
## Fichiers modifiés
|
|
|
|
```text
|
|
Cargo.toml
|
|
crates/ksp-job-api/unit_tests/lifecycle.rs
|
|
docs/plans/027-V0_3_6_JOB_API_BACKFILL_PLAN.md
|
|
docs/validation/023-V0_3_6_JOB_API_BACKFILL.md
|
|
```
|
|
|
|
Mécanique Cargo :
|
|
|
|
```text
|
|
header version: 395 -> 396
|
|
workspace.package.version: 0.3.6-pre.2 -> 0.3.6-pre.2.fix.1
|
|
```
|
|
|
|
Le bump est obligatoire car le correctif modifie un fichier Rust compilé par les tests.
|
|
|
|
## Fichiers supprimés
|
|
|
|
Aucun.
|
|
|
|
## Décisions prises
|
|
|
|
- conserver la fixture commune et lui donner un nom non ambigu ;
|
|
- ne pas réécrire les tests ni élargir leur périmètre dans ce fix ;
|
|
- conserver exactement la surface publique et la matrice de transitions de `pre.002` ;
|
|
- ne pas ouvrir les notifications de `pre.003` avant un gate opérateur vert.
|
|
|
|
## Validations exécutées
|
|
|
|
```text
|
|
python3 scripts/audit_rust_workspace_rules.py
|
|
-> General Rust rule audit: clean
|
|
-> Rust export completeness audit: 0 candidate(s)
|
|
-> KSP workspace Rust rule audit: clean
|
|
|
|
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.6
|
|
-> Markdown table audit: clean (264 tables / 143 fichiers)
|
|
|
|
python3 -m unittest scripts/tests/test_audit_markdown_tables.py
|
|
-> 5 tests / OK
|
|
```
|
|
|
|
La reconstruction de la base et la comparaison différentielle confirment que seuls les cinq fichiers listés appartiennent au correctif.
|
|
|
|
## Validations non exécutées
|
|
|
|
L'environnement d'assemblage ne fournit ni `cargo` ni `rustfmt`. Les commandes Rust restent à rejouer par l'opérateur ; elles ne sont pas annoncées comme réussies dans ce delta.
|
|
|
|
## 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-api
|
|
cargo tree -p ksp-job-api --edges normal
|
|
cargo tree -p ksp-job-api -e features
|
|
```
|
|
|
|
## Questions ouvertes
|
|
|
|
Aucune question ne bloque `pre.003` après un gate opérateur vert.
|