chore(deps): Pin AWS v1 SDK BOM to short-circuit transitive version#18619
Conversation
…ange walk amazon-kinesis-deaggregator (added in apache#18224) pulls aws-lambda-java-events 1.1.0, whose POM declares aws-java-sdk-* deps with soft ranges like [1.10.5,). Maven resolves these by walking every published patch version, producing hundreds of POM downloads per clean build. Importing aws-java-sdk-bom in dependencyManagement overrides the ranges with a single deterministic version, eliminating the walk.
hudi-agent
left a comment
There was a problem hiding this comment.
🤖 This review was generated by an AI agent and may contain mistakes. Please verify any suggestions before applying.
Thanks for the contribution! This PR pins the AWS v1 SDK BOM in root <dependencyManagement> to short-circuit transitive soft-version-range resolution (avoiding the AWS SDK patch-version walk during clean builds). No issues flagged from this automated pass — a Hudi committer or PMC member can take it from here for a final review.
cc @yihua
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #18619 +/- ##
============================================
+ Coverage 68.03% 68.04% +0.01%
- Complexity 28906 28920 +14
============================================
Files 2518 2518
Lines 140594 140598 +4
Branches 17420 17420
============================================
+ Hits 95652 95674 +22
+ Misses 37089 37073 -16
+ Partials 7853 7851 -2
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
…ange walk (apache#18619) amazon-kinesis-deaggregator (added in apache#18224) pulls aws-lambda-java-events 1.1.0, whose POM declares aws-java-sdk-* deps with soft ranges like [1.10.5,). Maven resolves these by walking every published patch version, producing hundreds of POM downloads per clean build. Importing aws-java-sdk-bom in dependencyManagement overrides the ranges with a single deterministic version, eliminating the walk.
Describe the issue this Pull Request addresses
amazon-kinesis-deaggregator:1.0.3(added in #18224) drags inaws-lambda-java-events:1.1.0, whose POM declaresaws-java-sdk-*deps as soft version ranges:Maven resolves these literally: it fetches
maven-metadata.xmlfor every affected artifact, then downloads every intermediate POM (1.11.35,1.11.36, ...1.11.49x, ...) to walk the version graph. A clean build pulls hundreds ofaws-java-sdk-s3-1.11.NNN.pomfiles just for graph traversal; the resolved jar is never on the classpath.Side effects:
hudi-utilities.Summary and Changelog
Pin
com.amazonaws:aws-java-sdk-bomin the root<dependencyManagement>. The BOM imports a fixed version for everycom.amazonaws:aws-java-sdk-*artifact, so Maven's<dependencyManagement>short-circuits the transitive ranges before the walk starts.Changes (
pom.xml):<aws.sdk.v1.version>1.12.797</aws.sdk.v1.version>next to the existing v2 SDK property. Version chosen to match the highestaws-java-sdk-corealready in the resolved graph, so this is a behavioral no-op and adopts the SDK version the build was already converging on.aws-java-sdk-bom(scopeimport, typepom) at the top of<dependencyManagement>with an inline comment explaining the rationale.Impact
mvninvocations that touchhudi-utilities(or any reactor including it) skip the AWS SDK range walk. Hundreds of POM downloads per fresh~/.m2go away.1.12.797) is what the build was already resolving to.Risk Level
low.
<scope>import</scope>only affects dependency resolution; no code change.mvn dependency:tree -pl hudi-utilities -amfinishes without the AWS SDK range-walk download flood.Documentation Update
none.
Contributor's checklist