-
Notifications
You must be signed in to change notification settings - Fork 450
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
Failure applying KtLint with Spotless Gradle plugin 6.0.0 #993
Comments
Interesting. Our integration tests for this are passing. I wonder if they would fail if we added spotless/plugin-gradle/src/test/java/com/diffplug/gradle/spotless/KotlinGradleExtensionTest.java Lines 38 to 58 in 23249fc
If we do need to do something with variants, here's the place that would need to change. spotless/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/GradleProvisioner.java Lines 72 to 79 in 23249fc
|
Yes, the tests would fail for any version of KtLint from 0.41.0 and up, as the JAR bundling was changed then. ktlintConfiguration.attributes {
attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling, Bundling.EXTERNAL))
} |
Also, seeing this issue when bumping to 6.0.0 in eagerness to test out the new configuration cache capability. |
Any suggested workarounds? I tried:
per @davidburstromspotify's comment, but that didn't seem to do it. Next, I can try force downgrading ktlint version. |
I think that fixing this is going to require a PR to the |
Here is a repro if it helps slackhq/slack-lints#10 |
For those looking for a workaround (CC @jrodbx), here's one adapted from the standalone ktlint gradle plugin workaround:
|
Thanks @jamiesanson for the workaround. Here's a self referential equivalent for Kotlin build scripts: configurations.all {
resolutionStrategy.dependencySubstitution {
substitute(module("com.pinterest:ktlint")).using(
variant(module("com.pinterest:ktlint:$ktlintVersion")) {
attributes {
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling::class, Bundling.EXTERNAL))
}
}
).because("https://github.com/diffplug/spotless/issues/993")
}
} |
Fixed in |
diffplug/spotless#993 Since this issue is fixed, upgrade it
diffplug/spotless#993 Since this issue is fixed, upgrade it
Summary: KtLint configuration fails to apply in 6.0.0 but not in 5.17.1, likely due to missing variant aware resolution.
Gradle: 7.3
Spotless version: 6.0.0
KtLint version: 0.43.0
Full configuration:
Stacktrace:
The text was updated successfully, but these errors were encountered: