-
Notifications
You must be signed in to change notification settings - Fork 3k
Use Nebula version plugins #1067
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
Conversation
|
@jerryshao, you may be interested in this change because it allows multiple Spark versions in the build. @massdosage, this should help fix your dependency issues as well. @mccheah, you may be interested in reviewing this because it updates how dependencies are locked. |
8ce3ee9 to
4ebb73f
Compare
|
OK, this does indeed look interesting. So we should be able to use this to specify a different version of Guava for a certain subproject? We'll give it a go on a branch we're working on to demonstrate the Guava version issue for Hive tests. Thanks for pointing this out. |
|
Looks like Jackson 2.10.2 breaks Spark 2.4.4: I don't think that this plugin locks transitive dependencies by default, so we will probably need to turn that on to fix this. |
jzhuge
left a comment
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.
+1 LGTM
We have used Nebula in our internal fork at Netflix for more than 6 months.
|
I tried this out in a branch we have which demonstrates the version conflicts we were getting with Hive and Guava (https://github.com/ExpediaGroup/iceberg/tree/add-hiverunner-test) and it works! |
aokolnychyi
left a comment
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.
+1
|
Thanks for reviewing, everyone! Good to have this in to unblock the Hive and Spark 3 work! |
This replaces `gradle-consistent-versions` with `nebula.dependency-recommender` and `nebula.dependency-lock`. The purpose of this change is to enable having separate Spark 2.x and Spark 3.x modules in the build. An empty `spark3` project is included. The dependency recommender plugin is used to get versions from `versions.props` or the per-project dependency lock files. The dependency lock plugin is used to lock versions. Locks are now generated in the `build/` folders using `./gradlew generateLock`, and used in the build after running `./gradlew saveLock`. The JSON lock files are added in this commit. These are large because they include transitive information and a set of dependencies per configuration. This also fixes a problem where JMH dependencies needed to be declared in the compile configuration. Now JMH dependencies can use the jmh configuration.
This replaces
gradle-consistent-versionswithnebula.dependency-recommenderandnebula.dependency-lock. The purpose of this change is to enable having separate Spark 2.x and Spark 3.x modules in the build. An emptyspark3project is included.The dependency recommender plugin is used to get versions from
versions.propsor the per-project dependency lock files.The dependency lock plugin is used to lock versions. Locks are now generated in the
build/folders using./gradlew generateLock, and used in the build after running./gradlew saveLock. The JSON lock files are added in this commit. These are large because they include transitive information and a set of dependencies per configuration.This also fixes a problem where JMH dependencies needed to be declared in the compile configuration. Now JMH dependencies can use the jmh configuration.