From 36abec35b7a6f4bf03474050336389545e563907 Mon Sep 17 00:00:00 2001 From: Isaac Udy Date: Mon, 29 Jun 2026 11:31:34 +1200 Subject: [PATCH 1/2] Bump Kotlin 2.4.0 + Compose MP plugin 1.11.1 - Kotlin 2.3.21 -> 2.4.0, KSP 2.3.3 -> 2.3.9, Compose plugin 1.10.3 -> 1.11.1 - Drop -Xwasm-attach-js-exception (removed in Kotlin 2.4; emitted an unsupported-flag warning on every wasm build) Co-Authored-By: Claude Opus 4.8 --- .../src/main/kotlin/Project.configureKotlinMultiplatform.kt | 2 +- libs.versions.toml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/buildSrc/src/main/kotlin/Project.configureKotlinMultiplatform.kt b/buildSrc/src/main/kotlin/Project.configureKotlinMultiplatform.kt index e2318617..59fb1b86 100644 --- a/buildSrc/src/main/kotlin/Project.configureKotlinMultiplatform.kt +++ b/buildSrc/src/main/kotlin/Project.configureKotlinMultiplatform.kt @@ -69,7 +69,7 @@ internal fun Project.configureKotlinMultiplatform( } binaries.executable() compilerOptions { - freeCompilerArgs.addAll("-Xexpect-actual-classes", "-Xwasm-attach-js-exception") + freeCompilerArgs.addAll("-Xexpect-actual-classes") freeCompilerArgs.add("-Xwasm-kclass-fqn") optIn.addAll(*optIns) } diff --git a/libs.versions.toml b/libs.versions.toml index 30f5d8cd..80deb4de 100644 --- a/libs.versions.toml +++ b/libs.versions.toml @@ -7,12 +7,12 @@ agp = "9.0.0" android-compileSdk = "36" android-minSdk = "23" android-targetSdk = "36" -kotlin = "2.3.21" -compose-plugin = "1.10.3" +kotlin = "2.4.0" +compose-plugin = "1.11.1" compose = "1.11.1" kotlinx-serialization = "1.11.0" maven-publish = "0.36.0" -ksp = "2.3.3" +ksp = "2.3.9" kotlinx-coroutines = "1.10.2" kotlin-js = "2026.5.0" # https://central.sonatype.com/artifact/org.jetbrains.kotlin-wrappers/kotlin-js dokka = "2.0.0" From da2cac34412c41c73867baa5b2f5ec462a05a5bc Mon Sep 17 00:00:00 2001 From: Isaac Udy Date: Mon, 29 Jun 2026 12:51:27 +1200 Subject: [PATCH 2/2] Fix CI for Kotlin 2.4 / Compose 1.11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - enro-compat: @PublishedApi on NavigationDirection.MetadataKey — Kotlin 2.4 promotes "internal type accessed from a public inline declaration" to an error. - CI: run the macOS/iOS job on macos-26 (Xcode 26 / iOS 26 SDK). Compose 1.11's skiko references the iOS 26 UIViewLayoutRegion API and fails to link on older SDKs. Verified locally under Xcode 26.1: :enro-compat:compileAndroidMain and :enro-runtime:linkDebugTestIosSimulatorArm64 both pass. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/ci.yml | 4 +++- .../androidMain/kotlin/dev/enro/core/NavigationDirection.kt | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c73f2af4..cd70f4e0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,7 +47,9 @@ jobs: ci-macos: name: CI / macOS (iOS) - runs-on: macos-latest + # macos-26 ships Xcode 26 / iOS 26 SDK, required by Compose Multiplatform 1.11+ + # (skiko references the iOS 26 UIViewLayoutRegion API; older SDKs fail to link). + runs-on: macos-26 steps: - name: Checkout uses: actions/checkout@v4 diff --git a/enro-compat/src/androidMain/kotlin/dev/enro/core/NavigationDirection.kt b/enro-compat/src/androidMain/kotlin/dev/enro/core/NavigationDirection.kt index 0b702ce5..5b960f8c 100644 --- a/enro-compat/src/androidMain/kotlin/dev/enro/core/NavigationDirection.kt +++ b/enro-compat/src/androidMain/kotlin/dev/enro/core/NavigationDirection.kt @@ -58,6 +58,7 @@ public sealed class NavigationDirection: Parcelable { @Serializable public data object Present : NavigationDirection() + @PublishedApi internal object MetadataKey : dev.enro.NavigationKey.MetadataKey( default = null, )