You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Upgrade Kotlin from 2.0.20 to 2.1.20 across the root build, buildSrc, and all integrated kits (the Rokt kit was already on 2.1.20; the isolated urbanairship-20 kit stays on 2.2.20).
Root kotlin-gradle-plugin classpath now references $kotlin_version so the two declarations can no longer drift apart.
Fix tooling/common compilation: String.toLowerCase() is an error in Kotlin 2.1 — replaced with lowercase().
Fix kit unit tests (appsflyer, braze 38-41, ga, ga4): JSONObject().put("as", map) resolved to the put(String, Map) overload under Kotlin 2.0 but to put(String, Object) under 2.1, leaving a raw Map where the config parser expects a nested JSONObject. Tests now construct the nested JSONObject explicitly, which is compiler-version independent.
Update the [Unreleased] CHANGELOG entry and the root KGP version referenced in ONBOARDING.md.
Medium Risk
Wide toolchain bump touches all modules and may surface compile or dependency issues for integrators, but production SDK paths are largely version pins with small tooling and test-only fixes.
Overview Upgrades Kotlin from 2.0.20 to 2.1.20 on the root project, buildSrc, and every integrated kit’s build.gradle. The root kotlin-gradle-plugin classpath now uses $kotlin_version so it stays aligned with ext.kotlin_version.
Follow-up fixes keep the tree building on 2.1: tooling/common replaces deprecated toLowerCase() with lowercase() in Config.from, and Appsflyer, Braze (38–41), GA, and GA4 kit tests wrap kit settings maps in JSONObject(...) when calling put("as", ...) so config fixtures match nested JSON (Kotlin 2.1 resolves JSONObject.put differently than 2.0).
CHANGELOG and ONBOARDING document the bump and update the isolated-kit KGP reference to 2.1.20.
Reviewed by Cursor Bugbot for commit 9569ddd. Bugbot is set up for automated code reviews on this repo. Configure here.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
buildSrc, and all integrated kits (the Rokt kit was already on 2.1.20; the isolated urbanairship-20 kit stays on 2.2.20).kotlin-gradle-pluginclasspath now references$kotlin_versionso the two declarations can no longer drift apart.tooling/commoncompilation:String.toLowerCase()is an error in Kotlin 2.1 — replaced withlowercase().JSONObject().put("as", map)resolved to theput(String, Map)overload under Kotlin 2.0 but toput(String, Object)under 2.1, leaving a rawMapwhere the config parser expects a nestedJSONObject. Tests now construct the nestedJSONObjectexplicitly, which is compiler-version independent.[Unreleased]CHANGELOG entry and the root KGP version referenced in ONBOARDING.md.Test plan
./gradlew build(core, kit-base, tooling: assemble + unit tests + lint)./gradlew -p kits testRelease -c ../settings-kits.gradle -Pmparticle.kit.mparticleFromMavenLocalOnly=true(all 24 kits)ktlintCheckandlintfor core and kitstestReleaseagainst the new core from mavenLocal