0.3.16-pre.3.fix.1
This commit is contained in:
68
deltas/0.3.16/pre.003-fix.001.md
Normal file
68
deltas/0.3.16/pre.003-fix.001.md
Normal file
@@ -0,0 +1,68 @@
|
||||
<!-- file: deltas/0.3.16/pre.003-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.3.16-pre.003-fix.001` — conformité Rust de V003
|
||||
|
||||
## Base requise
|
||||
|
||||
```text
|
||||
0.3.16-pre.003 appliquée
|
||||
workspace.package.version = 0.3.16-pre.3
|
||||
```
|
||||
|
||||
Le gate opérateur de `pre.003` confirme que `cargo check --workspace` et les suites ciblées `ksp-store-postgres-lib` passent, y compris les 82 tests unitaires, les tests de frontière, de hardening et les trois canaris V003. Le gate reste toutefois rouge avant ce fix : 31 violations de l'audit Rust et un `unused import` transformé en erreur par Clippy `-D warnings`.
|
||||
|
||||
## Version
|
||||
|
||||
Cette correction modifie du Rust :
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.3.16-pre.3.fix.1
|
||||
```
|
||||
|
||||
## Corrections
|
||||
|
||||
Le fix est strictement structurel et ne modifie ni le schéma SQL V003 ni son comportement métier :
|
||||
|
||||
- les blocs `pub use` et `pub(crate) use` de `ksp-store-postgres-lib` sont séparés et ordonnés selon les règles du workspace ;
|
||||
- les fonctions legacy `migration::bootstrap` et `migration::current_migration_version` sont réexportées à la racine sous les alias privés `crate::legacy_bootstrap` et `crate::legacy_current_migration_version` ;
|
||||
- `migration_v003.rs` ne traverse plus directement le module privé `crate::migration` ;
|
||||
- `V003SchemaResource` reste réexporté à la racine et est réellement utilisé via `crate::V003SchemaResource` dans le calcul du checksum, au lieu d'être supprimé ou masqué par un `allow` ;
|
||||
- les tests V003 utilisent `crate::current_migration_version` et `crate::V003_RESOURCES` lorsqu'ils ciblent des items `pub(crate)` ;
|
||||
- les champs `pub(crate)` de `V003SchemaResource` reçoivent leur rustdoc adjacente ;
|
||||
- les blocs homogènes de constantes sont remis au format exact attendu par `RUST-FMT-112` ;
|
||||
- aucune annotation `#[allow(unused_imports)]` et aucun marquage artificiel `#[cfg(test)]` ne sont ajoutés.
|
||||
|
||||
## Invariants conservés
|
||||
|
||||
Aucune ressource sous `migrations/v003_raw_transaction_variants/` n'est incluse ou modifiée par ce fix.
|
||||
|
||||
Le checksum V003 reste donc :
|
||||
|
||||
```text
|
||||
3c9cf41877c96944a378abb41ee7a8d8ab7f99fc6dc2bb7a26c295cf8f9fc914
|
||||
```
|
||||
|
||||
Les checksums V000/V001/V002 et les sources historiques `src/migration.rs` / `src/schema.rs` restent inchangés.
|
||||
|
||||
Le fix ne modifie pas les quatre tables, les dix-huit contraintes, les trois index, la politique de backfill, la sémantique `content_hash`, ni le comportement de concurrence V002 -> V003.
|
||||
|
||||
## Validation demandée
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
cargo fmt --all -- --check
|
||||
|
||||
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
|
||||
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||
cargo test -p ksp-store-postgres-lib --all-targets --all-features
|
||||
```
|
||||
|
||||
Les trois tests PostgreSQL live restent opt-in comme dans `pre.003`.
|
||||
|
||||
## Suite
|
||||
|
||||
Après gate propre : `0.3.16-pre.004` — backend PostgreSQL V003, bootstrap paresseux de l'identité, ledger de variantes, rattachement exact des nouvelles observations, idempotence et concurrence d'insertion.
|
||||
75
deltas/0.3.16/pre.003.md
Normal file
75
deltas/0.3.16/pre.003.md
Normal file
@@ -0,0 +1,75 @@
|
||||
<!-- file: deltas/0.3.16/pre.003.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.3.16-pre.003` — PostgreSQL V003 RAW transaction variants
|
||||
|
||||
## Base requise
|
||||
|
||||
```text
|
||||
0.3.16-pre.002-fix.001 appliquée
|
||||
workspace.package.version = 0.3.16-pre.2.fix.1
|
||||
```
|
||||
|
||||
Le gate opérateur de la base est confirmé propre : audits Rust/export/KSP/Markdown, `cargo check --workspace`, Clippy `-D warnings` et toutes les suites `ksp-store-api` passent.
|
||||
|
||||
## Version
|
||||
|
||||
Cette tranche contient du Rust et du schéma PostgreSQL :
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.3.16-pre.3
|
||||
```
|
||||
|
||||
## Portée
|
||||
|
||||
Cette tranche livre uniquement la fondation physique V003. Elle ne branche encore aucune écriture métier multi-variante.
|
||||
|
||||
V003 ajoute :
|
||||
|
||||
- `ksp_raw_transaction_variants` ;
|
||||
- `ksp_raw_transaction_canonical_selectors` ;
|
||||
- `ksp_raw_transaction_observation_variants` ;
|
||||
- `ksp_raw_transaction_conflicts` ;
|
||||
- dix-huit contraintes physiques et trois index non uniques ;
|
||||
- un checksum V003 stable calculé par le même domaine `ksp-migration-resources-v1` ;
|
||||
- un bootstrap d'extension privé qui conserve le moteur V000-V002 et applique V003 avec la même clé et le même protocole d'advisory-lock ;
|
||||
- une garde de concurrence qui n'appelle plus le moteur legacy lorsqu'une base est déjà V002 et absorbe uniquement la course où un pair vient de terminer V003 ;
|
||||
- une politique `schema_autoupdate=false` qui valide d'abord l'historique existant avant de rendre `migration_pending`, tout en autorisant la création complète d'une base fraîche ;
|
||||
- des canaris unitaires et d'intégration pour la version courante, le checksum, l'ordre des resources et la frontière de migration.
|
||||
|
||||
## Invariants
|
||||
|
||||
`src/migration.rs`, `src/schema.rs` et les ressources SQL V000/V001/V002 ne sont pas modifiés par ce delta.
|
||||
|
||||
Les checksums historiques restent :
|
||||
|
||||
```text
|
||||
V000 d29068b8c13b9dc0cc9ef6aaadd0fa12d41e0fe4c56541a1118c4bfc846a1450
|
||||
V001 31488cda2f08f3f46c4cdbdbb6c18c243662fada02eac4487040c8735d72cc51
|
||||
V002 ff21605ed45f7ab4c0f92bbb692700b4118a9488b04d50a31d259ac59bdb550e
|
||||
V003 3c9cf41877c96944a378abb41ee7a8d8ab7f99fc6dc2bb7a26c295cf8f9fc914
|
||||
```
|
||||
|
||||
`content_hash` n'est jamais `UNIQUE` et ne constitue pas une preuve d'égalité métier.
|
||||
|
||||
La migration V003 est schema-only : aucun `INSERT` de variantes, aucun rattachement artificiel des observations historiques et aucun `UPDATE` de la projection V001 n'est réalisé. Le bootstrap métier des identités existantes appartient à `pre.004`.
|
||||
|
||||
## Validation demandée
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
cargo fmt --all -- --check
|
||||
|
||||
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
|
||||
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||
cargo test -p ksp-store-postgres-lib --all-targets --all-features
|
||||
```
|
||||
|
||||
Les tests PostgreSQL live restent opt-in et ne sont pas requis pour ce gate de schéma statique ; `pre.004` ajoutera les preuves backend de bootstrap/écriture sur base réelle.
|
||||
|
||||
## Suite
|
||||
|
||||
Après gate propre : `0.3.16-pre.004` — backend PostgreSQL V003, bootstrap paresseux de l'identité, ledger de variantes, rattachement exact des nouvelles observations, idempotence et concurrence d'insertion.
|
||||
Reference in New Issue
Block a user