From f97df24ae842d448cf8568136efd1a3ebb13ba98 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Fri, 12 Sep 2025 14:33:27 -0400 Subject: [PATCH 1/8] [Infra] Update how we declare kotlin compiler options Kotlin compiler options should be specified using the kotlin block instead of the `kotlinOptions` within `android`. See https://youtrack.jetbrains.com/issue/KT-27301/Expose-compiler-flags-via-Gradle-lazy-properties and https://b.corp.google.com/issues/247544167. This applies to how the JVM target is declared. Additionally, there's a better way to declare free compiler args, in our case to forche the explicit api flag to be "strict". --- firebase-ai/firebase-ai.gradle.kts | 12 ++++++------ firebase-functions/firebase-functions.gradle.kts | 14 +++++++------- firebase-sessions/firebase-sessions.gradle.kts | 12 +++++++++--- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/firebase-ai/firebase-ai.gradle.kts b/firebase-ai/firebase-ai.gradle.kts index 9d85562bee2..3d2e102aada 100644 --- a/firebase-ai/firebase-ai.gradle.kts +++ b/firebase-ai/firebase-ai.gradle.kts @@ -16,7 +16,8 @@ @file:Suppress("UnstableApiUsage") -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("firebase-library") @@ -55,7 +56,6 @@ android { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } testOptions { targetSdk = targetSdkVersion unitTests { @@ -73,17 +73,17 @@ android { } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + // Enable Kotlin "Explicit API Mode". This causes the Kotlin compiler to fail if any // classes, methods, or properties have implicit `public` visibility. This check helps // avoid accidentally leaking elements into the public API, requiring that any public // element be explicitly declared as `public`. // https://github.com/Kotlin/KEEP/blob/master/proposals/explicit-api-mode.md // https://chao2zhang.medium.com/explicit-api-mode-for-kotlin-on-android-b8264fdd76d1 -tasks.withType().all { +tasks.withType().configureEach { if (!name.contains("test", ignoreCase = true)) { - if (!kotlinOptions.freeCompilerArgs.contains("-Xexplicit-api=strict")) { - kotlinOptions.freeCompilerArgs += "-Xexplicit-api=strict" - } + compilerOptions.freeCompilerArgs.add("-Xexplicit-api=strict") } } diff --git a/firebase-functions/firebase-functions.gradle.kts b/firebase-functions/firebase-functions.gradle.kts index 1f557357a62..e90e5c139e1 100644 --- a/firebase-functions/firebase-functions.gradle.kts +++ b/firebase-functions/firebase-functions.gradle.kts @@ -1,5 +1,3 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - // Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -14,6 +12,9 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile + plugins { id("firebase-library") id("kotlin-android") @@ -49,7 +50,6 @@ android { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } testOptions { targetSdk = targetSdkVersion unitTests { isIncludeAndroidResources = true } @@ -57,17 +57,17 @@ android { lint { targetSdk = targetSdkVersion } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + // Enable Kotlin "Explicit API Mode". This causes the Kotlin compiler to fail if any // classes, methods, or properties have implicit `public` visibility. This check helps // avoid accidentally leaking elements into the public API, requiring that any public // element be explicitly declared as `public`. // https://github.com/Kotlin/KEEP/blob/master/proposals/explicit-api-mode.md // https://chao2zhang.medium.com/explicit-api-mode-for-kotlin-on-android-b8264fdd76d1 -tasks.withType().all { +tasks.withType().configureEach { if (!name.contains("test", ignoreCase = true)) { - if (!kotlinOptions.freeCompilerArgs.contains("-Xexplicit-api=strict")) { - kotlinOptions.freeCompilerArgs += "-Xexplicit-api=strict" - } + compilerOptions.freeCompilerArgs.add("-Xexplicit-api=strict") } } diff --git a/firebase-sessions/firebase-sessions.gradle.kts b/firebase-sessions/firebase-sessions.gradle.kts index 745bb0775f6..5dc25304307 100644 --- a/firebase-sessions/firebase-sessions.gradle.kts +++ b/firebase-sessions/firebase-sessions.gradle.kts @@ -16,6 +16,9 @@ @file:Suppress("UnstableApiUsage") +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile + plugins { id("firebase-library") id("firebase-vendor") @@ -49,7 +52,6 @@ android { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } testOptions { targetSdk = targetSdkVersion unitTests { isIncludeAndroidResources = true } @@ -60,8 +62,12 @@ android { } } -tasks.withType(org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs::class.java).configureEach { - kotlinOptions.jvmTarget = "1.8" +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + +tasks.withType().configureEach { + if (!name.contains("test", ignoreCase = true)) { + compilerOptions.freeCompilerArgs.add("-Xexplicit-api=strict") + } } dependencies { From 0286927236728a08e0b9a458ae81571b72ee7183 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Fri, 12 Sep 2025 18:16:59 -0400 Subject: [PATCH 2/8] Add missing entries --- .../firebase-appcheck.gradle | 5 +- .../firebase-encoders-json.gradle | 9 +- .../firebase-appdistribution-api.gradle | 7 +- .../test-app/test-app.gradle | 5 +- firebase-common/firebase-common.gradle.kts | 5 +- .../bandwagoner/bandwagoner.gradle | 7 +- firebase-config/firebase-config.gradle.kts | 6 +- firebase-config/test-app/test-app.gradle.kts | 9 +- .../firebase-crashlytics.gradle | 7 +- .../firebase-database.gradle.kts | 5 +- .../firebase-dynamic-links.gradle | 129 +++++++++--------- firebase-firestore/firebase-firestore.gradle | 5 +- .../firebase-inappmessaging-display.gradle | 4 +- .../firebase-inappmessaging.gradle | 4 +- .../firebase-installations.gradle | 5 +- firebase-messaging/firebase-messaging.gradle | 5 +- .../firebase-ml-modeldownloader.gradle | 5 +- firebase-perf/firebase-perf.gradle | 5 +- .../benchmark/benchmark.gradle.kts | 5 +- .../test-app/test-app.gradle.kts | 4 +- firebase-storage/firebase-storage.gradle | 5 +- .../template/macrobenchmark/build.gradle | 6 +- integ-testing/integ-testing.gradle.kts | 6 +- 23 files changed, 147 insertions(+), 106 deletions(-) diff --git a/appcheck/firebase-appcheck/firebase-appcheck.gradle b/appcheck/firebase-appcheck/firebase-appcheck.gradle index 59dea8cc1fb..c43505f766a 100644 --- a/appcheck/firebase-appcheck/firebase-appcheck.gradle +++ b/appcheck/firebase-appcheck/firebase-appcheck.gradle @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'firebase-library' id("kotlin-android") @@ -43,10 +45,11 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } testOptions.unitTests.includeAndroidResources = true } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { javadocClasspath libs.autovalue.annotations diff --git a/encoders/firebase-encoders-json/firebase-encoders-json.gradle b/encoders/firebase-encoders-json/firebase-encoders-json.gradle index d054982b2dd..beb4cb70a4b 100644 --- a/encoders/firebase-encoders-json/firebase-encoders-json.gradle +++ b/encoders/firebase-encoders-json/firebase-encoders-json.gradle @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'firebase-library' id 'kotlin-android' @@ -19,7 +21,7 @@ plugins { firebaseLibrary { publishJavadoc = false - releaseNotes { + releaseNotes { enabled.set(false) } } @@ -38,9 +40,6 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { - jvmTarget = '1.8' - } testOptions { unitTests { includeAndroidResources = true @@ -48,6 +47,8 @@ android { } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { api 'com.google.firebase:firebase-encoders:17.0.0' diff --git a/firebase-appdistribution-api/firebase-appdistribution-api.gradle b/firebase-appdistribution-api/firebase-appdistribution-api.gradle index e1d5b47b9de..5a097ded575 100644 --- a/firebase-appdistribution-api/firebase-appdistribution-api.gradle +++ b/firebase-appdistribution-api/firebase-appdistribution-api.gradle @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'firebase-library' id("kotlin-android") @@ -41,9 +43,6 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { - jvmTarget = '1.8' - } testOptions { unitTests { includeAndroidResources = true @@ -51,6 +50,8 @@ android { } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { api libs.playservices.tasks api(libs.firebase.common) diff --git a/firebase-appdistribution/test-app/test-app.gradle b/firebase-appdistribution/test-app/test-app.gradle index 5af5540892f..0498bd56bb7 100644 --- a/firebase-appdistribution/test-app/test-app.gradle +++ b/firebase-appdistribution/test-app/test-app.gradle @@ -68,11 +68,10 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { - jvmTarget = '1.8' - } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { // TODO(rachelprince): Add flag to build with public version of SDK println("Building with HEAD version ':firebase-appdistribution' of SDK") diff --git a/firebase-common/firebase-common.gradle.kts b/firebase-common/firebase-common.gradle.kts index 8d3a6998e56..a406b0b1707 100644 --- a/firebase-common/firebase-common.gradle.kts +++ b/firebase-common/firebase-common.gradle.kts @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id("firebase-library") id("kotlin-android") @@ -44,7 +46,6 @@ android { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } testOptions { targetSdk = targetSdkVersion unitTests { isIncludeAndroidResources = true } @@ -52,6 +53,8 @@ android { lint { targetSdk = targetSdkVersion } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { api(libs.kotlin.coroutines.tasks) diff --git a/firebase-config/bandwagoner/bandwagoner.gradle b/firebase-config/bandwagoner/bandwagoner.gradle index 50468145902..fed8ad1427a 100644 --- a/firebase-config/bandwagoner/bandwagoner.gradle +++ b/firebase-config/bandwagoner/bandwagoner.gradle @@ -14,6 +14,8 @@ * limitations under the License. */ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + apply plugin: 'com.android.application' apply plugin: com.google.firebase.gradle.plugins.ci.device.FirebaseTestLabPlugin apply plugin: 'org.jetbrains.kotlin.android' @@ -58,11 +60,10 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { - jvmTarget = '1.8' - } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + firebaseTestLab { device 'model=panther,version=33,locale=en,orientation=portrait' } diff --git a/firebase-config/firebase-config.gradle.kts b/firebase-config/firebase-config.gradle.kts index be3db972b63..5683ee4d057 100644 --- a/firebase-config/firebase-config.gradle.kts +++ b/firebase-config/firebase-config.gradle.kts @@ -14,6 +14,8 @@ * limitations under the License. */ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id("firebase-library") id("kotlin-android") @@ -49,8 +51,6 @@ android { targetCompatibility = JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } - testOptions { targetSdk = targetSdkVersion unitTests { isIncludeAndroidResources = true } @@ -58,6 +58,8 @@ android { lint { targetSdk = targetSdkVersion } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { // Firebase api("com.google.firebase:firebase-config-interop:16.0.1") diff --git a/firebase-config/test-app/test-app.gradle.kts b/firebase-config/test-app/test-app.gradle.kts index ba91b7be5ec..52506f56d9b 100644 --- a/firebase-config/test-app/test-app.gradle.kts +++ b/firebase-config/test-app/test-app.gradle.kts @@ -1,7 +1,4 @@ @file:Suppress("DEPRECATION") // App projects should still use FirebaseTestLabPlugin. - -import com.google.firebase.gradle.plugins.ci.device.FirebaseTestLabPlugin - /* * Copyright 2023 Google LLC * @@ -18,6 +15,9 @@ import com.google.firebase.gradle.plugins.ci.device.FirebaseTestLabPlugin * limitations under the License. */ +import com.google.firebase.gradle.plugins.ci.device.FirebaseTestLabPlugin +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id("com.android.application") id("org.jetbrains.kotlin.android") @@ -47,9 +47,10 @@ android { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { implementation(project(":firebase-crashlytics")) { exclude(group = "com.google.firebase", module = "firebase-config-interop") diff --git a/firebase-crashlytics/firebase-crashlytics.gradle b/firebase-crashlytics/firebase-crashlytics.gradle index aa481022283..cc7e0a72676 100644 --- a/firebase-crashlytics/firebase-crashlytics.gradle +++ b/firebase-crashlytics/firebase-crashlytics.gradle @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'firebase-library' id("kotlin-android") @@ -56,11 +58,10 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { - jvmTarget = '1.8' - } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + thirdPartyLicenses { add 'Tape', "${projectDir}/third_party_licenses/tape/LICENSE" } diff --git a/firebase-database/firebase-database.gradle.kts b/firebase-database/firebase-database.gradle.kts index c9ba57d2aea..294cadaa0dd 100644 --- a/firebase-database/firebase-database.gradle.kts +++ b/firebase-database/firebase-database.gradle.kts @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id("firebase-library") id("kotlin-android") @@ -52,7 +54,6 @@ android { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } packagingOptions.resources.excludes += "META-INF/DEPENDENCIES" @@ -64,6 +65,8 @@ android { } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { api("com.google.firebase:firebase-appcheck-interop:17.1.0") api(libs.firebase.common) diff --git a/firebase-dynamic-links/firebase-dynamic-links.gradle b/firebase-dynamic-links/firebase-dynamic-links.gradle index bc84a87f90d..32e3a45520f 100644 --- a/firebase-dynamic-links/firebase-dynamic-links.gradle +++ b/firebase-dynamic-links/firebase-dynamic-links.gradle @@ -13,87 +13,88 @@ // limitations under the License. plugins { - id 'firebase-library' - id("kotlin-android") + id 'firebase-library' + id("kotlin-android") } firebaseLibrary { - libraryGroup = "dynamic-links" - testLab.enabled = false - releaseNotes { - name.set("{{ddls}}") - versionName.set("dynamic-links") - } + libraryGroup = "dynamic-links" + testLab.enabled = false + releaseNotes { + name.set("{{ddls}}") + versionName.set("dynamic-links") + } } android { - adbOptions { - timeOutInMs 60 * 1000 - } + adbOptions { + timeOutInMs 60 * 1000 + } - buildFeatures { - aidl true - } + buildFeatures { + aidl true + } - namespace "com.google.firebase.dynamiclinks" - compileSdkVersion project.compileSdkVersion - defaultConfig { - targetSdkVersion project.targetSdkVersion - minSdkVersion project.minSdkVersion - versionName version - multiDexEnabled true - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } + namespace "com.google.firebase.dynamiclinks" + compileSdkVersion project.compileSdkVersion + defaultConfig { + targetSdkVersion project.targetSdkVersion + minSdkVersion project.minSdkVersion + versionName version + multiDexEnabled true + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - kotlinOptions { jvmTarget = "1.8" } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } - packagingOptions { - exclude 'META-INF/DEPENDENCIES' - } + packagingOptions { + exclude 'META-INF/DEPENDENCIES' + } - testOptions.unitTests.includeAndroidResources = true + testOptions.unitTests.includeAndroidResources = true } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { - javadocClasspath libs.autovalue.annotations - javadocClasspath libs.findbugs.jsr305 - javadocClasspath libs.checker.qual + javadocClasspath libs.autovalue.annotations + javadocClasspath libs.findbugs.jsr305 + javadocClasspath libs.checker.qual - api libs.playservices.tasks - api('com.google.firebase:firebase-auth-interop:20.0.0') { - exclude group: "com.google.firebase", module: "firebase-common" - } - api(libs.firebase.common) - api(libs.firebase.components) - api('com.google.firebase:firebase-measurement-connector:19.0.0') { - exclude group: 'com.google.firebase', module: 'firebase-common' - } + api libs.playservices.tasks + api('com.google.firebase:firebase-auth-interop:20.0.0') { + exclude group: "com.google.firebase", module: "firebase-common" + } + api(libs.firebase.common) + api(libs.firebase.components) + api('com.google.firebase:firebase-measurement-connector:19.0.0') { + exclude group: 'com.google.firebase', module: 'firebase-common' + } - implementation libs.androidx.annotation - implementation libs.playservices.base - implementation libs.playservices.basement - implementation libs.kotlin.stdlib + implementation libs.androidx.annotation + implementation libs.playservices.base + implementation libs.playservices.basement + implementation libs.kotlin.stdlib - testAnnotationProcessor libs.autovalue + testAnnotationProcessor libs.autovalue - testImplementation libs.androidx.test.core - testImplementation libs.runner - testImplementation libs.jackson.databind - testImplementation('com.google.android.gms:play-services-appinvite:18.0.0') { - exclude group: 'com.google.firebase', module: 'firebase-common' - exclude group: 'com.google.firebase', module: 'firebase-dynamic-links' - } - testImplementation 'com.google.guava:guava-testlib:12.0-rc2' - testImplementation libs.truth - testImplementation libs.junit - testImplementation libs.junit - testImplementation libs.mockito.core - testImplementation libs.mockito.core - testImplementation libs.robolectric + testImplementation libs.androidx.test.core + testImplementation libs.runner + testImplementation libs.jackson.databind + testImplementation('com.google.android.gms:play-services-appinvite:18.0.0') { + exclude group: 'com.google.firebase', module: 'firebase-common' + exclude group: 'com.google.firebase', module: 'firebase-dynamic-links' + } + testImplementation 'com.google.guava:guava-testlib:12.0-rc2' + testImplementation libs.truth + testImplementation libs.junit + testImplementation libs.junit + testImplementation libs.mockito.core + testImplementation libs.mockito.core + testImplementation libs.robolectric - testCompileOnly libs.autovalue.annotations + testCompileOnly libs.autovalue.annotations } diff --git a/firebase-firestore/firebase-firestore.gradle b/firebase-firestore/firebase-firestore.gradle index f5c515eeccd..12da631f2ec 100644 --- a/firebase-firestore/firebase-firestore.gradle +++ b/firebase-firestore/firebase-firestore.gradle @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'firebase-library' id("kotlin-android") @@ -108,11 +110,12 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } testOptions.unitTests.includeAndroidResources = true } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + tasks.withType(Test) { maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 } diff --git a/firebase-inappmessaging-display/firebase-inappmessaging-display.gradle b/firebase-inappmessaging-display/firebase-inappmessaging-display.gradle index bd1d59f180d..5f8e3d38c3d 100644 --- a/firebase-inappmessaging-display/firebase-inappmessaging-display.gradle +++ b/firebase-inappmessaging-display/firebase-inappmessaging-display.gradle @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'firebase-library' id("kotlin-android") @@ -55,7 +57,6 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } sourceSets { androidTest { @@ -77,6 +78,7 @@ android { } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } thirdPartyLicenses { add 'Dagger', "${rootDir}/third_party/licenses/apache-2.0.txt" diff --git a/firebase-inappmessaging/firebase-inappmessaging.gradle b/firebase-inappmessaging/firebase-inappmessaging.gradle index 694adf51267..91680c64230 100644 --- a/firebase-inappmessaging/firebase-inappmessaging.gradle +++ b/firebase-inappmessaging/firebase-inappmessaging.gradle @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'firebase-library' id("kotlin-android") @@ -93,7 +95,6 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } testOptions { unitTests { includeAndroidResources = true @@ -101,6 +102,7 @@ android { } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } thirdPartyLicenses { add 'Dagger', "${rootDir}/third_party/licenses/apache-2.0.txt" diff --git a/firebase-installations/firebase-installations.gradle b/firebase-installations/firebase-installations.gradle index 2650b53726c..5bfb89da62f 100644 --- a/firebase-installations/firebase-installations.gradle +++ b/firebase-installations/firebase-installations.gradle @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. - +import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { id 'firebase-library' id("kotlin-android") @@ -40,7 +40,6 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } testOptions { unitTests { includeAndroidResources = true @@ -48,6 +47,8 @@ android { } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { javadocClasspath libs.findbugs.jsr305 diff --git a/firebase-messaging/firebase-messaging.gradle b/firebase-messaging/firebase-messaging.gradle index 54cc977e08a..f5425d25917 100644 --- a/firebase-messaging/firebase-messaging.gradle +++ b/firebase-messaging/firebase-messaging.gradle @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'com.google.protobuf' id 'firebase-library' @@ -83,9 +85,10 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { javadocClasspath libs.autovalue.annotations diff --git a/firebase-ml-modeldownloader/firebase-ml-modeldownloader.gradle b/firebase-ml-modeldownloader/firebase-ml-modeldownloader.gradle index 74504480a19..2c87780a0a0 100644 --- a/firebase-ml-modeldownloader/firebase-ml-modeldownloader.gradle +++ b/firebase-ml-modeldownloader/firebase-ml-modeldownloader.gradle @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'firebase-library' id("kotlin-android") @@ -60,7 +62,6 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } testOptions { unitTests { includeAndroidResources = true @@ -75,6 +76,8 @@ android { } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + thirdPartyLicenses { add 'Dagger', "${rootDir}/third_party/licenses/apache-2.0.txt" } diff --git a/firebase-perf/firebase-perf.gradle b/firebase-perf/firebase-perf.gradle index b6a678bfc5c..b430dab90f7 100644 --- a/firebase-perf/firebase-perf.gradle +++ b/firebase-perf/firebase-perf.gradle @@ -15,6 +15,8 @@ * */ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'firebase-library' id("kotlin-android") @@ -90,7 +92,6 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions.jvmTarget = "1.8" testOptions { unitTests { includeAndroidResources = true @@ -98,6 +99,8 @@ android { } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { annotationProcessor libs.dagger.compiler compileOnly group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.14' diff --git a/firebase-sessions/benchmark/benchmark.gradle.kts b/firebase-sessions/benchmark/benchmark.gradle.kts index 115e73c66ed..e1b3af37e27 100644 --- a/firebase-sessions/benchmark/benchmark.gradle.kts +++ b/firebase-sessions/benchmark/benchmark.gradle.kts @@ -14,6 +14,8 @@ * limitations under the License. */ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id("com.android.test") id("org.jetbrains.kotlin.android") @@ -45,12 +47,13 @@ android { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } targetProjectPath = ":firebase-sessions:test-app" experimentalProperties["android.experimental.self-instrumenting"] = true } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { implementation(libs.androidx.test.junit) implementation(libs.androidx.benchmark.macro) diff --git a/firebase-sessions/test-app/test-app.gradle.kts b/firebase-sessions/test-app/test-app.gradle.kts index 02718ca4093..c27aafb748b 100644 --- a/firebase-sessions/test-app/test-app.gradle.kts +++ b/firebase-sessions/test-app/test-app.gradle.kts @@ -18,6 +18,7 @@ import com.google.firebase.gradle.plugins.ci.device.FirebaseTestLabExtension import com.google.firebase.gradle.plugins.ci.device.FirebaseTestLabPlugin +import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { id("com.android.application") @@ -69,7 +70,6 @@ android { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } buildFeatures { buildConfig = true @@ -77,6 +77,8 @@ android { } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { if (project.hasProperty("useReleasedVersions")) { implementation(platform("com.google.firebase:firebase-bom:latest.release")) diff --git a/firebase-storage/firebase-storage.gradle b/firebase-storage/firebase-storage.gradle index cf8fa5169d0..5be41238122 100644 --- a/firebase-storage/firebase-storage.gradle +++ b/firebase-storage/firebase-storage.gradle @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'firebase-library' id("kotlin-android") @@ -79,9 +81,10 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { jvmTarget = "1.8" } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { javadocClasspath libs.autovalue.annotations javadocClasspath libs.findbugs.jsr305 diff --git a/health-metrics/benchmark/template/macrobenchmark/build.gradle b/health-metrics/benchmark/template/macrobenchmark/build.gradle index 086de25e4a2..269d57b86b5 100644 --- a/health-metrics/benchmark/template/macrobenchmark/build.gradle +++ b/health-metrics/benchmark/template/macrobenchmark/build.gradle @@ -27,10 +27,6 @@ android { targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { - jvmTarget = '1.8' - } - defaultConfig { minSdk 29 targetSdk 34 @@ -50,6 +46,8 @@ android { experimentalProperties["android.experimental.self-instrumenting"] = true } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { implementation 'androidx.benchmark:benchmark-macro-junit4:1.1.0' implementation 'androidx.test.espresso:espresso-core:3.4.0' diff --git a/integ-testing/integ-testing.gradle.kts b/integ-testing/integ-testing.gradle.kts index 8f580713fd7..7a20747a7ca 100644 --- a/integ-testing/integ-testing.gradle.kts +++ b/integ-testing/integ-testing.gradle.kts @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id("com.android.library") kotlin("android") @@ -33,10 +35,10 @@ android { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - - kotlinOptions { jvmTarget = "1.8" } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } + dependencies { implementation("com.google.firebase:firebase-common:22.0.0") implementation("com.google.firebase:firebase-components:19.0.0") From 503cfb77c2826e6076e2e680b1be515cad7e1dae Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Fri, 12 Sep 2025 18:43:43 -0400 Subject: [PATCH 3/8] remove extra file --- .../firebase-dynamic-links.gradle | 100 ------------------ 1 file changed, 100 deletions(-) delete mode 100644 firebase-dynamic-links/firebase-dynamic-links.gradle diff --git a/firebase-dynamic-links/firebase-dynamic-links.gradle b/firebase-dynamic-links/firebase-dynamic-links.gradle deleted file mode 100644 index 32e3a45520f..00000000000 --- a/firebase-dynamic-links/firebase-dynamic-links.gradle +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2018 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -plugins { - id 'firebase-library' - id("kotlin-android") -} - -firebaseLibrary { - libraryGroup = "dynamic-links" - testLab.enabled = false - releaseNotes { - name.set("{{ddls}}") - versionName.set("dynamic-links") - } -} - -android { - adbOptions { - timeOutInMs 60 * 1000 - } - - buildFeatures { - aidl true - } - - namespace "com.google.firebase.dynamiclinks" - compileSdkVersion project.compileSdkVersion - defaultConfig { - targetSdkVersion project.targetSdkVersion - minSdkVersion project.minSdkVersion - versionName version - multiDexEnabled true - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - packagingOptions { - exclude 'META-INF/DEPENDENCIES' - } - - testOptions.unitTests.includeAndroidResources = true -} - -kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } - -dependencies { - javadocClasspath libs.autovalue.annotations - javadocClasspath libs.findbugs.jsr305 - javadocClasspath libs.checker.qual - - api libs.playservices.tasks - api('com.google.firebase:firebase-auth-interop:20.0.0') { - exclude group: "com.google.firebase", module: "firebase-common" - } - api(libs.firebase.common) - api(libs.firebase.components) - api('com.google.firebase:firebase-measurement-connector:19.0.0') { - exclude group: 'com.google.firebase', module: 'firebase-common' - } - - implementation libs.androidx.annotation - implementation libs.playservices.base - implementation libs.playservices.basement - implementation libs.kotlin.stdlib - - testAnnotationProcessor libs.autovalue - - testImplementation libs.androidx.test.core - testImplementation libs.runner - testImplementation libs.jackson.databind - testImplementation('com.google.android.gms:play-services-appinvite:18.0.0') { - exclude group: 'com.google.firebase', module: 'firebase-common' - exclude group: 'com.google.firebase', module: 'firebase-dynamic-links' - } - testImplementation 'com.google.guava:guava-testlib:12.0-rc2' - testImplementation libs.truth - testImplementation libs.junit - testImplementation libs.junit - testImplementation libs.mockito.core - testImplementation libs.mockito.core - testImplementation libs.robolectric - - testCompileOnly libs.autovalue.annotations -} From a2f4386005de4f37c3c1ef9e86adc17406afcae7 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Date: Mon, 15 Sep 2025 12:33:08 -0400 Subject: [PATCH 4/8] Addressed comments --- firebase-installations/firebase-installations.gradle | 1 + health-metrics/benchmark/template/macrobenchmark/build.gradle | 2 ++ 2 files changed, 3 insertions(+) diff --git a/firebase-installations/firebase-installations.gradle b/firebase-installations/firebase-installations.gradle index 5bfb89da62f..1c91bd12125 100644 --- a/firebase-installations/firebase-installations.gradle +++ b/firebase-installations/firebase-installations.gradle @@ -13,6 +13,7 @@ // limitations under the License. import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'firebase-library' id("kotlin-android") diff --git a/health-metrics/benchmark/template/macrobenchmark/build.gradle b/health-metrics/benchmark/template/macrobenchmark/build.gradle index 269d57b86b5..258e9b46f6c 100644 --- a/health-metrics/benchmark/template/macrobenchmark/build.gradle +++ b/health-metrics/benchmark/template/macrobenchmark/build.gradle @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id 'com.android.test' id 'org.jetbrains.kotlin.android' From adf8ed3235b83cc5d8259fc1d275dadff0f681e9 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Date: Mon, 15 Sep 2025 12:52:59 -0400 Subject: [PATCH 5/8] Remove strict api in sessions This will be added back later since it requires more changes to the SDK code and will pollute this change. --- firebase-sessions/firebase-sessions.gradle.kts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/firebase-sessions/firebase-sessions.gradle.kts b/firebase-sessions/firebase-sessions.gradle.kts index 5dc25304307..3c8318a4080 100644 --- a/firebase-sessions/firebase-sessions.gradle.kts +++ b/firebase-sessions/firebase-sessions.gradle.kts @@ -63,11 +63,6 @@ android { } kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } - -tasks.withType().configureEach { - if (!name.contains("test", ignoreCase = true)) { - compilerOptions.freeCompilerArgs.add("-Xexplicit-api=strict") - } } dependencies { From 000bbefff2662b7265ee8fa9840b5eb08345a606 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Mon, 15 Sep 2025 12:56:36 -0400 Subject: [PATCH 6/8] Remove extra `{` --- firebase-sessions/firebase-sessions.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/firebase-sessions/firebase-sessions.gradle.kts b/firebase-sessions/firebase-sessions.gradle.kts index 3c8318a4080..00e1d7e9800 100644 --- a/firebase-sessions/firebase-sessions.gradle.kts +++ b/firebase-sessions/firebase-sessions.gradle.kts @@ -63,7 +63,6 @@ android { } kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } -} dependencies { api(libs.firebase.common) From 90885cb17b5dc2553ac5f050ed7e78ca0efbd70f Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Mon, 15 Sep 2025 17:49:36 -0400 Subject: [PATCH 7/8] Prefer `explicitApi()` instead of hand coded version --- firebase-ai/firebase-ai.gradle.kts | 16 +++------------- .../connectors/connectors.gradle.kts | 15 +-------------- .../firebase-dataconnect.gradle.kts | 15 +-------------- firebase-functions/firebase-functions.gradle.kts | 14 +------------- firebase-sessions/firebase-sessions.gradle.kts | 4 ++-- 5 files changed, 8 insertions(+), 56 deletions(-) diff --git a/firebase-ai/firebase-ai.gradle.kts b/firebase-ai/firebase-ai.gradle.kts index 3d2e102aada..e65cb8674a7 100644 --- a/firebase-ai/firebase-ai.gradle.kts +++ b/firebase-ai/firebase-ai.gradle.kts @@ -17,7 +17,6 @@ @file:Suppress("UnstableApiUsage") import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("firebase-library") @@ -73,18 +72,9 @@ android { } } -kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } - -// Enable Kotlin "Explicit API Mode". This causes the Kotlin compiler to fail if any -// classes, methods, or properties have implicit `public` visibility. This check helps -// avoid accidentally leaking elements into the public API, requiring that any public -// element be explicitly declared as `public`. -// https://github.com/Kotlin/KEEP/blob/master/proposals/explicit-api-mode.md -// https://chao2zhang.medium.com/explicit-api-mode-for-kotlin-on-android-b8264fdd76d1 -tasks.withType().configureEach { - if (!name.contains("test", ignoreCase = true)) { - compilerOptions.freeCompilerArgs.add("-Xexplicit-api=strict") - } +kotlin { + compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } + explicitApi() } dependencies { diff --git a/firebase-dataconnect/connectors/connectors.gradle.kts b/firebase-dataconnect/connectors/connectors.gradle.kts index b4e912a8aed..48a40ba2bf0 100644 --- a/firebase-dataconnect/connectors/connectors.gradle.kts +++ b/firebase-dataconnect/connectors/connectors.gradle.kts @@ -14,9 +14,7 @@ * limitations under the License. */ -import org.gradle.kotlin.dsl.withType import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("com.android.library") @@ -70,6 +68,7 @@ kotlin { jvmTarget = JvmTarget.JVM_1_8 optIn.add("kotlin.RequiresOptIn") } + explicitApi() } dependencies { @@ -100,15 +99,3 @@ dependencies { androidTestImplementation(libs.truth.liteproto.extension) androidTestImplementation(libs.turbine) } - -// Enable Kotlin "Explicit API Mode". This causes the Kotlin compiler to fail if any -// classes, methods, or properties have implicit `public` visibility. This check helps -// avoid accidentally leaking elements into the public API, requiring that any public -// element be explicitly declared as `public`. -// https://github.com/Kotlin/KEEP/blob/master/proposals/explicit-api-mode.md -// https://chao2zhang.medium.com/explicit-api-mode-for-kotlin-on-android-b8264fdd76d1 -tasks.withType().configureEach { - if (!name.contains("test", ignoreCase = true)) { - compilerOptions.freeCompilerArgs.add("-Xexplicit-api=strict") - } -} diff --git a/firebase-dataconnect/firebase-dataconnect.gradle.kts b/firebase-dataconnect/firebase-dataconnect.gradle.kts index 2467e8d6707..add13046cb9 100644 --- a/firebase-dataconnect/firebase-dataconnect.gradle.kts +++ b/firebase-dataconnect/firebase-dataconnect.gradle.kts @@ -16,9 +16,7 @@ import com.google.firebase.dataconnect.gradle.plugin.DataConnectExecutableVersionsRegistry import com.google.firebase.dataconnect.gradle.plugin.UpdateDataConnectExecutableVersionsTask -import org.gradle.kotlin.dsl.withType import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("firebase-library") @@ -81,6 +79,7 @@ kotlin { jvmTarget = JvmTarget.JVM_1_8 optIn.add("kotlin.RequiresOptIn") } + explicitApi() } protobuf { @@ -155,18 +154,6 @@ dependencies { androidTestImplementation(libs.turbine) } -// Enable Kotlin "Explicit API Mode". This causes the Kotlin compiler to fail if any -// classes, methods, or properties have implicit `public` visibility. This check helps -// avoid accidentally leaking elements into the public API, requiring that any public -// element be explicitly declared as `public`. -// https://github.com/Kotlin/KEEP/blob/master/proposals/explicit-api-mode.md -// https://chao2zhang.medium.com/explicit-api-mode-for-kotlin-on-android-b8264fdd76d1 -tasks.withType().configureEach { - if (!name.contains("test", ignoreCase = true)) { - compilerOptions.freeCompilerArgs.add("-Xexplicit-api=strict") - } -} - // Registers a Gradle task that updates the JSON file that stores the list of Data Connect // executable versions. The task gets the list of all versions from the Internet and then // updates the JSON file with their sizes and hashes. diff --git a/firebase-functions/firebase-functions.gradle.kts b/firebase-functions/firebase-functions.gradle.kts index e90e5c139e1..a54f7407414 100644 --- a/firebase-functions/firebase-functions.gradle.kts +++ b/firebase-functions/firebase-functions.gradle.kts @@ -13,7 +13,6 @@ // limitations under the License. import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("firebase-library") @@ -57,19 +56,8 @@ android { lint { targetSdk = targetSdkVersion } } -kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } +kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } explicitApi()} -// Enable Kotlin "Explicit API Mode". This causes the Kotlin compiler to fail if any -// classes, methods, or properties have implicit `public` visibility. This check helps -// avoid accidentally leaking elements into the public API, requiring that any public -// element be explicitly declared as `public`. -// https://github.com/Kotlin/KEEP/blob/master/proposals/explicit-api-mode.md -// https://chao2zhang.medium.com/explicit-api-mode-for-kotlin-on-android-b8264fdd76d1 -tasks.withType().configureEach { - if (!name.contains("test", ignoreCase = true)) { - compilerOptions.freeCompilerArgs.add("-Xexplicit-api=strict") - } -} dependencies { javadocClasspath("org.codehaus.mojo:animal-sniffer-annotations:1.21") diff --git a/firebase-sessions/firebase-sessions.gradle.kts b/firebase-sessions/firebase-sessions.gradle.kts index 9e0a2498d26..9db21849ce1 100644 --- a/firebase-sessions/firebase-sessions.gradle.kts +++ b/firebase-sessions/firebase-sessions.gradle.kts @@ -61,9 +61,9 @@ android { } } -kotlin { +kotlin { explicitApi() - compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } + compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } } dependencies { From eadb85da92937c4f7c66f7915096d973c38e4642 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Mon, 15 Sep 2025 18:11:00 -0400 Subject: [PATCH 8/8] Fix format issue --- firebase-functions/firebase-functions.gradle.kts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/firebase-functions/firebase-functions.gradle.kts b/firebase-functions/firebase-functions.gradle.kts index a54f7407414..5a9e8f74a31 100644 --- a/firebase-functions/firebase-functions.gradle.kts +++ b/firebase-functions/firebase-functions.gradle.kts @@ -56,8 +56,10 @@ android { lint { targetSdk = targetSdkVersion } } -kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } explicitApi()} - +kotlin { + compilerOptions { jvmTarget = JvmTarget.JVM_1_8 } + explicitApi() +} dependencies { javadocClasspath("org.codehaus.mojo:animal-sniffer-annotations:1.21")