-
Notifications
You must be signed in to change notification settings - Fork 230
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Skip unshim and dedup of external spark-rapids-jni and jucx [databricks] #5603
Changes from 3 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -55,6 +55,20 @@ | |
<version>${project.version}</version> | ||
<classifier>${spark.version.classifier}</classifier> | ||
</dependency> | ||
<!-- set provided scope for JNI and ucx to avoid pulling into aggregator jar --> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Alternatively we could simply add these artifacts to the exclude list of the shade artifactSet
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, this one is more natural. Done. |
||
<dependency> | ||
<groupId>org.openucx</groupId> | ||
<artifactId>jucx</artifactId> | ||
<version>${ucx.version}</version> | ||
<scope>provided</scope> | ||
</dependency> | ||
<dependency> | ||
<groupId>com.nvidia</groupId> | ||
<artifactId>spark-rapids-jni</artifactId> | ||
<version>${spark-rapids-jni.version}</version> | ||
firestarman marked this conversation as resolved.
Show resolved
Hide resolved
|
||
<classifier>${cuda.version}</classifier> | ||
<scope>provided</scope> | ||
</dependency> | ||
</dependencies> | ||
<build> | ||
<plugins> | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -409,6 +409,43 @@ | |
</excludes> | ||
</configuration> | ||
</plugin> | ||
<plugin> | ||
NvTimLiu marked this conversation as resolved.
Show resolved
Hide resolved
|
||
<!-- The dependency scopes of spark-rapids-jni and jucx are `provided` in aggregator submodule, | ||
this will skip the dedupe processing in `create-parallel-world`. | ||
Unpack spark-rapids-jni and jucx jars to `parallel-world` directory after `create-parallel-world`, | ||
then `parallel-world` will be packaged. | ||
Note all Shims use the same version of spark-rapids-jni and jucx --> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-dependency-plugin</artifactId> | ||
<executions> | ||
<execution> | ||
<id>unpack-spark-rapids-jni-and-ucx</id> | ||
<!-- run after `create-parallel-world`, the phase equals to the phase of the `create-parallel-world` --> | ||
<phase>generate-resources</phase> | ||
<goals> | ||
<goal>unpack</goal> | ||
jlowe marked this conversation as resolved.
Show resolved
Hide resolved
|
||
</goals> | ||
<configuration> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. To have a more obvious way of reasoning about the order of the dependency processing I would move this unpacks inside ant There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not found a way to invoke the Now the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. it can be done similar to the dependency:get code there.
Your suggestion is fine with me, however, I am biased to keeping related code in one place even if it's a little hacky. |
||
<artifactItems> | ||
<artifactItem> | ||
<groupId>com.nvidia</groupId> | ||
<artifactId>spark-rapids-jni</artifactId> | ||
<version>${spark-rapids-jni.version}</version> | ||
<excludes>META-INF</excludes> | ||
<outputDirectory>${project.build.directory}/parallel-world</outputDirectory> | ||
</artifactItem> | ||
<artifactItem> | ||
<groupId>org.openucx</groupId> | ||
<artifactId>jucx</artifactId> | ||
<version>${ucx.version}</version> | ||
<excludes>META-INF</excludes> | ||
<outputDirectory>${project.build.directory}/parallel-world</outputDirectory> | ||
</artifactItem> | ||
</artifactItems> | ||
</configuration> | ||
</execution> | ||
</executions> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
</project> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we cannot find a way to automatically pull in immediate provided dependencies, there needs to be a comment here explaining that any changes here likely impact the corresponding dependency list maintained in dist/pom.xml.