From d5344b7ff13aeef9ed61cf6a4db98e2760c965e8 Mon Sep 17 00:00:00 2001 From: Goooler Date: Mon, 20 Jul 2026 12:05:19 +0800 Subject: [PATCH 1/4] Revert "Revert "Try out Tapmoc (#1979)"" This reverts commit 4453e9b1 --- build.gradle.kts | 27 ++++++++------------------- gradle/libs.versions.toml | 1 + 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 7c04025a1..45dd7ed83 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,8 +6,6 @@ import org.gradle.api.plugins.JavaPlugin.RUNTIME_ELEMENTS_CONFIGURATION_NAME import org.gradle.api.plugins.JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME import org.gradle.plugin.compatibility.compatibility import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion import org.jetbrains.kotlin.gradle.dsl.abi.ExperimentalAbiValidation plugins { @@ -18,6 +16,7 @@ plugins { alias(libs.plugins.pluginPublish) alias(libs.plugins.spotless) alias(libs.plugins.buildConfig) + alias(libs.plugins.tapmoc) } version = providers.gradleProperty("VERSION_NAME").get() @@ -31,18 +30,9 @@ dokka { dokkaPublications.html { outputDirectory = rootDir.resolve("docs/api") } kotlin { explicitApi() @OptIn(ExperimentalAbiValidation::class) abiValidation() - val jdkRelease = "17" compilerOptions { allWarningsAsErrors = true - // https://docs.gradle.org/current/userguide/compatibility.html#kotlin - apiVersion = KotlinVersion.KOTLIN_2_2 - languageVersion = apiVersion - jvmTarget = JvmTarget.fromTarget(jdkRelease) jvmDefault = JvmDefaultMode.NO_COMPATIBILITY - freeCompilerArgs.add("-Xjdk-release=$jdkRelease") - } - target.compilations.configureEach { - compileJavaTaskProvider { options.release = jdkRelease.toInt() } } } @@ -67,6 +57,13 @@ spotless { } } +tapmoc { + gradle(libs.versions.minGradle) + java(17) + // https://docs.gradle.org/current/userguide/compatibility.html#kotlin + kotlin("2.2.0") +} + val testPluginClasspath = configurations.register("testPluginClasspath") { isCanBeResolved = true @@ -105,14 +102,6 @@ publishing.publications.withType().configureEach { suppressPomMetadataWarningsFor(SOURCES_ELEMENTS_CONFIGURATION_NAME) } -configurations.named(API_ELEMENTS_CONFIGURATION_NAME) { - attributes.attribute( - // TODO: https://github.com/gradle/gradle/issues/24608 - GradlePluginApiVersion.GRADLE_PLUGIN_API_VERSION_ATTRIBUTE, - objects.named(libs.versions.minGradle.get()), - ) -} - val testGradleVersion: String = providers.gradleProperty("testGradleVersion").orNull.let { val value = if (it == null || it == "current") GradleVersion.current().version else it diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6e3e130d4..90e739578 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -41,3 +41,4 @@ mavenPublish = "com.vanniktech.maven.publish:0.37.0" pluginPublish = { id = "com.gradle.plugin-publish", version.ref = "pluginPublish" } spotless = "com.diffplug.spotless:8.8.0" buildConfig = "com.github.gmazzo.buildconfig:6.0.10" +tapmoc = "com.gradleup.tapmoc:0.4.0" From a7286f686734d5169679c3aebe95d314d5b828f9 Mon Sep 17 00:00:00 2001 From: Goooler Date: Mon, 20 Jul 2026 12:10:31 +0800 Subject: [PATCH 2/4] Enable `checkDependencies` for `checkJavaClassFiles` + `checkKotlinMetadata` --- build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 45dd7ed83..6040089c0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -58,10 +58,11 @@ spotless { } tapmoc { - gradle(libs.versions.minGradle) + gradle(libs.versions.minGradle.get()) java(17) // https://docs.gradle.org/current/userguide/compatibility.html#kotlin kotlin("2.2.0") + checkDependencies() } val testPluginClasspath = From 44f8b0f9b866b0edd99d930b45b4c5ca0339c1d8 Mon Sep 17 00:00:00 2001 From: Goooler Date: Mon, 20 Jul 2026 12:12:27 +0800 Subject: [PATCH 3/4] Enable `checkJavaClassFiles` --- build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 6040089c0..3fa20ce04 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,6 +7,7 @@ import org.gradle.api.plugins.JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME import org.gradle.plugin.compatibility.compatibility import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode import org.jetbrains.kotlin.gradle.dsl.abi.ExperimentalAbiValidation +import tapmoc.Severity plugins { alias(libs.plugins.kotlin.jvm) @@ -62,7 +63,7 @@ tapmoc { java(17) // https://docs.gradle.org/current/userguide/compatibility.html#kotlin kotlin("2.2.0") - checkDependencies() + checkJavaClassFiles(Severity.ERROR) } val testPluginClasspath = From b5eb510dc60c980bb777fc6d220b6bae3f684709 Mon Sep 17 00:00:00 2001 From: Goooler Date: Mon, 20 Jul 2026 12:15:40 +0800 Subject: [PATCH 4/4] Remove minGradle --- build.gradle.kts | 2 +- gradle/libs.versions.toml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 3fa20ce04..042d5e5a5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -59,7 +59,7 @@ spotless { } tapmoc { - gradle(libs.versions.minGradle.get()) + gradle("9.2.0") java(17) // https://docs.gradle.org/current/userguide/compatibility.html#kotlin kotlin("2.2.0") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 90e739578..22d9058b4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,4 @@ [versions] -minGradle = "9.2.0" kotlin = "2.4.10" moshi = "1.15.2" pluginPublish = "2.1.1"