docs(tasks): correct the wave-5 pure-build gates — the literal kv-less pg-lo config is not a gate
The wave-5 engine task (d69d9a3) found the literal
--no-default-features --features pg-lo config cannot compile the whole
crate: with no kv feature enabled, KvEngine/KvCursor go empty (E0004)
and the facade's by-reference dispatch matches are non-exhaustive
(references are always considered inhabited). Structural, not a bug —
per ADR-011 §4 every constructor mode pairs a kv engine, so a build
with zero kv engines is not a supported configuration (ADR-013 §4's
supported non-default configurations all include one).
The meaningful pure builds, verified on this tree:
- --no-default-features --features "pg-lo,mem" — check/test/clippy
green (115 tests ok server-less)
- --no-default-features --features "postgres,pg-lo" — check/clippy
green, test target compiles
Amended: engine-pg-lo (description + acceptance + gates),
engine-pg-lo-window (acceptance), store-pg-lo-construction (the full
structural reading + acceptance), review-wave-5 (gates). The engine
task's Notes/Summary already recorded the finding; the criteria text
now matches what was verified.
Verification: cargo test 69/19/3 ok, fmt --check green (docs-only
change).
This commit is contained in:
1 parent
d69d9a345b
commit
fb24f30e0a
4 files changed
+50
-21
No files matched your search
@@ -88,7 +88,10 @@ engine-level contract tests.
|
|||||||
- [ ] `cargo test` (default) green; `cargo test --features pg-lo`
|
- [ ] `cargo test` (default) green; `cargo test --features pg-lo`
|
||||||
green server-less (skipping); `cargo clippy --all-targets -- -D
|
green server-less (skipping); `cargo clippy --all-targets -- -D
|
||||||
warnings` and `cargo fmt --check` green (default + `--features
|
warnings` and `cargo fmt --check` green (default + `--features
|
||||||
pg-lo`); the pg-lo-pure check clean
|
pg-lo`); the pg-lo pure builds clean (`--no-default-features
|
||||||
|
--features "pg-lo,mem"` and `--features "postgres,pg-lo"` — the
|
||||||
|
literal kv-less config is not a gate, see
|
||||||
|
`store-pg-lo-construction`)
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
|
|||||||
+17
-9
@@ -22,9 +22,15 @@ posture (pool, prepared statements, schema bootstrap, error mapping);
|
|||||||
the local engine (`src/local.rs`) is the structural twin for the
|
the local engine (`src/local.rs`) is the structural twin for the
|
||||||
large-tier bodies (streaming read cursor, staged put). **`pg-lo` does
|
large-tier bodies (streaming read cursor, staged put). **`pg-lo` does
|
||||||
not imply `postgres`** (ADR-013 §4's consequence; the Cargo.toml
|
not imply `postgres`** (ADR-013 §4's consequence; the Cargo.toml
|
||||||
feature carries its own driver deps) — every shared piece must
|
feature carries its own driver deps) — every shared piece must compile
|
||||||
compile under `--no-default-features --features pg-lo` (the pg-lo-pure
|
under the **pg-lo pure builds**: `--no-default-features --features
|
||||||
build).
|
"pg-lo,mem"` and `--no-default-features --features "postgres,pg-lo"`.
|
||||||
|
**The literal kv-less config (`--no-default-features --features
|
||||||
|
pg-lo`) is not a gate and cannot compile the whole crate** — with no kv
|
||||||
|
feature enabled, `KvEngine`/`KvCursor` go empty and the facade's
|
||||||
|
by-reference dispatch matches are non-exhaustive (E0004; references
|
||||||
|
are always considered inhabited) — see `store-pg-lo-construction` for
|
||||||
|
the full reading.
|
||||||
|
|
||||||
- **Engine shape (POC #7 C1 is the contract)** — two artifacts: LOs
|
- **Engine shape (POC #7 C1 is the contract)** — two artifacts: LOs
|
||||||
hold the bytes; the companion table
|
hold the bytes; the companion table
|
||||||
@@ -47,8 +53,8 @@ build).
|
|||||||
helpers) live behind `#[cfg(feature = "postgres")]` today — decide
|
helpers) live behind `#[cfg(feature = "postgres")]` today — decide
|
||||||
and record the sharing shape (the natural one: a crate-internal
|
and record the sharing shape (the natural one: a crate-internal
|
||||||
pg-common module gated `cfg(any(feature = "postgres",
|
pg-common module gated `cfg(any(feature = "postgres",
|
||||||
feature = "pg-lo"))`, one module per file, so the pg-lo-pure build
|
feature = "pg-lo"))`, one module per file, so the pg-lo pure builds
|
||||||
compiles without duplication). The `PgOpts` question rides the same
|
compile without duplication). The `PgOpts` question rides the same
|
||||||
point: it is `pub` and re-exported behind `postgres` (wave 4's
|
point: it is `pub` and re-exported behind `postgres` (wave 4's
|
||||||
constructor signature put it on the public surface) — widening its
|
constructor signature put it on the public surface) — widening its
|
||||||
gate to `any(postgres, pg-lo)` (re-export gate widened with it) vs a
|
gate to `any(postgres, pg-lo)` (re-export gate widened with it) vs a
|
||||||
@@ -193,16 +199,18 @@ engine and its in-module unit tests only.
|
|||||||
returned + VACUUM FULL operator line + rel-size monitoring;
|
returned + VACUUM FULL operator line + rel-size monitoring;
|
||||||
autovacuum inherited; the cached-get capacity facts)
|
autovacuum inherited; the cached-get capacity facts)
|
||||||
- [ ] Shared-helper + PgOpts + LO-isolation design points decided and
|
- [ ] Shared-helper + PgOpts + LO-isolation design points decided and
|
||||||
recorded; the pg-lo-pure build (`--no-default-features
|
recorded; the pg-lo pure builds (`--no-default-features
|
||||||
--features pg-lo`) compiles clean
|
--features "pg-lo,mem"` and `--features "postgres,pg-lo"`)
|
||||||
|
compile clean (the literal kv-less config is not a gate — see
|
||||||
|
the Description)
|
||||||
- [ ] Unit tests env-driven (`ALKBLOBS_PG_*`), skipping cleanly
|
- [ ] Unit tests env-driven (`ALKBLOBS_PG_*`), skipping cleanly
|
||||||
server-less; green against the harness server at acceptance;
|
server-less; green against the harness server at acceptance;
|
||||||
zero schema + LO residue on the shared db after runs
|
zero schema + LO residue on the shared db after runs
|
||||||
- [ ] `cargo test` (default — pg-lo compiles out) green;
|
- [ ] `cargo test` (default — pg-lo compiles out) green;
|
||||||
`cargo test --features pg-lo` green server-less (skipping);
|
`cargo test --features pg-lo` green server-less (skipping);
|
||||||
`cargo clippy --all-targets -- -D warnings` and `cargo fmt
|
`cargo clippy --all-targets -- -D warnings` and `cargo fmt
|
||||||
--check` green (default + `--features pg-lo` + the pg-lo-pure
|
--check` green (default + `--features pg-lo` + the pg-lo pure
|
||||||
check)
|
builds)
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
|
|||||||
@@ -75,9 +75,12 @@ Gate checks:
|
|||||||
`#![allow(dead_code)]` scope notes matching their remaining scope.
|
`#![allow(dead_code)]` scope notes matching their remaining scope.
|
||||||
- **Gates green**: `cargo test` (default), `cargo test --features
|
- **Gates green**: `cargo test` (default), `cargo test --features
|
||||||
pg-lo` (server-less: skipping), `cargo test --features "pg-lo,mem"`,
|
pg-lo` (server-less: skipping), `cargo test --features "pg-lo,mem"`,
|
||||||
`cargo test --all-features` (against the server), the pg-lo-pure
|
`cargo test --all-features` (against the server), the pg-lo pure
|
||||||
checks (`cargo check --no-default-features --features pg-lo` and
|
builds (`cargo check --no-default-features --features "pg-lo,mem"`
|
||||||
`--features "pg-lo,mem"`), `cargo clippy --all-targets -- -D
|
and `--features "postgres,pg-lo"` — the literal kv-less
|
||||||
|
`--features pg-lo` config is not a gate: with no kv engine the
|
||||||
|
facade's `KvEngine`/`KvCursor` go empty, E0004; see
|
||||||
|
`store-pg-lo-construction`), `cargo clippy --all-targets -- -D
|
||||||
warnings` (default + the pg-lo variants + `--all-features`),
|
warnings` (default + the pg-lo variants + `--all-features`),
|
||||||
`cargo fmt --check`, `cargo doc --no-deps`.
|
`cargo fmt --check`, `cargo doc --no-deps`.
|
||||||
|
|
||||||
|
|||||||
@@ -103,12 +103,25 @@ the durable window gains its large-engine host arm.
|
|||||||
proof). Env-driven (`ALKBLOBS_PG_*`), skipping cleanly server-less
|
proof). Env-driven (`ALKBLOBS_PG_*`), skipping cleanly server-less
|
||||||
(the engine tests' convention); the janitor discipline rides from
|
(the engine tests' convention); the janitor discipline rides from
|
||||||
the start (amendment A2).
|
the start (amendment A2).
|
||||||
- **The pg-lo-pure builds** — `cargo check --no-default-features
|
- **The pg-lo pure builds** — the supported non-default configurations
|
||||||
--features pg-lo` (engine + window family compile, constructors
|
are `cargo check/test --no-default-features --features "pg-lo,mem"`
|
||||||
cfg'd out where `mem` is absent) and
|
(the one-window-host topology's build; the mem-pglo constructor
|
||||||
`cargo test --no-default-features --features "pg-lo,mem"` (the
|
constructible) and `cargo check --no-default-features --features
|
||||||
mem-pglo constructor constructible): ADR-013 §4's supported
|
"postgres,pg-lo"` (ADR-013 §4's pg-pure consolidation build); verify
|
||||||
non-default configurations; verify both compile clean.
|
both compile clean. **The literal kv-less config
|
||||||
|
(`--no-default-features --features pg-lo`) is not a gate and cannot
|
||||||
|
compile the whole crate** — do not burn time on it: with no kv
|
||||||
|
feature enabled, `KvEngine`/`KvCursor` go empty (E0004) and the
|
||||||
|
facade's by-reference dispatch matches are non-exhaustive
|
||||||
|
(references are always considered inhabited, so an empty enum behind
|
||||||
|
`&` still requires arms). This is structural, not a bug: per ADR-011
|
||||||
|
§4 every constructor mode pairs a kv engine, so a build with zero kv
|
||||||
|
engines is not a supported configuration (ADR-013 §4's supported
|
||||||
|
non-default configurations all include one). The shared pieces
|
||||||
|
themselves (pg_common, the engines) compile in the literal config —
|
||||||
|
only store.rs errors. The finding is the wave-5 engine task's
|
||||||
|
(d69d9a3, recorded in its Notes); this task's verification uses the
|
||||||
|
two meaningful builds above.
|
||||||
|
|
||||||
## Acceptance Criteria
|
## Acceptance Criteria
|
||||||
|
|
||||||
@@ -128,8 +141,10 @@ the durable window gains its large-engine host arm.
|
|||||||
branch keys off the engine representation, never a flag
|
branch keys off the engine representation, never a flag
|
||||||
- [ ] The connection-settings design point (two DSN+opts pairs; the
|
- [ ] The connection-settings design point (two DSN+opts pairs; the
|
||||||
consolidation corollary) decided and recorded
|
consolidation corollary) decided and recorded
|
||||||
- [ ] The pg-lo-pure builds (`--no-default-features --features pg-lo`
|
- [ ] The pg-lo pure builds (`--no-default-features --features
|
||||||
and `--features "pg-lo,mem"`) compile clean
|
"pg-lo,mem"` and `--features "postgres,pg-lo"`) compile clean
|
||||||
|
(the literal kv-less config is not a gate — see the Description
|
||||||
|
bullet)
|
||||||
- [ ] `cargo test` (default) green; `cargo test --features pg-lo` and
|
- [ ] `cargo test` (default) green; `cargo test --features pg-lo` and
|
||||||
`--features "pg-lo,mem"` green server-less (skipping);
|
`--features "pg-lo,mem"` green server-less (skipping);
|
||||||
`cargo clippy --all-targets -- -D warnings` and `cargo fmt
|
`cargo clippy --all-targets -- -D warnings` and `cargo fmt
|
||||||
|
|||||||
Reference in new issue
Block a user