diff --git a/build.gradle.kts b/build.gradle.kts index 3661c6d27..544325c8c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ plugins { `kotlin-dsl` id("groovy") id("convention") - id("com.autonomousapps.dependency-analysis") + alias(libs.plugins.dependencyAnalysis) id("com.autonomousapps.testkit") } @@ -317,6 +317,15 @@ dependencyAnalysis { } } + abi { + exclusions { + excludeSourceSets( + // These source sets have an "...Api" configuration, but have no ABI, semantically. Exclude them. + "functionalTest", "smokeTest" + ) + } + } + issues { all { onAny { @@ -324,9 +333,19 @@ dependencyAnalysis { } onIncorrectConfiguration { exclude( - // technically this should be on functionalTestApi, but also there _is_ no api for that source set. KGP adds - // one erroneously. This is fixed in an upcoming version of KGP. - "com.autonomousapps:gradle-testkit-support" + // TODO(tsr): + // 1. version catalog ref (libs.relocated.asm) is not working for some reason + // 2. This fatjar is bundling Kotlin stdlib classes, which is what the analysis is detecting + "com.autonomousapps:asm-relocated", + ) + } + onUsedTransitiveDependencies { + exclude( + // TODO(tsr): + // 1. version catalog ref (libs.relocated.asm) is not working for some reason + // 2. This fatjar is bundling Kotlin stdlib classes, which is what the analysis is detecting + // 3. The exclusion only works when I use the project reference, not the Maven coordinates + ":asm-relocated", ) } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e425ffe2b..bb8e3eb4e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,6 +19,7 @@ android-tools-common = { module = "com.android.tools:common", version.ref = "agp caffeine = "com.github.ben-manes.caffeine:caffeine:3.1.0" commons-io = "commons-io:commons-io:2.11.0" +errorProne = "com.google.errorprone:error_prone_annotations:2.11.0" gradle-publish-plugin = "com.gradle.plugin-publish:com.gradle.plugin-publish.gradle.plugin:1.1.0" grammar = { module = "com.autonomousapps:gradle-script-grammar", version.ref = "grammar" } guava = "com.google.guava:guava:31.1-jre" @@ -57,3 +58,6 @@ junit-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref mockito-kotlin = "com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0" spock = "org.spockframework:spock-core:2.1-groovy-3.0" truth = "com.google.truth:truth:1.1.3" + +[plugins] +dependencyAnalysis = { id = "com.autonomousapps.dependency-analysis", version = "1.28.0" } diff --git a/settings.gradle.kts b/settings.gradle.kts index ab01adb0f..240647471 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -26,7 +26,6 @@ pluginManagement { } } plugins { - id("com.autonomousapps.dependency-analysis") version "1.25.0"//latestSnapshot id("com.github.johnrengelman.shadow") version "8.1.1" id("com.gradle.enterprise") version "3.15.1" id("com.gradle.plugin-publish") version "1.1.0" diff --git a/testkit/build.gradle.kts b/testkit/build.gradle.kts index e3c8bc6ff..df0f98c95 100644 --- a/testkit/build.gradle.kts +++ b/testkit/build.gradle.kts @@ -1,4 +1,14 @@ plugins { - id("com.autonomousapps.dependency-analysis") + alias(libs.plugins.dependencyAnalysis) id("org.jetbrains.kotlin.jvm") apply false } + +dependencyAnalysis { + issues { + all { + onAny { + severity("fail") + } + } + } +} diff --git a/testkit/gradle-testkit-plugin/build.gradle.kts b/testkit/gradle-testkit-plugin/build.gradle.kts index 649d61549..f407c7567 100644 --- a/testkit/gradle-testkit-plugin/build.gradle.kts +++ b/testkit/gradle-testkit-plugin/build.gradle.kts @@ -5,7 +5,7 @@ plugins { id("com.gradle.plugin-publish") id("convention") id("org.jetbrains.dokka") - id("com.autonomousapps.dependency-analysis") + alias(libs.plugins.dependencyAnalysis) id("com.autonomousapps.testkit") } @@ -69,7 +69,7 @@ dependencies { functionalTestImplementation(platform(libs.junit.bom)) functionalTestImplementation(project(":gradle-testkit-support")) functionalTestImplementation(project(":gradle-testkit-truth")) - functionalTestImplementation(libs.junit.api) + // functionalTestImplementation(libs.junit.api) functionalTestImplementation(libs.junit.params) functionalTestImplementation(libs.truth) functionalTestRuntimeOnly(libs.junit.engine) diff --git a/testkit/gradle-testkit-support/build.gradle.kts b/testkit/gradle-testkit-support/build.gradle.kts index bc7ad1517..06bee0c16 100644 --- a/testkit/gradle-testkit-support/build.gradle.kts +++ b/testkit/gradle-testkit-support/build.gradle.kts @@ -1,7 +1,7 @@ plugins { id("convention") id("org.jetbrains.dokka") - id("com.autonomousapps.dependency-analysis") + alias(libs.plugins.dependencyAnalysis) id("com.autonomousapps.testkit") } diff --git a/testkit/gradle-testkit-truth/build.gradle.kts b/testkit/gradle-testkit-truth/build.gradle.kts index 81dcc84fa..8def870d2 100644 --- a/testkit/gradle-testkit-truth/build.gradle.kts +++ b/testkit/gradle-testkit-truth/build.gradle.kts @@ -1,6 +1,7 @@ plugins { id("convention") id("org.jetbrains.dokka") + alias(libs.plugins.dependencyAnalysis) id("com.autonomousapps.testkit") } @@ -36,11 +37,15 @@ tasks.named("javadoc") { } dependencies { - implementation(platform("org.jetbrains.kotlin:kotlin-bom")) - api(kotlin("stdlib")) api(gradleTestKit()) api(libs.truth) + implementation(platform(libs.kotlin.bom)) + implementation(libs.errorProne) { + because("Uses @CanIgnoreReturnValue") + } + implementation(libs.guava) + dokkaHtmlPlugin(libs.kotlin.dokka) } diff --git a/testkit/settings.gradle.kts b/testkit/settings.gradle.kts index 2db17bf6d..fbc22eda9 100644 --- a/testkit/settings.gradle.kts +++ b/testkit/settings.gradle.kts @@ -21,7 +21,6 @@ pluginManagement { } } plugins { - id("com.autonomousapps.dependency-analysis") version "1.25.0" id("com.autonomousapps.testkit") version "0.4" id("com.github.johnrengelman.shadow") version "8.1.1"