diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b28bb10..1edc651 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,7 +21,7 @@ inquirer = "com.github.kotlin-inquirer:kotlin-inquirer:0.1.0" jansi = "org.fusesource.jansi:jansi:2.4.0" jsonpath = "com.eygraber:jsonpathkt-kotlinx:3.0.2" jsonpathkt = "com.eygraber:jsonpathkt-kotlinx:3.0.2" -kgp-compile-only = "org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.0" +kgp-compile-only = "org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.20-Beta1" kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kgp" } ksp-gradle-plugin = "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin:2.3.3" librarian-gradle-plugin = "com.gradleup.librarian:librarian-gradle-plugin:0.2.2-SNAPSHOT-05f300b66924ec4c98ed4afcc6eed459fd08806b" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2a84e18..23449a2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/librarian-gradle-plugin/api/librarian-gradle-plugin.api b/librarian-gradle-plugin/api/librarian-gradle-plugin.api index 6398882..52b6df8 100644 --- a/librarian-gradle-plugin/api/librarian-gradle-plugin.api +++ b/librarian-gradle-plugin/api/librarian-gradle-plugin.api @@ -1,12 +1,12 @@ public final class com/gradleup/librarian/gradle/Bcv { - public fun (ZLkotlin/jvm/functions/Function1;)V - public final fun getVariantSpec ()Lkotlin/jvm/functions/Function1; + public fun (ZLjava/util/List;)V + public final fun getExcludePatterns ()Ljava/util/List; public final fun getWarnIfMissing ()Z } public final class com/gradleup/librarian/gradle/BcvKt { - public static final fun configureBcv (Lorg/gradle/api/Project;ZLkotlin/jvm/functions/Function1;)V - public static synthetic fun configureBcv$default (Lorg/gradle/api/Project;ZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)V + public static final fun configureBcv (Lorg/gradle/api/Project;ZLjava/util/List;)V + public static synthetic fun configureBcv$default (Lorg/gradle/api/Project;ZLjava/util/List;ILjava/lang/Object;)V } public final class com/gradleup/librarian/gradle/CompatibilityKt { diff --git a/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/bcv.kt b/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/bcv.kt index 0ca5015..994c257 100644 --- a/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/bcv.kt +++ b/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/bcv.kt @@ -8,7 +8,10 @@ import org.jetbrains.kotlin.gradle.dsl.abi.ExperimentalAbiValidation import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion @OptIn(ExperimentalAbiValidation::class) -fun Project.configureBcv(warnIfMissing: Boolean = true, block: (variantSpec: Any) -> Unit = {}) { +fun Project.configureBcv( + warnIfMissing: Boolean = true, + excludePatterns: List = emptyList(), +) { extensions.getByType(KotlinProjectExtension::class.java).apply { val abiValidation = this.extensions.findByName("abiValidation") @@ -16,14 +19,14 @@ fun Project.configureBcv(warnIfMissing: Boolean = true, block: (variantSpec: Any when (abiValidation) { is AbiValidationExtension -> { abiValidation.enabled.set(true) - abiValidation.variants.configureEach { - block(it) + abiValidation.filters { + it.exclude.byNames.addAll(excludePatterns) } } is AbiValidationMultiplatformExtension -> { abiValidation.enabled.set(true) - abiValidation.variants.configureEach { - block(it) + abiValidation.filters { + it.exclude.byNames.addAll(excludePatterns) } } else -> error("Librarian: unknown abiValidation extension type: '${abiValidation.javaClass.name}'") diff --git a/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/module.kt b/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/module.kt index b1f1a0d..f9fa452 100644 --- a/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/module.kt +++ b/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/module.kt @@ -82,7 +82,7 @@ fun Project.librarianModule() { val moduleProperties = moduleProperties() val bcv = if (moduleProperties.getProperty("bcv") != "false") { - Bcv(rootProperties.get("bcv.warn") != "false") {} + Bcv(rootProperties.get("bcv.warn") != "false", emptyList()) } else { null } @@ -109,7 +109,7 @@ fun Project.librarianModule() { class Bcv( val warnIfMissing: Boolean, - val variantSpec: (variantSpec: Any) -> Unit + val excludePatterns: List ) class Publishing( @@ -168,7 +168,7 @@ fun Project.librarianModule( * This is because we don't need to track projects that do not get published. */ if (bcv != null) { - configureBcv(bcv.warnIfMissing, bcv.variantSpec) + configureBcv(bcv.warnIfMissing, bcv.excludePatterns) } /** * Only configure signing for projects that are published.