Skip to content

Rework plugin-core shadow jar publishing to completely avoid dependencies in pom; fix source dependency on :core in :samples - #2070

Merged
koperagen merged 2 commits into
masterfrom
fix-plugin-core-pom
Sep 30, 2026
Merged

koperagen merged 2 commits into
masterfrom
fix-plugin-core-pom

Conversation

@koperagen

@koperagen koperagen commented Sep 9, 2026 •

Copy link
Copy Markdown
Collaborator

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
image

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:

image (what now happens if someone adds it by accident)

@jetbrains-air jetbrains-air Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread dataframe-compiler-plugin-core/build.gradle.kts
Comment thread dataframe-compiler-plugin-core/build.gradle.kts
Comment thread dataframe-compiler-plugin-core/build.gradle.kts Outdated
@koperagen
koperagen marked this pull request as draft September 9, 2026 20:08
@koperagen
koperagen marked this pull request as ready for review September 10, 2026 13:46

@jetbrains-air jetbrains-air Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread dataframe-compiler-plugin-core/build.gradle.kts
@koperagen
koperagen force-pushed the fix-plugin-core-pom branch 2 times, most recently from 339a65a to e58ab1c Compare September 10, 2026 15:05
@zaleslaw
zaleslaw self-requested a review September 11, 2026 12:13

@jetbrains-air jetbrains-air Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@koperagen koperagen changed the title Rework plugin-core shadow jar publishing to completely avoid dependencies in pom Rework plugin-core shadow jar publishing to completely avoid dependencies in pom; fix source dependency on :core in :samples Sep 11, 2026
Comment thread samples/build.gradle.kts Outdated
it.name in setOf("compileClasspath", "testCompileClasspath")
}

val configurationsThatAffectCompilerPluginResolve = setOf("api", "implementation", "compileOnly", "compileOnlyApi")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this part not duplicating some behavior at line 103? adding transitive dependencies

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

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.
@koperagen
koperagen merged commit d6ac0c7 into master Sep 30, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants