From 443faec30d0686937774bb76c2bafe27a765a1e3 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Fri, 17 Jun 2022 11:37:57 +0200 Subject: [PATCH] [kpm] kgp-idea-proto: Create special binaryValidationApiElements configuration This will be a 'lean' jar file (un-shadowed), which can later be used by the binary-compatibility-validator to test the API surface against. ^KT-52568 Verification Pending --- .../binary-compatibility-validator/build.gradle | 2 +- .../RuntimePublicAPITest.kt | 2 +- .../build.gradle.kts | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/libraries/tools/binary-compatibility-validator/build.gradle b/libraries/tools/binary-compatibility-validator/build.gradle index 9d4408e5545..d3f1817ce0c 100644 --- a/libraries/tools/binary-compatibility-validator/build.gradle +++ b/libraries/tools/binary-compatibility-validator/build.gradle @@ -15,7 +15,7 @@ dependencies { testArtifacts project(':kotlin-stdlib-jdk8') testArtifacts project(':kotlin-reflect') testArtifacts project(':kotlin-gradle-plugin-idea') - testArtifacts project(':kotlin-gradle-plugin-idea-proto') + testArtifacts project(path: ":kotlin-gradle-plugin-idea-proto", configuration: "binaryValidationApiElements") testArtifacts project(':kotlin-tooling-core') testCompileOnly("org.ow2.asm:asm-tree:9.0") { diff --git a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt index 78234ab1f16..61737f097b3 100644 --- a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt +++ b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt @@ -42,7 +42,7 @@ class RuntimePublicAPITest { @Test fun kotlinGradlePluginIdeaProto() { snapshotAPIAndCompare( - "../kotlin-gradle-plugin-idea-proto/build/libs", "kotlin-gradle-plugin-idea-proto(?!-[-a-z]+)", + "../kotlin-gradle-plugin-idea-proto/build/libs", "kotlin-gradle-plugin-idea-proto-api(?!-[-a-z]+)", nonPublicAnnotations = listOf("org/jetbrains/kotlin/gradle/kpm/idea/InternalKotlinGradlePluginApi") ) } diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-idea-proto/build.gradle.kts index c3f67390dc0..e1e93b1289c 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea-proto/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/build.gradle.kts @@ -56,6 +56,21 @@ runtimeJar(tasks.register("shadowJar")) { publish() +/* Setup configuration for binary compatibility tests */ +run { + val binaryValidationApiElements by configurations.creating { + isCanBeResolved = false + isCanBeConsumed = true + } + + val binaryValidationApiJar = tasks.register("binaryValidationApiJar") { + this.archiveBaseName.set(project.name + "-api") + from(mainSourceSet.output) + } + + artifacts.add(binaryValidationApiElements.name, binaryValidationApiJar) +} + tasks.register("protoc") { val protoSources = file("src/main/proto") val javaOutput = file("src/generated/java/")