From 24b78c170194ec2a91c2357c132abf2519f9fbc1 Mon Sep 17 00:00:00 2001 From: Nickolas Dimitrakas Date: Wed, 15 Jul 2026 11:53:38 -0400 Subject: [PATCH 1/2] fix: align GA kits with directory major 23 and bump Kotlin to read 23.x metadata The ga-23 and ga4-23 directories encode wrapped firebase-analytics major 23, but both pinned firebase-analytics:[22.1.0,23.0.0) (major 22). Bumped the firebase-analytics and lockstep play-services-measurement-api ranges to [23.0.0,24.0.0). firebase-analytics 23.x ships Kotlin 2.1/2.2 metadata (23.0.0 -> 2.1.0, 23.2.0 -> 2.2.0), which the kits' Kotlin 2.0.20 compiler cannot read, so the range bump alone fails compileReleaseKotlin. Bumped these two kits' ext.kotlin_version to 2.2.20, matching the existing per-kit override pattern already used by urbanairship-20 (2.2.20) and rokt (2.1.20). Co-Authored-By: Claude Opus 4.8 --- kits/ga/ga-23/build.gradle | 6 +++--- kits/ga4/ga4-23/build.gradle | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/kits/ga/ga-23/build.gradle b/kits/ga/ga-23/build.gradle index ddf20a5a6..d8041845d 100644 --- a/kits/ga/ga-23/build.gradle +++ b/kits/ga/ga-23/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '2.0.20' + ext.kotlin_version = '2.2.20' if (!project.hasProperty('version') || project.version.equals('unspecified')) { project.version = '+' } @@ -60,6 +60,6 @@ android { dependencies { testImplementation files('libs/java-json.jar') testImplementation files('libs/test-utils.aar') - testImplementation 'com.google.android.gms:play-services-measurement-api:[22.1.0,23.0.0)' - compileOnly 'com.google.firebase:firebase-analytics:[22.1.0,23.0.0)' + testImplementation 'com.google.android.gms:play-services-measurement-api:[23.0.0,24.0.0)' + compileOnly 'com.google.firebase:firebase-analytics:[23.0.0,24.0.0)' } diff --git a/kits/ga4/ga4-23/build.gradle b/kits/ga4/ga4-23/build.gradle index d4aca3ddb..df0e2f9fb 100644 --- a/kits/ga4/ga4-23/build.gradle +++ b/kits/ga4/ga4-23/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '2.0.20' + ext.kotlin_version = '2.2.20' if (!project.hasProperty('version') || project.version.equals('unspecified')) { project.version = '+' } @@ -60,7 +60,7 @@ android { dependencies { testImplementation files('libs/java-json.jar') testImplementation files('libs/test-utils.aar') - testImplementation 'com.google.android.gms:play-services-measurement-api:[22.1.0,23.0.0)' + testImplementation 'com.google.android.gms:play-services-measurement-api:[23.0.0,24.0.0)' - compileOnly 'com.google.firebase:firebase-analytics:[22.1.0,23.0.0)' + compileOnly 'com.google.firebase:firebase-analytics:[23.0.0,24.0.0)' } From 81bfa082ead0c1613c8fef3f82426876a348fee3 Mon Sep 17 00:00:00 2001 From: Nickolas Dimitrakas Date: Wed, 15 Jul 2026 12:58:08 -0400 Subject: [PATCH 2/2] ci: build ga-23/ga4-23 as isolated kits (Kotlin 2.2.x) firebase-analytics 23.x ships Kotlin 2.1/2.2 metadata that the repo's root Kotlin Gradle plugin (2.0.20) cannot read, so the GA kits cannot compile in the aggregate settings-kits.gradle build. Per-kit ext.kotlin_version has no effect there because the aggregate compiler is fixed by the root buildscript. Follow the established urbanairship-20 isolated-kit pattern so the GA kits are built standalone with their own Kotlin 2.2.20: - Remove ga-23/ga4-23 from kits/matrix.json (no aggregate build-kits jobs). - Comment them out of settings-kits.gradle and remove their example modules from settings-kit-examples.gradle. - Add isolated compatibility (pull-request.yml) and lint/ktlint/test (daily.yml) steps that run `-p kits/ga/ga-23` / `-p kits/ga4/ga4-23`. - Document both kits under "Currently isolated" in ONBOARDING.md. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/daily.yml | 12 ++++++++++++ .github/workflows/pull-request.yml | 4 ++++ ONBOARDING.md | 2 ++ kits/matrix.json | 12 ------------ settings-kit-examples.gradle | 4 ---- settings-kits.gradle | 4 ++-- 6 files changed, 20 insertions(+), 18 deletions(-) diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml index d662ce478..2e9ca0c8c 100644 --- a/.github/workflows/daily.yml +++ b/.github/workflows/daily.yml @@ -240,6 +240,10 @@ jobs: run: ./gradlew lint -c settings-kits.gradle -Pmparticle.kit.mparticleFromMavenLocalOnly=true - name: "Run Isolated Kit Lint (urbanairship-kit)" run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/urbanairship/urbanairship-20 lint + - name: "Run Isolated Kit Lint (ga-kit)" + run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga/ga-23 lint + - name: "Run Isolated Kit Lint (ga4-kit)" + run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga4/ga4-23 lint - name: "Archive Test Results" uses: actions/upload-artifact@v7 if: always() @@ -279,6 +283,10 @@ jobs: run: ./gradlew ktlintCheck -c settings-kits.gradle -Pmparticle.kit.mparticleFromMavenLocalOnly=true - name: "Run Isolated Kit Kotlin Lint (urbanairship-kit)" run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/urbanairship/urbanairship-20 ktlintCheck + - name: "Run Isolated Kit Kotlin Lint (ga-kit)" + run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga/ga-23 ktlintCheck + - name: "Run Isolated Kit Kotlin Lint (ga4-kit)" + run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga4/ga4-23 ktlintCheck - name: "Archive Test Results" uses: actions/upload-artifact@v7 if: always() @@ -321,6 +329,10 @@ jobs: run: ./gradlew clean testRelease -c settings-kits.gradle -Pmparticle.kit.mparticleFromMavenLocalOnly=true - name: "Test Isolated Kits (urbanairship-kit)" run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/urbanairship/urbanairship-20 clean testRelease + - name: "Test Isolated Kits (ga-kit)" + run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga/ga-23 clean testRelease + - name: "Test Isolated Kits (ga4-kit)" + run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga4/ga4-23 clean testRelease semantic-release-dryrun: name: "Test Semantic Release - Dry Run" diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 0f86db33e..ff8d482f8 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -178,6 +178,10 @@ jobs: run: ./gradlew -p kits testRelease -c ../settings-kits.gradle -Pmparticle.kit.mparticleFromMavenLocalOnly=true - name: "Run Isolated Kit Compatibility Tests (urbanairship)" run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/urbanairship/urbanairship-20 -PisRelease=true testRelease + - name: "Run Isolated Kit Compatibility Tests (ga)" + run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga/ga-23 -PisRelease=true testRelease + - name: "Run Isolated Kit Compatibility Tests (ga4)" + run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga4/ga4-23 -PisRelease=true testRelease automerge-dependabot: name: "Save PR Number for Dependabot Automerge" diff --git a/ONBOARDING.md b/ONBOARDING.md index ecf8d332b..1b8fd5331 100644 --- a/ONBOARDING.md +++ b/ONBOARDING.md @@ -142,6 +142,8 @@ Kotlin version. **Currently isolated:** - `kits/urbanairship/urbanairship-20` (Kotlin 2.2.x, `urbanairship-core:20.3.0`) +- `kits/ga/ga-23` (Kotlin 2.2.x, `firebase-analytics:23.x`) +- `kits/ga4/ga4-23` (Kotlin 2.2.x, `firebase-analytics:23.x`) To build an isolated kit after publishing core to mavenLocal: diff --git a/kits/matrix.json b/kits/matrix.json index 9e099fdfc..87a5608f0 100644 --- a/kits/matrix.json +++ b/kits/matrix.json @@ -77,18 +77,6 @@ "kit_project": ":kits:android-comscore:comscore-6", "example_kotlin_project": ":kits:android-comscore:comscore-6:example-kotlin" }, - { - "name": "ga-23", - "local_path": "kits/ga/ga-23", - "kit_project": ":kits:android-ga:ga-23", - "example_kotlin_project": ":kits:android-ga:ga-23:example-kotlin" - }, - { - "name": "ga4-23", - "local_path": "kits/ga4/ga4-23", - "kit_project": ":kits:android-ga4:ga4-23", - "example_kotlin_project": ":kits:android-ga4:ga4-23:example-kotlin" - }, { "name": "iterable-3", "local_path": "kits/iterable/iterable-3", diff --git a/settings-kit-examples.gradle b/settings-kit-examples.gradle index 4693ab0df..4f639ab65 100644 --- a/settings-kit-examples.gradle +++ b/settings-kit-examples.gradle @@ -14,8 +14,6 @@ include ':kits:adjust:adjust-5:example-kotlin', ':kits:branch:branch-5:example-kotlin', ':kits:clevertap:clevertap-7:example-kotlin', ':kits:comscore:comscore-6:example-kotlin', - ':kits:ga:ga-23:example-kotlin', - ':kits:ga4:ga4-23:example-kotlin', ':kits:iterable:iterable-3:example-kotlin', ':kits:kochava:kochava-5:example-kotlin', ':kits:localytics:localytics-6:example-kotlin', @@ -39,8 +37,6 @@ project(':kits:braze:braze-41:example-kotlin').projectDir = file('kits/braze/bra project(':kits:branch:branch-5:example-kotlin').projectDir = file('kits/branch/branch-5/example/example-kotlin') project(':kits:clevertap:clevertap-7:example-kotlin').projectDir = file('kits/clevertap/clevertap-7/example/example-kotlin') project(':kits:comscore:comscore-6:example-kotlin').projectDir = file('kits/comscore/comscore-6/example/example-kotlin') -project(':kits:ga:ga-23:example-kotlin').projectDir = file('kits/ga/ga-23/example/example-kotlin') -project(':kits:ga4:ga4-23:example-kotlin').projectDir = file('kits/ga4/ga4-23/example/example-kotlin') project(':kits:iterable:iterable-3:example-kotlin').projectDir = file('kits/iterable/iterable-3/example/example-kotlin') project(':kits:kochava:kochava-5:example-kotlin').projectDir = file('kits/kochava/kochava-5/example/example-kotlin') project(':kits:localytics:localytics-6:example-kotlin').projectDir = file('kits/localytics/localytics-6/example/example-kotlin') diff --git a/settings-kits.gradle b/settings-kits.gradle index 8743b660e..9d9143416 100644 --- a/settings-kits.gradle +++ b/settings-kits.gradle @@ -15,8 +15,8 @@ include ( ':kits:branch:branch-5', ':kits:clevertap:clevertap-7', ':kits:comscore:comscore-6', - ':kits:ga:ga-23', - ':kits:ga4:ga4-23', + // ':kits:ga:ga-23', // Kotlin 2.2.x -- built standalone (see ONBOARDING.md) + // ':kits:ga4:ga4-23', // Kotlin 2.2.x -- built standalone (see ONBOARDING.md) ':kits:iterable:iterable-3', ':kits:kochava:kochava-5', ':kits:localytics:localytics-6',