Use BCV plugin to dump and check public API of Kotlin Gradle plugin-related artifacts

This commit is contained in:
Ilya Gorbunov
2022-11-07 18:51:22 +01:00
committed by Space Team
parent 49bd4e672b
commit 59131f8138
14 changed files with 64 additions and 54 deletions
@@ -0,0 +1,13 @@
public final class org/jetbrains/kotlin/gradle/idea/proto/kpm/KpmIdeaProto {
public static final fun IdeaKpmProject (Lorg/jetbrains/kotlin/gradle/idea/serialize/IdeaKotlinSerializationContext;Ljava/io/InputStream;)Lorg/jetbrains/kotlin/gradle/idea/kpm/IdeaKpmProject;
public static final fun IdeaKpmProject (Lorg/jetbrains/kotlin/gradle/idea/serialize/IdeaKotlinSerializationContext;Ljava/nio/ByteBuffer;)Lorg/jetbrains/kotlin/gradle/idea/kpm/IdeaKpmProject;
public static final fun IdeaKpmProject (Lorg/jetbrains/kotlin/gradle/idea/serialize/IdeaKotlinSerializationContext;[B)Lorg/jetbrains/kotlin/gradle/idea/kpm/IdeaKpmProject;
public static final fun toByteArray (Lorg/jetbrains/kotlin/gradle/idea/kpm/IdeaKpmProject;Lorg/jetbrains/kotlin/gradle/idea/serialize/IdeaKotlinSerializationContext;)[B
public static final fun writeTo (Lorg/jetbrains/kotlin/gradle/idea/kpm/IdeaKpmProject;Ljava/io/OutputStream;Lorg/jetbrains/kotlin/gradle/idea/serialize/IdeaKotlinSerializationContext;)V
}
public final class org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinDependency {
public static final fun IdeaKotlinDependency (Lorg/jetbrains/kotlin/gradle/idea/serialize/IdeaKotlinSerializationContext;[B)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependency;
public static final fun toByteArray (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependency;Lorg/jetbrains/kotlin/gradle/idea/serialize/IdeaKotlinSerializationContext;)[B
}
@@ -4,6 +4,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
plugins {
kotlin("jvm")
id("org.jetbrains.kotlinx.binary-compatibility-validator")
}
kotlin {
@@ -46,17 +47,21 @@ runtimeJar(tasks.register<ShadowJar>("embeddable")) {
/* Setup configuration for binary compatibility tests */
run {
val binaryValidationApiElements by configurations.creating {
isCanBeResolved = false
isCanBeConsumed = true
}
val binaryValidationApiJar = tasks.register<Jar>("binaryValidationApiJar") {
this.archiveBaseName.set(project.name + "-api")
from(mainSourceSet.output)
}
artifacts.add(binaryValidationApiElements.name, binaryValidationApiJar)
apiValidation {
ignoredPackages += "org.jetbrains.kotlin.gradle.idea.proto.generated"
nonPublicMarkers += "org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi"
}
tasks {
apiBuild {
inputJar.value(binaryValidationApiJar.flatMap { it.archiveFile })
}
}
}
/* Setup protoc */