From 4fa97bfb4abe68924f29c917a3a70f4551953550 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Fri, 11 Sep 2026 14:29:40 -0400 Subject: [PATCH 1/5] [Infra] Upgrade the Kotlin compiler to 2.3.21 Updated the Kotlin compiler to version 2.3.21, and updated KSP plugin and Symbol Processing API versions to 2.3.6 to be able to use it. Explicitly set the Kotlin language version and core libraries version in `FirebaseJavaLibraryPlugin` to remain in 2.1.x --- .../test-app/test-app.gradle.kts | 2 +- build.gradle.kts | 2 +- gradle/libs.versions.toml | 2 +- .../gradle/plugins/FirebaseJavaLibraryPlugin.kt | 10 ++++++++++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ai-logic/firebase-ai-ksp-processor/test-app/test-app.gradle.kts b/ai-logic/firebase-ai-ksp-processor/test-app/test-app.gradle.kts index 81efb563d78..157e924b17c 100644 --- a/ai-logic/firebase-ai-ksp-processor/test-app/test-app.gradle.kts +++ b/ai-logic/firebase-ai-ksp-processor/test-app/test-app.gradle.kts @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { id("com.android.application") id("org.jetbrains.kotlin.android") - id("com.google.devtools.ksp") version "2.1.21-2.0.2" + id("com.google.devtools.ksp") version "2.3.6" } android { diff --git a/build.gradle.kts b/build.gradle.kts index 35af65f99fb..f288c3970fc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -22,7 +22,7 @@ plugins { alias(libs.plugins.protobuf) apply false alias(libs.plugins.errorprone) alias(libs.plugins.crashlytics) apply false - id("org.jetbrains.kotlin.android") version "2.1.21" apply false + id("org.jetbrains.kotlin.android") version "2.3.21" apply false id("PublishingPlugin") id("test-report") id("firebase-ci") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 510a63234bd..dc77170b1ba 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -72,7 +72,7 @@ rxjava = "2.2.21" serialization = "1.7.3" slf4j = "2.0.17" spotless = "7.0.4" -symbolProcessingApi = "2.2.10-2.0.2" +symbolProcessingApi = "2.3.6" testServices = "1.6.0" truth = "1.4.5" truthProtoExtension = "1.0" diff --git a/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt b/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt index 0e706ce8337..afe463ebc9e 100644 --- a/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt +++ b/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt @@ -26,6 +26,8 @@ import org.gradle.kotlin.dsl.create import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.register import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile /** @@ -54,6 +56,14 @@ class FirebaseJavaLibraryPlugin : BaseFirebaseLibraryPlugin() { // reduce the likelihood of kotlin module files colliding. project.tasks.withType { kotlinOptions.freeCompilerArgs = listOf("-module-name", kotlinModuleName(project)) + kotlinOptions.languageVersion = KotlinVersion.KOTLIN_2_1.version + } + + project.afterEvaluate { + val kotlinExtension = project.extensions.findByType(KotlinProjectExtension::class.java) + if (kotlinExtension != null) { + kotlinExtension.coreLibrariesVersion = "2.1.21" + } } } From 736f7ec114e55925a6ac36a4527ed78af92dc717 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Fri, 11 Sep 2026 16:49:58 -0400 Subject: [PATCH 2/5] Address feedback --- .../firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt b/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt index afe463ebc9e..01037e38b6e 100644 --- a/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt +++ b/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt @@ -59,11 +59,8 @@ class FirebaseJavaLibraryPlugin : BaseFirebaseLibraryPlugin() { kotlinOptions.languageVersion = KotlinVersion.KOTLIN_2_1.version } - project.afterEvaluate { - val kotlinExtension = project.extensions.findByType(KotlinProjectExtension::class.java) - if (kotlinExtension != null) { - kotlinExtension.coreLibrariesVersion = "2.1.21" - } + project.plugins.withId("org.jetbrains.kotlin.jvm") { + project.extensions.findByType(KotlinProjectExtension::class.java)?.coreLibrariesVersion = "2.1.21" } } From 5c85b00af183887d81b5dc1571de1f6138d5dd27 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Mon, 14 Sep 2026 13:13:05 -0400 Subject: [PATCH 3/5] Remove genc SDK since it depends on a deprecated annoations processor It should be moved from KAPT into KSP. Since there's no plan on releasing a newer version, we can postpone this change for now --- subprojects.cfg | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/subprojects.cfg b/subprojects.cfg index 8f3e953a2a1..4122db3b365 100644 --- a/subprojects.cfg +++ b/subprojects.cfg @@ -60,8 +60,10 @@ encoders:firebase-encoders-processor # sdk encoders:firebase-encoders-proto # sdk encoders:firebase-encoders-reflective # sdk encoders:firebase-decoders-json # sdk -encoders:protoc-gen-firebase-encoders # sdk -encoders:protoc-gen-firebase-encoders:tests # test +## Commented out to allow migration to KSP 2.3 +## TODO: Migrate them out of KAPT into KSP +# encoders:protoc-gen-firebase-encoders # sdk +# encoders:protoc-gen-firebase-encoders:tests # test integ-testing # util From 4c7d6439dac91196277f6f99b400ba6f4d1c1fca Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Mon, 14 Sep 2026 19:27:00 -0400 Subject: [PATCH 4/5] Address issues with encoders --- .../protoc-gen-firebase-encoders.gradle | 7 +++++++ subprojects.cfg | 6 ++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/encoders/protoc-gen-firebase-encoders/protoc-gen-firebase-encoders.gradle b/encoders/protoc-gen-firebase-encoders/protoc-gen-firebase-encoders.gradle index 0b34665d413..d59ba2ce44a 100644 --- a/encoders/protoc-gen-firebase-encoders/protoc-gen-firebase-encoders.gradle +++ b/encoders/protoc-gen-firebase-encoders/protoc-gen-firebase-encoders.gradle @@ -20,6 +20,13 @@ plugins { id "kotlin-kapt" } +kotlin { + coreLibrariesVersion = "2.1.21" + compilerOptions { + languageVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_1 + } +} + protobuf { protoc { artifact = libs.protoc.get().toString() diff --git a/subprojects.cfg b/subprojects.cfg index 4122db3b365..8f3e953a2a1 100644 --- a/subprojects.cfg +++ b/subprojects.cfg @@ -60,10 +60,8 @@ encoders:firebase-encoders-processor # sdk encoders:firebase-encoders-proto # sdk encoders:firebase-encoders-reflective # sdk encoders:firebase-decoders-json # sdk -## Commented out to allow migration to KSP 2.3 -## TODO: Migrate them out of KAPT into KSP -# encoders:protoc-gen-firebase-encoders # sdk -# encoders:protoc-gen-firebase-encoders:tests # test +encoders:protoc-gen-firebase-encoders # sdk +encoders:protoc-gen-firebase-encoders:tests # test integ-testing # util From 5cd39991a993100d2a9e37c849b00c1bb792c59b Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Tue, 15 Sep 2026 11:37:07 -0400 Subject: [PATCH 5/5] Fix format --- .../firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt b/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt index 01037e38b6e..09cfc4639d8 100644 --- a/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt +++ b/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt @@ -60,7 +60,8 @@ class FirebaseJavaLibraryPlugin : BaseFirebaseLibraryPlugin() { } project.plugins.withId("org.jetbrains.kotlin.jvm") { - project.extensions.findByType(KotlinProjectExtension::class.java)?.coreLibrariesVersion = "2.1.21" + project.extensions.findByType(KotlinProjectExtension::class.java)?.coreLibrariesVersion = + "2.1.21" } }