Repository navigation
ci(conformance): run the xerial control profile as a reference probe - #138
Merged
Merged
Conversation
…117) Run the pinned sqlite-jdbc control run on main and on pull requests in its own job, so a vendored divergence that is not true for xerial itself is visible. Guard the module so conformance.control.driver can only be set by the xerial-control profile.
magnusp
force-pushed
the
fix/i117-control-profile
branch
from
October 22, 2026 23:31
a801b24 to
9c9b66d
Compare
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.
Fixes #117
Three-layer contract. Hrana 3 is the source of truth for transport, values, metadata, batching, transactions, and error reporting;
java.sqlis the source of truth for the JDBC surface. xerial/sqlite-jdbc is a behavioral reference only. This PR runs the reference and does not assert parity with it.Base
1bed15e4c8a5be7fa47fac173eada95ad3b0a7e5· Head9c9b66daa3749e637925e7fdb482eaa97c2e24e8What changed
.github/workflows/ci.ymland.github/workflows/pr.yml: newXerial Control (reference probe)job that runsmvn --batch-mode -pl libsql-conformance -am -Pxerial-control verify. The existingBuild & Test (Java 25|26)job names are unchanged.libsql-conformance/pom.xml: agenerate-test-sources-phase guard fails whenconformance.control.driveris set outside thexerial-controlprofile. The profile sets an internal marker, so the profile run is unaffected. The guard shares the phase of the existing vendored-upstream check, somvn validatestill resolves no test dependencies; binding it tovalidatemade the CIValidate reactorstep fail before the other modules were built.The control run is a reference probe: a failure means a vendored test is not true for sqlite-jdbc itself (or the driver diverges without a recorded reason), not that libSQL must match xerial.
Red / green
./mvnw -pl libsql-conformance -Dconformance.control.driver=xerial generate-test-sources→ exit 0. No workflow passes-Pxerial-control.conformance.control.driver is only set by the xerial-control profile. Run with -Pxerial-control instead...../mvnw -pl libsql-conformance -am -Pxerial-control verify→ 100 tests, 0 failures, 1 skipped, BUILD SUCCESS.Lanes
./mvnw -pl libsql-jdbc test: BUILD SUCCESS. Pass../mvnw -q validate: BUILD SUCCESS. Pass.Xerial Control (reference probe)ran all 9 selectedorg.sqliteclasses (100 tests, 0 failures, 1 skipped), BUILD SUCCESS.Build & Test (Java 25),Build & Test (Java 26)still the required contexts; both pass, and all PR checks are green.Perf:
./mvnw -pl libsql-jdbc testmedian 2.08 s at trunk vs 2.06 s at head (3 interleaved runs each), no Java change.Divergences
pr.ymlis outside the plan's Files list. Lane 9 requires the control job log in this PR's checks, andci.ymlonly runs on pushes tomain.pr.ymlis a near-identical copy ofci.yml, so it gets the same job.mvn --batch-modeinstead ofmise exec -- ./mvnw. CI usesactions/setup-javaand never installs mise; both existing workflows callmvn --batch-mode, so the new job matches them.Evidence logs:
/tmp/xerial-parity-i117/.