[codex] Fix compatibility regression testing#18597
Conversation
5b64d29 to
d26ec0d
Compare
yashmayya
left a comment
There was a problem hiding this comment.
Took a close look since the Compatibility Regression against master jobs are red on this PR — they fail with the same pinot-bom:...-compat-... resolution error this change is meant to fix. Looks like an ordering issue with versions:commit; left a note inline.
| mvn versions:commit -q -B 1>${outFile} 2>&1 | ||
| repoOption="-Dmaven.repo.local=${mvnCache}/${buildId}" | ||
| mvn -U versions:set -DnewVersion="${pomVersion}-compat-${buildId}" -q -B ${repoOption} ${PINOT_MAVEN_OPTS} 1>${outFile} 2>&1 || exit 1 | ||
| mvn -U versions:commit -q -B ${repoOption} ${PINOT_MAVEN_OPTS} 1>${outFile} 2>&1 || exit 1 |
There was a problem hiding this comment.
versions:commit here re-reads the rewritten root pom, which imports pinot-bom:${project.version} — now ...-compat-${buildId}. But the bom isn't bumped + installed at that version until the block right below (122-126), so commit fails with Non-resolvable import POM ... pinot-bom:...-compat-.... That's exactly the error the Compatibility Regression against master job hits on this PR, so the new installPinotBom path never actually runs.
The bom versions:set + installPinotBom need to move above this commit. Reordering to set+install the bom right after the root versions:set, then commit, fixes it (reproduced + verified locally). Alternatively, drop versions:commit and pass -DgenerateBackupPoms=false on the root versions:set.
d26ec0d to
cef4831
Compare
yashmayya
left a comment
There was a problem hiding this comment.
Re-reviewed the latest push. The ordering fix is clean — dropping versions:commit and setting -DgenerateBackupPoms=false on the root versions:set means the bom gets rewritten + installed before anything reads the rewritten root model, so there's no more unresolvable pinot-bom:...-compat-... import. Reproduced the new sequence locally and it resolves fine.
CI backs it up too: the Compatibility Regression against master (sample) and Multi-Stage against release-1.5.0 jobs that were red before are green now. The MSE-vs-master job is still running, but it's the same build path as the already-green sample-vs-master. LGTM 👍
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #18597 +/- ##
============================================
- Coverage 64.28% 64.26% -0.02%
Complexity 1137 1137
============================================
Files 3335 3335
Lines 205901 206042 +141
Branches 32129 32142 +13
============================================
+ Hits 132358 132420 +62
- Misses 62905 62977 +72
- Partials 10638 10645 +7
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Summary
PINOT_MAVEN_OPTSinstead of dropping them when the verifier adds generated settings.origin/*, and tags after fetching tags, then fail fast if a requested ref is unknown.pinot-bomafter version rewriting so compatibility builds againstmastercan resolvepinot-bom:<version>-compat-*from the same local repo.Root Cause
The release-1.5.0 compatibility job failed before verifier tests ran because the current-tree Maven build reused the restored
~/.m2and repeatedly hit cached remote-id / transient Maven Central resolution errors. The latermastermatrix jobs also failed afterversions:setbecause the root POM importspinot-bom:${project.version}, butpinot-bom:1.6.0-compat-*had not been installed into the rewritten build local repo.User Manual
To rerun the same path locally or in CI, set
OLD_COMMIT,WORKING_DIR, andTEST_SUITE, then run.github/workflows/scripts/.pinot_compatibility_verifier.sh. Maven CLI flags should go inPINOT_MAVEN_OPTS; JVM flags should stay inMAVEN_OPTS.Sample Config / Queries
N/A: this change only updates CI workflow and compatibility verifier build plumbing. Existing sample suites under
compatibility-verifier/sample-test-suiteandcompatibility-verifier/multi-stage-query-engine-test-suiteare unchanged.Validation
bash -n .github/workflows/scripts/.pinot_compatibility_verifier.sh compatibility-verifier/checkoutAndBuild.shpinot_compatibility_checks.yml,pinot_compatibility_tests.yml, andpinot_multi_stage_query_engine_compatibility_tests.ymlgit diff --checkmvn -v