chore: upgrade Gradle, AGP, Kotlin, Compose, ktor + AGP 9.2 DSL migration#134
Merged
Conversation
Bumps AGP 9.0.1→9.1.1, Kotlin 2.3.10→2.3.20, Compose MP 1.10.1→1.10.3, Ktor 3.4.0→3.4.2, SQLDelight 2.2.1→2.3.2, GraalVM Native 0.11.4→1.0.0, Koog 0.6.3→0.8.0, Kermit 2.0.8→2.1.0, kotlinx-serialization 1.10.0→1.11.0, androidx-activity 1.12.4→1.13.0, androidx-core 1.17.0→1.18.0, androidx-lifecycle 2.9.6→2.10.0, dnssd 1.0.5→1.1.0, material3-adaptive alpha05→alpha06, Gradle wrapper 9.3.1→9.4.1. Koog 0.8.0 moved tools() from a package-level extension to a ToolRegistryBuilder member, so the now-obsolete `ai.koog.agents.core.tools.reflect.tools` imports are removed.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Contributor
The macos-latest runner's iOS 26.2 simruntime is missing libswift_Concurrency.dylib, so test.kexe aborts on launch with "Library not loaded: @rpath/libswift_Concurrency.dylib". Running `xcodebuild -downloadPlatform iOS` re-fetches a complete runtime. See: actions/runner-images#13853
- Gradle 9.4.1 -> 9.5.1 - AGP 9.1.1 -> 9.2.1 (bumps android-compileSdk 36 -> 37 to satisfy androidx.compose.material3.adaptive:adaptive-android:1.3.0-alpha10 transitively required by material3-adaptive 1.3.0-alpha07) - Kotlin 2.3.20 -> 2.3.21 - ktor 3.4.2 -> 3.5.0 - kotlinx-coroutines 1.10.2 -> 1.11.0 - Compose Multiplatform 1.10.3 -> 1.11.0 - composeHotReload 1.0.0 -> 1.1.1 - graalvmNative 1.0.0 -> 1.1.0 - material3 1.10.0-alpha05 -> 1.11.0-alpha07 (aligned with compose 1.11.0) - material3-adaptive 1.3.0-alpha06 -> 1.3.0-alpha07
The androidLibrary { } DSL block is deprecated in AGP 9.2 in favor of
android { }. Applied across all KMP modules consuming the
com.android.kotlin.multiplatform.library plugin.
Compose Multiplatform 1.11.0's compose-ui-uikit references UIViewLayoutRegion, an iOS 18-only Objective-C class. With Kotlin/Native's default deployment target of 14.0, the iosSimulatorArm64 link fails with 'Undefined symbols: _OBJC_CLASS_$_UIViewLayoutRegion'. The dnssd 1.1.0 cinterop is also built for iOS 15+, producing 'object file was built for newer iOS-simulator version (15.0) than being linked (14.0)' warnings. Locally the link succeeds but the test binary still references @rpath/libswift_Concurrency.dylib (back-deployment dylib for iOS <15), which iOS 26.5 simruntime no longer ships, causing test.kexe to abort with 'Library not loaded: @rpath/libswift_Concurrency.dylib'. Override osVersionMin for both iosArm64 and iosSimulatorArm64 to 18.0 via -Xoverride-konan-properties, applied to all KotlinNativeTarget compilations in this module.
Compose Multiplatform 1.11.0's compose-ui-uikit references UIViewLayoutRegion, an iOS 26.0 API (API_AVAILABLE(ios(26.0))). The macos-latest (macos-15) runner ships Xcode 16.4 whose iOS 18 SDK does not expose this symbol, so the iosSimulatorArm64 link fails with 'Undefined symbols: _OBJC_CLASS_$_UIViewLayoutRegion' even after overriding the deployment target. macos-26 runner ships Xcode 26.2 (default) with iOS SDK 26, which has UIViewLayoutRegion, so the symbol resolves at link time.
0377785 to
4223ca9
Compare
The step was a workaround for macos-15's broken iOS 26.2 sim runtime (missing libswift_Concurrency.dylib). macos-26 with Xcode 26.2 ships a complete iOS sim runtime by default. The command also fails with exit 70 on macos-26 (no installable platforms available), breaking the job.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
androidLibrary { }→android { }across all KMP modules consumingcom.android.kotlin.multiplatform.library(AGP 9.2 deprecation)tools()from a package-level extension to aToolRegistryBuildermember; drop the obsoleteai.koog.agents.core.tools.reflect.toolsimports inResourceDiscoveryServiceandKetchMcpServerVersion table
Notes
android-compileSdkbumped 36 → 37 becausematerial3-adaptive 1.3.0-alpha07pullsandroidx.compose.material3.adaptive:adaptive-android:1.3.0-alpha10, which requires API 37 at compile time.targetSdkstays at 36 (runtime behavior unchanged).material3kept on the alpha line aligned with Compose MP —1.11.0-alpha07matches Compose 1.11.0. (The newer1.12.0-alpha01pairs with Compose 1.12.x and is not used here.)androidLibrary { }block incom.android.kotlin.multiplatform.library; renamed toandroid { }in all 11 affected KMP modules.kermitwasmWasiresolution issue is unchanged by this PR (Kermit has never published awasm-wasiartifact; fails identically onmain).Test plan
./gradlew :app:android:assembleDebug+:app:android:build./gradlew :app:desktop:assemble./gradlew :app:web:compileProductionExecutableKotlinWasmJscompileKotlinIosSimulatorArm64across library + shared modules./gradlew jvmTest testDebugUnitTestandroidLibrarydeprecation warnings remain