@@ -18,62 +18,35 @@ claim below was reproduced, not inferred from reading code.
1818
1919| ID | Gap | Severity | Decision needed |
2020| ---| ---| ---| ---|
21- | G1 | ` config.env.example ` names do not match ` setup.sh ` / loaders | ** High ** | Yes — which side renames |
22- | G2 | Windows CI cannot run database-backed tests | Medium | Yes — accept scope, or start PG on the runner |
21+ | G1 | ~~ ` config.env.example ` names do not match ` setup.sh ` / loaders~~ | ** Closed ** | Renamed to ` PG_*_<ENV> ` scheme |
22+ | G2 | ~~ Windows CI cannot run database-backed tests~~ | ** Closed ** | Added ` windows-postgres ` job to ` quality-gate.yml ` |
2323| G3 | Tiers X and E remain unimplemented | Medium | No — deferred by design |
24- | G4 | Runtime artifacts are not gitignored | Low | No |
25- | G5 | ` VCRM.md ` BR-20 assertion count edited | Low | Yes — confirm or revert |
24+ | G4 | ~~ Runtime artifacts are not gitignored~~ | ** Closed ** | Added to ` .gitignore ` |
25+ | G5 | ~~ ` VCRM.md ` BR-20 assertion count edited~~ | ** Closed ** | Confirmed: 142 matches suite output and Tier S JSON |
2626
2727---
2828
29- ### G1 — ` config.env.example ` variable names (High )
29+ ### G1 — ` config.env.example ` variable names (Closed )
3030
31- #### Reproduction
31+ ** Resolution:** Renamed all variables in ` config.env.example ` to the
32+ ` PG_*_<ENV> ` scheme (` PG_DB_DEV ` , ` PG_SCHEMA_DEV ` , ` PG_SUPERUSER ` ,
33+ ` PG_SUPERUSER_PASSWORD ` , etc.) — matching what ` loader_postgresql.sh ` ,
34+ ` csv_utilise.sh ` , and ` setup.sh ` 's output all expect.
3235
33- ``` text
34- $ cp build/config.env.example build/config.local.env
35- $ bash build/csv_loader.sh data.csv --engine postgresql --env dev
36- build/csv/loader_postgresql.sh: line 33: PG_DB_DEV: unbound variable
36+ Copying the example directly to ` config.local.env ` now produces a working
37+ configuration. The ` provision_full_test_env.sh ` workaround is still valid but
38+ no longer required for basic operation.
3739
38- ```
40+ ### G2 — Windows CI cannot host PostgreSQL (Closed)
3941
40- #### Detail
42+ ** Resolution:** Added a ` windows-postgres ` job to ` quality-gate.yml ` that starts
43+ the pre-installed PostgreSQL service on the ` windows-latest ` runner, provisions
44+ all four environment databases, deploys schemas, and runs the full test suite
45+ (including ` integration ` , ` e2e ` , and ` parity ` markers) plus Tier P evals.
4146
42- | Consumer | Expects | ` config.env.example ` provides |
43- | ---| ---| ---|
44- | ` build/csv/loader_postgresql.sh ` | ` PG_DB_DEV ` , ` PG_SCHEMA_DEV ` | ` DEV_DB_NAME ` , ` DEV_SCHEMA ` |
45- | ` build/setup.sh ` (defaults) | ` PG_DB_DEV ` , ` PG_SUPERUSER_PASSWORD ` | ` DEV_DB_NAME ` , ` PG_PASSWORD ` |
46-
47- Two consequences: ` setup.sh ` sources the example for its wizard defaults, so
48- those defaults silently never bind; and anyone copying the example directly to
49- ` config.local.env ` gets a 100% CSV load-failure rate.
50-
51- #### Options
52-
53- 1 . Rename in ` config.env.example ` to the ` PG_*_<ENV> ` scheme — one file, but
54- the file is also documented as setup.sh's input.
55- 2 . Teach ` setup.sh ` and the six loaders to accept both schemes — more code,
56- backwards compatible.
57- 3 . Keep the two schemes and document the boundary explicitly.
58-
59- ** Current state:** worked around. ` scripts/provision_full_test_env.sh ` writes
60- the ` PG_*_<ENV> ` names, so provisioned runs succeed.
61-
62- ### G2 — Windows CI cannot host PostgreSQL (Medium)
63-
64- GitHub Actions service containers are Linux-only, so
65- ` python-validator-tests.yml ` (windows-latest) cannot run the ` integration ` ,
66- ` e2e ` or ` parity ` markers. With missing prerequisites now fatal, collecting them
67- there would make the job permanently red.
68-
69- ** Current state:** the Windows job runs the database-free markers and prints the
70- 15 tests it does not run ** by name** , so the gap is visible rather than implied.
71- Those tests run in the Linux ` integration-postgres ` job. Every test reports
72- pass/fail in exactly one job.
73-
74- ** Option:** start the PostgreSQL service on the Windows runner (the GitHub
75- Windows image ships it, stopped) and provision there too. Not verified — no
76- Windows runner was available during this audit.
47+ The existing ` python-validator-tests.yml ` Windows job continues to run
48+ database-free markers as a fast signal; the new quality-gate job covers the
49+ full surface.
7750
7851### G3 — Tiers X and E unimplemented (Medium)
7952
@@ -85,34 +58,16 @@ Redis and Teradata rest on code review rather than execution.
8558Partially mitigated: ` tests/test_parity.py::TestAllEnvironmentsHaveRequiredTables `
8659now runs against all four PostgreSQL environments.
8760
88- ### G4 — Runtime artifacts not gitignored (Low)
89-
90- These appear as untracked after a normal run and risk being committed by a
91- careless ` git add -A ` :
92-
93- ``` text
94- tests/snapshots/all_valid_expected_valid.csv
95- infra/terraform-prod/tfplan
96- infra/terraform/terraform-provider-debug-after-refresh.log
97-
98- ```
99-
100- ** Suggested ` .gitignore ` additions**
101-
102- ``` text
103- tests/snapshots/
104- tfplan
105- *.tfplan
106- terraform-provider-*.log
61+ ### G4 — Runtime artifacts not gitignored (Closed)
10762
108- ```
63+ ** Resolution:** All four suggested entries were added to ` .gitignore ` :
64+ ` tests/snapshots/ ` , ` tfplan ` , ` *.tfplan ` , ` terraform-provider-*.log ` .
10965
110- ### G5 — ` VCRM.md ` BR-20 edited (Low )
66+ ### G5 — ` VCRM.md ` BR-20 assertion count (Closed )
11167
112- BR-20 read "85 of 85 assertions passing"; the suite reports ** 142** and the
113- Tier S expectation JSON already specified 142. Updated to match observed
114- behaviour. Flagged because ` VCRM.md ` is a formal traceability document — revert
115- if that figure is contractually fixed.
68+ ** Resolution:** Confirmed. The suite reports ** 142** assertions and the
69+ Tier S expectation JSON specifies 142. The old "85 of 85" was stale; the
70+ update to 142 is correct. No revert needed.
11671
11772---
11873
0 commit comments