Remove eql_v2 — ship only the self-contained eql_v3 surface#315
Merged
Conversation
… ore, jsonb, bench)
…generated v3 fixtures
…encryptindex, SEM, lint)
…v3 canonical artifact
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…gration READMEs
Review caught build_validation_tests.rs still reading cipherstash-encrypt-v3.sql
after the Task 9 rename to the canonical name — would fail CI. Repoint all five
path literals to cipherstash-encrypt{,-uninstall}.sql. Also refresh the migration
READMEs that still documented the deleted 002-007 migrations.
The v2-coupled tasks/pin_search_path.sql is removed; the v3 build appends tasks/pin_search_path_v3.sql. Update the prose references in src/v3 doc comments and inlinability.rs accordingly (comment-only; no functional change).
…lan in ADR The structural guard `encrypted_domain_blockers_are_plpgsql_and_non_strict` matched only `%encrypted_domain_unsupported_bool%`, so a `_jsonb` (`#>`, `||`, `-`) or `_text` (`#>>`, `->>`) blocker regressing to LANGUAGE sql / STRICT would escape it — even though that test exists to backstop `eql_v3.lints()` without depending on it. Broaden to `%encrypted_domain_unsupported%`, matching the `encrypted_domain_blockers` CTE in src/v3/lint/lints.sql verbatim so the two cannot drift. The jsonb-domain-arg EXISTS still excludes the shared `encrypted_domain_unsupported_*(text, text)` helpers. Also cross-link the deferred Tier-1 reference-doc rewrite plan from ADR-0001's Related section so the follow-up is discoverable.
Port version introspection to the self-contained eql_v3 surface after the eql_v2 removal dropped eql_v2.version() (and left tasks/build.sh's --version flag consumed nowhere). - src/v3/version.template: eql_v3.version() returns bare-semver text, plus a COMMENT ON SCHEMA eql_v3 marker for obj_description() discoverability. REQUIRE src/v3/schema.sql only; self-contained, no eql_v2 symbols. The generated src/v3/version.sql is gitignored like the other v3 SQL. - tasks/build.sh: sed-substitute the template before the v3 glob, reviving the --version flag (usage_version, DEV fallback). - release workflows: pass prefix-stripped bare semver to --version; fix the stale 'eql_v2.version() byte-identical' comment. - CHANGELOG/ADR-0001: document the re-home (not a silent drop). version() is pinned by pin_search_path_v3.sql (not inline-critical), so the splinter function_search_path_mutable lint does not flag it. User-facing doc repointing is owned by the migrate-docs-to-eql-v3 branch.
- v3_jsonb_operator_surface_tests: drop dead eql_v2_encrypted exclusion subqueries (composite type removed -> subquery is always-true) and the now-stale explanatory comment - xml-to-markdown.py: make the operator-schema match v3-aware (['eql_v2','public'] -> add 'eql_v3') so v3-only doc generation resolves eql_v3 operator names - matrix.rs: fix now-false comment claiming the generic eql_v2_encrypted MIN/MAX overload is reachable via cast (overload removed); logic unchanged - eql_plaintext.rs: reword Cast doc-comment off the removed eql_v2.add_search_config reference
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Remove
eql_v2— ship only the self-containedeql_v3surfaceRemoves the entire
eql_v2implementation (SQL, build variants, tests, fixtures, task scripts, CI jobs) so the repository ships a single, self-containedeql_v3encrypted-domain surface. Executes the2026-06-22-remove-eql-v2plan, rebased ontoeql_v3(the live integration branch).This is a major (3.0.0) public-API break. See ADR-0001 and the
CHANGELOG.md[Unreleased]→Removedentry.What changed
tasks/pin_search_path_v3.sql(v3-onlysearch_pathpinning) andsrc/v3/lint/lints.sql(eql_v3.lints(), ported fromeql_v2.lints(), scoped toeql_v3).mise run buildproduces onlyrelease/cipherstash-encrypt.sql(+-uninstall.sql) under the canonical name (combined/Supabase/Protect variants removed), so existing install URLs keep working.src/v3/SQL (encrypted,operators,config,encryptindex, SEM,lint,schema/common/crypto/version), the v2 uninstallers +pin_search_path.sql, the v2 test binaries, the committed v2 fixtures, v2 data/helper migrations002–007, and the v2 SQLx harness helpers.reset.sql/splinter.sh/self_contained_v3/clean_install_v3/preview.sh→ canonical artifact +eql_v3; CI workflows drop v2/supabase/protect jobs and assets. Fixtures retaineql_v3'seql_v3_*generated-fixture convention.eql_v3replacement, per ADR-0001): config management,encryptindex, theeql_v2_encryptedcomposite,LIKE/ILIKE, bool ops, opclass-on-column,GROUP BY/grouped_value.Local verification (green)
mise run clean && mise run build→ single canonical artifact, 0eql_v2symbols.test:self_contained_v3;test:clean_install_v3earlier (lints: 0 errors, noeql_v2schema);splinterearlier (all findings allowlisted, ERROR=0).test:v3-jsonb:inventory,test:crates,test:codegen.test:matrix:inventoryare left to CI (the local sandbox hit a disk-space limit mid-compile; not a code issue).test:sqlxprep + ZeroKMS fixture generation + the fixture-shape test passed on the pre-rebase tree.Notes
eql_v2string references are deliberate: self-containment meta-comments insrc/v3/*(e.g. "owns no eql_v2"), theclean_install_v3gate's "assert noeql_v2" check, and the EQL payload-envelope version (v:2). Theself_contained_v3gate proves no actual v2 dependency.docs/reference/*) are deferred to a follow-up PR (plan Task 15). This PR carries the functional removal + release-discipline docs (ADR + CHANGELOG).🤖 Generated with Claude Code