Rework plugin-core shadow jar publishing to completely avoid dependencies in pom; fix source dependency on :core in :samples - #2070
Conversation
There was a problem hiding this comment.
Really nice find on the root cause — just a couple of publishing details to sort out before this can land.
Produced by Air Automations. Name: AI Review / Run: https://air.jetbrains.cloud/org/05cf1a7f-6ab5-713b-abd3-29d0c8a05e2d/automations/8daf2412-0b6c-4433-90c0-b40ab5aebcdb?run=c4909843-0071-46cd-99bf-0a572ce6e695
1fa12eb to
339a65a
Compare
There was a problem hiding this comment.
All checks out on my side — happy to approve this one!
Produced by Air Automations. Name: AI Review / Run: https://air.jetbrains.cloud/org/05cf1a7f-6ab5-713b-abd3-29d0c8a05e2d/automations/8daf2412-0b6c-4433-90c0-b40ab5aebcdb?run=208a50b5-8987-4acf-aa63-ea04e11988f7
339a65a to
e58ab1c
Compare
There was a problem hiding this comment.
Everything I checked holds up — happy to approve this one!
Produced by Air Automations. Name: AI Review / Run: https://air.jetbrains.cloud/org/05cf1a7f-6ab5-713b-abd3-29d0c8a05e2d/automations/8daf2412-0b6c-4433-90c0-b40ab5aebcdb?run=ae870c38-0b9c-4693-8d3b-f13b247b4019
| it.name in setOf("compileClasspath", "testCompileClasspath") | ||
| } | ||
|
|
||
| val configurationsThatAffectCompilerPluginResolve = setOf("api", "implementation", "compileOnly", "compileOnlyApi") |
There was a problem hiding this comment.
is this part not duplicating some behavior at line 103? adding transitive dependencies
There was a problem hiding this comment.
this part only verifies that we don't transitively depend on :core in a way that would affect compiler plugin
i think it's different from 103
There was a problem hiding this comment.
Ah okay, I see. Could you then maybe group these new things together in a // region and add some small comments what they're for? That way we will know later this is something different from dependentProjectJarPaths, especially if we need to extract the logic to a build convention plugin
e58ab1c to
180c1a8
Compare
It turned out to brings source dependency on :core in :samples, which causes all sorts of lazy resolve problems in IDE. DataFrame compiler plugin cannot work with source :core dependency, it requires fully resolved binary of it. Adding safe guard to prevent misconfiguration
…cies in pom Before, the problem was that even though dependency is excluded and actually no files are bundled, Gradle dependency verification still picks up that core dependency brings slf4j-api.
180c1a8 to
fdbaf84
Compare
Before, the problem was that even though dependency is excluded and actually no files are bundled, Gradle dependency verification still picks up that core dependency brings slf4j-api (we exclude it).
diff of gradle/verification-metadata.xml in Kotlin after update to 1.0.0-dev-11225

Also, i had to rollback common-test-utils to opt in basis. I decided to do it in this PR because solution to original problem also required to exclude core dependency from testImplementation of dataframe-plugin-core. But we also have 2nd similar problem. I thought since 2 modules require to remove it, it'd be reasonable to resolve both tasks here.
So, 2nd problem: convention plugin turned out to bring source dependency on :core in :samples, which causes all sorts of lazy resolve problems in IDE. DataFrame compiler plugin cannot work with source :core dependency, it requires fully resolved binary of it. Adding safe guard to prevent misconfiguration: