voonhous commented on code in PR #19642:
URL: https://github.com/apache/hudi/pull/19642#discussion_r3794800491


##########
.github/workflows/hudi_trino_ci.yml:
##########
@@ -127,20 +139,32 @@ jobs:
           java-version: '25'
           distribution: 'temurin'
           cache: maven
-      # Trino does not publish trino-spi / trino-filesystem / trino-hive 
test-jars to
-      # Maven Central. Check out the matching release tag and install just the 
modules
-      # whose test classifiers we need into the local m2.
-      - name: Checkout trinodb/trino at 481
+      - name: Purge Trino artifacts from the local m2
         if: needs.changes.outputs.trino == 'true'
+        # Artifacts an older pin left behind carry the same SNAPSHOT 
coordinates as the current ones.
+        run: rm -rf ~/.m2/repository/io/trino
+      # Trino publishes neither SNAPSHOT artifacts nor the trino-spi / 
trino-filesystem /
+      # trino-hive / trino-main test-jars, so every io.trino dependency is 
built from the
+      # pinned trinodb/trino commit and cached under that commit.
+      - name: Restore Trino artifacts for the pinned commit
+        id: trino-m2
+        if: needs.changes.outputs.trino == 'true'
+        uses: actions/cache@v4
+        with:
+          path: ~/.m2/repository/io/trino
+          key: trino-m2-v2-${{ steps.trino-pin.outputs.trino_sha }}

Review Comment:
   Right -- the module list is part of the cache identity. All three keys now 
include `hashFiles('scripts/trino/bootstrap_trino.sh')` in b92f718be3f5 (the 
compat save hashes the same file at its `hudi/` checkout path; hashFiles 
digests content, not paths, so the keys still line up).
   



##########
.github/workflows/hudi_trino_compat.yml:
##########
@@ -59,18 +82,27 @@ jobs:
           echo "trino_version=$VERSION" >> "$GITHUB_OUTPUT"
           echo "Detected Trino version: $VERSION"
       - name: Install Trino modules from master (JDK 25)
-        working-directory: trino
-        # hudi-trino compiles against these plus their transitive modules 
(spi, cache, metastore,
-        # hive-formats, memory-context). They must come from the master 
checkout -- resolving from
-        # Maven Central would defeat the point of the drift check.
-        run: mvn $MVN_ARGS install -pl 
:trino-hive,:trino-filesystem-manager,:trino-parquet,:trino-plugin-toolkit -am 
-DskipTests -Dair.check.skip-all=true
+        # Same module set the pinned build uses, so a green compile here is a 
promotable pin. The
+        # script purges ~/.m2/repository/io/trino itself and only warns when 
master's version has
+        # rolled past the pinned trino.version.
+        env:
+          HEAD_SHA: ${{ steps.trino-head.outputs.head_sha }}
+        run: hudi/scripts/trino/bootstrap_trino.sh trino --skip-checkout --ref 
"$HEAD_SHA"

Review Comment:
   Good catch -- and this week proved it: the Floci container migration and the 
BlobCache span rename were both test-side drift that `compile` would have waved 
through. Added in b92f718be3f5: the compat job now runs 
`-Phudi-trino,hudi-trino-tests -pl hudi-trino test` against trino HEAD, the JDK 
17 leg installs `hudi-client-common`/`hudi-java-client` like the CI workflow, 
the drift-issue handler covers test failures, and a test failure blocks both 
the cache save and the pin advance.
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to