Repository navigation
Conversation
schenksj
added a commit
that referenced
this pull request
Jun 21, 2026
schenksj
force-pushed
the
pr/delta-A6b-regression
branch
from
June 22, 2026 02:32
f0dcb24 to
c65b636
Compare
schenksj
force-pushed
the
pr/delta-A6a-test-battery
branch
from
June 29, 2026 13:29
9a1ef06 to
f514d2c
Compare
schenksj
force-pushed
the
pr/delta-A6b-regression
branch
from
June 29, 2026 13:29
c65b636 to
6093760
Compare
schenksj
force-pushed
the
pr/delta-A6a-test-battery
branch
from
August 16, 2026 01:28
f514d2c to
bab4421
Compare
schenksj
force-pushed
the
pr/delta-A6b-regression
branch
from
August 16, 2026 01:28
6093760 to
78b2999
Compare
schenksj
force-pushed
the
pr/delta-A6a-test-battery
branch
from
August 18, 2026 15:16
bab4421 to
4e2e6f9
Compare
schenksj
force-pushed
the
pr/delta-A6b-regression
branch
from
August 18, 2026 15:16
78b2999 to
fff8e96
Compare
schenksj
force-pushed
the
pr/delta-A6a-test-battery
branch
from
August 18, 2026 18:09
4e2e6f9 to
ba02ee4
Compare
schenksj
force-pushed
the
pr/delta-A6b-regression
branch
from
August 18, 2026 18:09
fff8e96 to
b36ab22
Compare
schenksj
force-pushed
the
pr/delta-A6a-test-battery
branch
from
August 18, 2026 19:44
ba02ee4 to
d24fa29
Compare
schenksj
force-pushed
the
pr/delta-A6b-regression
branch
from
August 18, 2026 19:44
b36ab22 to
d15748f
Compare
schenksj
force-pushed
the
pr/delta-A6a-test-battery
branch
from
August 19, 2026 03:12
d24fa29 to
5dcc2b3
Compare
schenksj
force-pushed
the
pr/delta-A6b-regression
branch
from
August 19, 2026 03:12
d15748f to
66bb165
Compare
schenksj
force-pushed
the
pr/delta-A6a-test-battery
branch
from
August 19, 2026 10:59
5dcc2b3 to
4d969cd
Compare
schenksj
force-pushed
the
pr/delta-A6b-regression
branch
2 times, most recently
from
August 20, 2026 14:31
224909b to
bf6d41e
Compare
schenksj
force-pushed
the
pr/delta-A6a-test-battery
branch
from
August 20, 2026 14:31
4d969cd to
9765141
Compare
schenksj
force-pushed
the
pr/delta-A6b-regression
branch
from
August 20, 2026 14:51
bf6d41e to
11860d4
Compare
schenksj
force-pushed
the
pr/delta-A6a-test-battery
branch
2 times, most recently
from
August 20, 2026 16:58
9aab93e to
4498e47
Compare
schenksj
force-pushed
the
pr/delta-A6b-regression
branch
from
August 20, 2026 16:58
11860d4 to
3d36966
Compare
schenksj
force-pushed
the
pr/delta-A6a-test-battery
branch
from
August 20, 2026 17:47
4498e47 to
6a8d98b
Compare
schenksj
force-pushed
the
pr/delta-A6b-regression
branch
2 times, most recently
from
August 20, 2026 20:01
fcf506d to
f0cce60
Compare
schenksj
force-pushed
the
pr/delta-A6a-test-battery
branch
from
August 20, 2026 20:01
6a8d98b to
8ca28cc
Compare
…, part 7]
Adds the harness that runs Delta Lake's OWN test suites against a Comet build,
proving the contrib reads stay correct across the full upstream Delta test
corpus (not just Comet's contrib suites from part 6).
What this adds (test/CI tooling only -- no production, native, or main code):
- contrib/delta/dev/diffs/{3.3.2,4.0.0,4.1.0}.diff: per-Delta-version patches
that wire a locally-published Comet into Delta's sbt build and enable Comet on
Delta's own test session. Verified to `git apply --check` cleanly against the
upstream v3.3.2 / v4.0.0 / v4.1.0 source tags.
- contrib/delta/dev/run-regression.sh: clones the target Delta tag, applies the
diff, builds+installs Comet for the matching Spark profile (FAST=1 skips
spotless/RAT/javadoc and uses the release dylib), and runs the smoke / lite /
full sweep. Derives cometVersion from the comet pom so the diff's injected
version stays in lockstep with the checkout.
- contrib/delta/dev/run-test.sh: local helper to rerun a single Delta suite (or
a -z name filter) against an already-prepared regression checkout.
- .github/workflows/delta_regression_test.yml: smoke job per (Spark, Delta) pair
on PRs, plus a fuller filtered sweep on push-to-main / dispatch.
No -Dspark.version=4.1.1 pin is needed here (unlike part 6's contrib unit tests):
the regression run executes Delta's OWN test suite, where Delta's build selects
its own compatible Spark version (Delta 4.1.0 -> Spark 4.1.0 via its
CrossSparkVersions), so delta-spark 4.1.0 never runs on the pom's 4.1.2 and the
removed-IgnoreCachedData skew cannot occur. The Comet install compiles against
4.1.2 but references no removed API.
Robustness/portability hardening (review-driven, improving on the integration branch):
- run-regression.sh: `|| true` on the cometVersion auto-derive so a future regex
miss reaches the documented WARNING+hardcoded-fallback instead of aborting under
`set -o pipefail`; graceful re-clone when a reused DELTA_WORKDIR lacks the
requested tag (was a hard `git checkout` abort); removed the dead `2.4.0` case
(no 2.4.0.diff exists); documented the COMET_PUBLISH_DIR/diff-path coupling.
- run-test.sh: replaced a hardcoded personal JAVA_HOME fallback with the macOS
java_home helper, falling back to `java` on PATH (no developer-specific path).
- delta_regression_test.yml: scoped the PR trigger to Delta-affecting paths
(contrib, native, the SPI/rule/serde wiring, poms) so unrelated PRs skip the
expensive build+clone+smoke; corrected the misleading "matching smoke cell"
comment (GitHub `needs` is job-level) and made the smoke-on-PR / full-on-merge
cost tradeoff explicit.
Verification: all three diffs apply cleanly to the real upstream Delta tags; both
scripts pass `bash -n`; the workflow YAML parses; run-regression.sh carries the
pipefail-safe cometVersion auto-derive. The diffs are byte-identical to the
integration branch, where the sweeps were actually executed. A local full/smoke
run is deferred (the full Delta-3.3.2 sweep is ~29h and the gated heavyweight per
the plan; this host is disk-constrained) and runs via the workflow.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01BtErWgRQKCDRAg8Mk6qR4G
Post-review fix (found running the 4.1 full regression locally): the SBT_REPO_OVERRIDE
array expansion used the bare `"${SBT_REPO_OVERRIDE[@]}"`, which is an empty array on
the 4.x cells -- and macOS's stock bash 3.2 treats `"${empty[@]}"` as an unbound variable
under `set -u` (bash >= 4.4 / Linux CI tolerates it, so CI never hit it). Switched the four
call sites to the portable `${SBT_REPO_OVERRIDE[@]+"${SBT_REPO_OVERRIDE[@]}"}` alternation.
…n-suite scan finders [themeB, folded into A.6b]
schenksj
force-pushed
the
pr/delta-A6a-test-battery
branch
from
August 21, 2026 01:33
8ca28cc to
4a87a19
Compare
schenksj
force-pushed
the
pr/delta-A6b-regression
branch
from
August 21, 2026 01:33
f0cce60 to
5fce6d8
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.
Part 7 of the Delta Lake contrib PR breakup (stacked on part 6 / #10). Fork-local review draft.
Adds the harness that runs Delta Lake's own test suites against a Comet build — proving the contrib reads stay correct across the full upstream Delta corpus, not just Comet's contrib suites from part 6. Test/CI tooling only — no production, native, or main code.
What this adds
contrib/delta/dev/diffs/{3.3.2,4.0.0,4.1.0}.diff— per-Delta-version patches that wire a locally-published Comet into Delta's sbt build and enable Comet on Delta's own test session. Verified togit apply --checkcleanly against the upstream v3.3.2 / v4.0.0 / v4.1.0 source tags.run-regression.sh— clone the Delta tag → apply diff → build+install Comet for the matching Spark profile → run smoke/lite/full. DerivescometVersionfrom the comet pom so the diff's injected version stays in lockstep.run-test.sh— rerun a single Delta suite (or-zname filter) against a prepared checkout..github/workflows/delta_regression_test.yml— smoke per (Spark, Delta) pair on PRs; fuller filtered sweep on push-to-main / dispatch.No
-Dspark.version=4.1.1pin needed hereUnlike part 6's contrib unit tests, the regression run executes Delta's own suite, where Delta's build selects its own compatible Spark (Delta 4.1.0 → Spark 4.1.0 via
CrossSparkVersions). So delta-spark 4.1.0 never runs on the pom's 4.1.2 and the removed-IgnoreCachedDataskew can't occur.Robustness/portability hardening (review-driven; improves on the integration branch)
run-regression.sh:|| trueon thecometVersionauto-derive so a future regex miss reaches the documented WARNING+fallback instead of aborting underset -o pipefail; graceful re-clone when a reusedDELTA_WORKDIRlacks the requested tag (was a hardgit checkoutabort); removed the dead2.4.0case; documented theCOMET_PUBLISH_DIR/diff-path coupling.run-test.sh: replaced a hardcoded personalJAVA_HOMEfallback with the macOSjava_homehelper →javaon PATH (no developer-specific path).needsis job-level); made the smoke-on-PR / full-on-merge tradeoff explicit.Verification
All three diffs apply cleanly to the real upstream Delta tags; both scripts pass
bash -n; the workflow YAML parses;run-regression.shcarries the pipefail-safecometVersionauto-derive. The diffs are byte-identical to the integration branch where the sweeps were actually executed. A local full/smoke run is deferred (the full Delta-3.3.2 sweep is ~29h and the gated heavyweight per the plan; this host is disk-constrained) and runs via the workflow.🤖 This PR was prepared with the assistance of Claude (Anthropic). A human author reviewed and is responsible for the content.