feat(release): add a JDK 25 staging path for org.apache.hudi:hudi-trino - #19410
feat(release): add a JDK 25 staging path for org.apache.hudi:hudi-trino#19410voonhous wants to merge 1 commit into
Conversation
No release path built or staged org.apache.hudi:hudi-trino: the existing staging scripts require JDK 11 and JDK 17, neither passes -Phudi-trino, and the legacy hudi-trino-bundle was dropped in apache#18837, while the Trino-side shim depends on this artifact, so it must be staged with the first 1.3.0 RC. - deploy_staging_jars_java25.sh mirrors the java17 script but runs a single pass, mvn deploy -Phudi-trino -pl hudi-trino, without -am: Lombok cannot run on JDK 25, so the upstream Hudi modules resolve from the local m2 populated by the prior deploy_staging_jars.sh (JDK 11) run. - hudi-trino/pom.xml overrides the release profile's javadoc source level (pinned to 11 by the root pom) to hudi.trino.java.version. At source 11, javadoc errors on records and unnamed variables, and failOnError=false turns that into a silently broken -javadoc.jar in the staging repo. - validate_staged_bundles.sh now checks org.apache.hudi:hudi-trino across all 16 jar/sources/javadoc/pom + signature/checksum extensions. - release_guide.md documents the JDK 25 deploy step (deploy3 log) and the extra copy_staging_repo.sh pass for the JDK 25 staging repo. - The source tarball needs no change: create_source_directory.sh rsyncs the full git clone, so hudi-trino/ ships regardless of the profile. A stale bot.yml comment citing the removed hudi-trino-plugin RAT exclude is reworded. Verified locally: upstream modules installed under JDK 17, then a clean mvn install -Phudi-trino -pl hudi-trino -DdeployArtifacts=true -Dgpg.skip under JDK 25 produces the main, sources, and javadoc jars, with record classes documented; without the pom override the javadoc jar is broken. Fixes apache#19346
hudi-agent
left a comment
There was a problem hiding this comment.
Thanks for working on this! This PR adds a JDK 25 staging path so org.apache.hudi:hudi-trino gets built, deployed, and validated alongside the other release artifacts, plus the matching release-guide steps and a javadoc source-level override. It's release tooling and docs only, with no runtime code change. One edge case around the javadoc override is worth double-checking in the inline comment. Please take a look, and this should be ready for a Hudi committer or PMC member to take it from here.
cc @yihua
| <artifactId>maven-javadoc-plugin</artifactId> | ||
| <configuration> | ||
| <!-- The parent release profile pins javadoc source to 11; records need 25. --> | ||
| <source>${hudi.trino.java.version}</source> |
There was a problem hiding this comment.
🤖 Have you confirmed the effective javadoc source is actually 25 during the release deploy? The <source> here lives in the module's base build, while the pin to 11 comes from the parent's property-activated release profile. Child build config should win over an inherited-profile config, but since failOnError=false turns a wrong value into a silently broken -javadoc.jar and validate_staged_bundles.sh only checks the jar exists (not that it's valid), it'd be reassuring to verify via mvn help:effective-pom -DdeployArtifacts=true -pl hudi-trino that the resolved javadoc source is 25.
|
@wombatu-kun Can you please help review this too? Thank you. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #19410 +/- ##
============================================
- Coverage 75.27% 75.26% -0.02%
+ Complexity 32510 32501 -9
============================================
Files 2574 2574
Lines 142991 142991
Branches 17529 17529
============================================
- Hits 107636 107620 -16
- Misses 27289 27302 +13
- Partials 8066 8069 +3
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Describe the issue this Pull Request addresses
Closes #19346. Part of RFC-105 (#18780), raised in review of #18837: no release path built or staged
org.apache.hudi:hudi-trino. The existing staging scripts abort unless JAVA_HOME is JDK 11 (deploy_staging_jars.sh) or JDK 17 (deploy_staging_jars_java17.sh), neither passes-Phudi-trino, and the legacyhudi-trino-bundlewas dropped in #18837, while the module itself enforces JDK 25. The Trino-side shim depends on this artifact, so it must be staged with the first 1.3.0 RC.Summary and Changelog
Adds a JDK 25 staging path so
org.apache.hudi:hudi-trinois deployed alongside the other release artifacts.scripts/release/deploy_staging_jars_java25.sh(new): mirrors the java17 script but runs a single pass,mvn deploy -Phudi-trino -pl hudi-trino, deliberately without-am. Lombok cannot run on JDK 25, so the upstream Hudi modules (hudi-common,hudi-hive-sync,hudi-io:shaded,hudi-sync-common) resolve from the local m2 populated by the priordeploy_staging_jars.sh(JDK 11) run.hudi-trino/pom.xml: overrides the release profile's javadoc source level (pinned to 11 by the root pom) to${hudi.trino.java.version}. At source 11, javadoc errors on records and unnamed variables, andfailOnError=falseturns that into a silently broken-javadoc.jarin the staging repo.scripts/release/validate_staged_bundles.sh: now checksorg.apache.hudi:hudi-trinoacross all 16 jar/sources/javadoc/pom + signature/checksum extensions.release/release_guide.md: documents the JDK 25 deploy step (deploy3 log) and the extracopy_staging_repo.shpass for the JDK 25 staging repo.create_source_directory.shrsyncs the full git clone, sohudi-trino/ships regardless of the profile. A stalebot.ymlcomment citing the removedhudi-trino-pluginRAT exclude is reworded.Impact
Release tooling and docs only; no runtime code change. Starting with 1.3.0,
org.apache.hudi:hudi-trinois staged and validated like the other release artifacts.Risk Level
low. Verified locally: upstream modules installed under JDK 17, then a clean
mvn install -Phudi-trino -pl hudi-trino -DdeployArtifacts=true -Dgpg.skipunder JDK 25 produces the main, sources, and javadoc jars with record classes documented; without the pom override, javadoc fails withrecords are not supported in -source 11and the build still exits 0 with a broken javadoc jar. GPG signing (maven-gpg-plugin 1.4 under a JDK 25 Maven) will be exercised in the first real staging run.Documentation Update
release/release_guide.mdis updated in this PR; no website change needed.Contributor's checklist