You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**docs-static**|`docs:validate:source`| SQL doxygen coverage + required-tags (DB-free); **unconditional — runs on every PR incl. docs-only**| no | no |
111
+
|**schema**|`test:schema`| v2.2 / v2.3 payload JSON-schema validation | no | no |
112
+
|**rust-crates**|`test:crates` + `types:check`|`cargo fmt --check`, clippy + `cargo test` for `eql-scalars` / `eql-codegen` / `eql-tests-macros` / `eql-types`; verify TS bindings + JSON schemas are fresh | no | no |
113
+
|**codegen**|`codegen:parity`| Generated encrypted-domain SQL matches the golden output | no | no |
114
+
|**self-contained-v3**|`test:self_contained_v3`|`eql_v3` surface has no `eql_v2` dependency | no | no |
115
+
|**matrix-coverage**|`test:matrix:inventory` (+`:jsonb_entry`, `:v3-jsonb`) + `test:matrix:catalog-coverage`| Scalar-matrix test-name snapshots are not silently dropped; catalog surface is covered | no | no |
116
+
|**splinter**|`test:splinter`| Supabase/Splinter lints over the installed EQL | yes (PG17) | no |
117
+
|**ci-required**| — | aggregator: every needed job is `success`/`skipped`| no | no |
118
+
119
+
---
120
+
121
+
## Where each test suite runs
122
+
123
+
The `eql_v3` property-test suites (see
124
+
`tests/sqlx/tests/encrypted_domain/property/README.md`) land in three different
125
+
CI jobs:
126
+
127
+
| Suite | Job | Trigger coverage | DB |`CS_*`| Notes |
128
+
|---|---|---|---|---|---|
129
+
|**catalog** (`eql-scalars``proptest_invariants`) |**rust-crates** (`cargo test -p eql-scalars`; proptest is a dev-dep) | relevant PR + queue | no | no | pure-Rust catalog invariants; shrinking enabled |
130
+
|**fixture** (function-double oracles, extractor identity, `match_smoke`, `edge_cases`) |**test** shards (default features) | relevant PR (PG17×4) + queue (PG14–17×2) | yes | no | oracle over the **committed** real-ciphertext fixtures |
131
+
|**e2e** (`e2e_oracle`, `#[cfg(feature = "proptest-e2e")]`) |**e2e** job (`test:sqlx:e2e`) | relevant PR (PG17) + queue (PG17) | yes | yes | oracle over **fresh** ZeroKMS encryption; PG-version-independent, so one PG17 run |
132
+
133
+
The wider sqlx suite (everything under `tests/sqlx/tests/`) runs in the **test**
134
+
shards, which replay the default-feature archive — so any
135
+
`#[cfg(feature = …)]`-gated test that isn't in the default feature set does not
136
+
run there. The `proptest-e2e` suite is the one such gate, and it has its own
137
+
**e2e** job (it can't reuse the credential-free archive: it both compiles with a
138
+
non-default feature and needs `CS_*` at run time).
139
+
140
+
---
141
+
142
+
## Known gaps
143
+
144
+
1.**bench + macro-expand are nightly / non-blocking** — a bench regression or a
145
+
stale `cargo expand` snapshot surfaces on the daily schedule, not on the PR
146
+
that introduced it. Accepted trade-off.
147
+
148
+
2.**`docs/**` markdown is not content-validated.** The `docs-static` job
149
+
guarantees the SQL `--!` doxygen comments under `src/**` are always checked,
150
+
but nothing lints the prose/links in `docs/**` itself. A docs-only PR now runs
151
+
`docs-static` (so it is no longer un-gated), but that job validates *source*
152
+
documentation, not the markdown the PR changed. Adding a markdown
153
+
linter/link-checker is a separate, unfilled capability.
154
+
155
+
### Recently closed
156
+
157
+
-*The e2e (fresh-encryption) suite never ran in CI.* Now covered by the **e2e**
158
+
job (`test:sqlx:e2e`), PG17, on relevant PRs + the queue.
159
+
-*Docs-only PRs ran no doc validation.* The **docs-static** job now runs the
160
+
source-only doc checks unconditionally on every PR.
0 commit comments