From 1607578fc74714d4b8c17587ef77a99245befbf2 Mon Sep 17 00:00:00 2001 From: Yuri Schimke Date: Sun, 8 Feb 2026 11:59:44 -0800 Subject: [PATCH 1/3] Apply kotlin version compat Copy the approach from Okio. --- build-logic/build.gradle.kts | 1 + .../kotlin/okhttp.jvm-conventions.gradle.kts | 17 ++++++++++++++--- gradle/libs.versions.toml | 5 +++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts index 8fe7dd0bcfdf..24cd8f0a5a14 100644 --- a/build-logic/build.gradle.kts +++ b/build-logic/build.gradle.kts @@ -34,6 +34,7 @@ dependencies { implementation(libs.gradlePlugin.graalvm) implementation(libs.gradlePlugin.ksp) implementation(libs.gradlePlugin.mrjar) + implementation(libs.gradlePlugin.tapmoc) implementation(libs.androidx.lint.gradle) implementation(libs.kotlin.gradle.plugin.api) } diff --git a/build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts b/build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts index fc903a06f63b..ce57d62c0616 100644 --- a/build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts @@ -1,11 +1,12 @@ +import groovyjarjarantlr4.v4.runtime.misc.RuleDependencyChecker.checkDependencies import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import kotlinx.validation.ApiValidationExtension -import org.gradle.api.artifacts.VersionCatalogsExtension -import okhttp3.buildsupport.testJavaVersion +import tapmoc.TapmocExtension +import tapmoc.configureKotlinCompatibility plugins { id("okhttp.base-conventions") + id("com.gradleup.tapmoc") } val libs = extensions.getByType().named("libs") @@ -21,6 +22,11 @@ extensions.configure { } } +// Introduce in a separate change +//configureJavaCompatibility(javaVersion = 8) + +configureKotlinCompatibility(version = version("kotlinCoreLibrariesVersion")) + tasks.withType { options.encoding = Charsets.UTF_8.toString() if (name.contains("Java9")) { @@ -41,3 +47,8 @@ tasks.withType { ) } } + +extensions.configure { + // Fail the build if any api dependency exposes incompatible Kotlin metadata, Kotlin stdlib or Java bytecode version. + checkDependencies() +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 159bf3d89ae7..61530fc2127c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -64,6 +64,10 @@ startup-runtime = "1.2.0" testcontainers = "1.21.4" zstd-kmp-okio = "0.4.0" +# Set to lower version than KGP version to maximize compatibility +# Default to matching okio +kotlinCoreLibrariesVersion = "2.1.21" + [libraries] amazon-corretto = { module = "software.amazon.cryptools:AmazonCorrettoCryptoProvider", version.ref = "amazon-corretto" } androidx-activity = { module = "androidx.activity:activity-ktx", version.ref = "androidx-activity" } @@ -151,6 +155,7 @@ gradlePlugin-mavenPublish = { module = "com.vanniktech:gradle-maven-publish-plug gradlePlugin-mrjar = { module = "me.champeau.mrjar:me.champeau.mrjar.gradle.plugin", version.ref = "mrjar" } gradlePlugin-shadow = { module = "com.gradleup.shadow:shadow-gradle-plugin", version.ref = "shadow-plugin" } gradlePlugin-spotless = { module = "com.diffplug.spotless:spotless-plugin-gradle", version.ref = "spotless-plugin" } +gradlePlugin-tapmoc = { module = "com.gradleup.tapmoc:com.gradleup.tapmoc.gradle.plugin", version = "0.4.0"} [plugins] android-application = { id = "com.android.application", version.ref = "agp" } From 012fdb5b249c3b67ee0b855ca4315efbcfbec5b3 Mon Sep 17 00:00:00 2001 From: Yuri Schimke Date: Sun, 8 Feb 2026 13:14:03 -0800 Subject: [PATCH 2/3] Fix --- build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts b/build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts index ce57d62c0616..b9edcec997bf 100644 --- a/build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts @@ -1,4 +1,3 @@ -import groovyjarjarantlr4.v4.runtime.misc.RuleDependencyChecker.checkDependencies import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import tapmoc.TapmocExtension From 63e095757e41ebc813fefad79b92f73d53a14f0d Mon Sep 17 00:00:00 2001 From: Yuri Schimke Date: Mon, 9 Feb 2026 06:25:11 -0800 Subject: [PATCH 3/3] Update build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts Co-authored-by: Jake Wharton --- build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts b/build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts index b9edcec997bf..6138b8f833fd 100644 --- a/build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/okhttp.jvm-conventions.gradle.kts @@ -48,6 +48,6 @@ tasks.withType { } extensions.configure { - // Fail the build if any api dependency exposes incompatible Kotlin metadata, Kotlin stdlib or Java bytecode version. + // Fail the build if any api dependency exposes incompatible Kotlin metadata, Kotlin stdlib, or Java bytecode version. checkDependencies() }