From 27367e906487740687ec640dc4adc614fd5b6cef Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Mon, 13 Apr 2026 18:32:00 -0500 Subject: [PATCH] fix(build): pin Skiko version to align with Compose Multiplatform (#5117) --- .../org/meshtastic/buildlogic/KotlinAndroid.kt | 15 +++++++++++++++ gradle/libs.versions.toml | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/build-logic/convention/src/main/kotlin/org/meshtastic/buildlogic/KotlinAndroid.kt b/build-logic/convention/src/main/kotlin/org/meshtastic/buildlogic/KotlinAndroid.kt index bcc6d0207..c7afeaf39 100644 --- a/build-logic/convention/src/main/kotlin/org/meshtastic/buildlogic/KotlinAndroid.kt +++ b/build-logic/convention/src/main/kotlin/org/meshtastic/buildlogic/KotlinAndroid.kt @@ -72,6 +72,21 @@ internal fun Project.configureKotlinAndroid(commonExtension: CommonExtension) { /** Configure Kotlin Multiplatform options */ internal fun Project.configureKotlinMultiplatform() { + // Skiko is an internal CMP implementation detail; third-party KMP libraries + // (e.g. coil3) can carry an older skiko transitive requirement that Gradle + // upgrades to the CMP-bundled version, triggering a "Skiko dependencies' + // versions are incompatible" warning from CMP's compatibility checker. + // Force the version to match CMP so the checker sees a consistent graph. + val skikoVersion = libs.version("skiko") + configurations.configureEach { + resolutionStrategy.eachDependency { + if (requested.group == "org.jetbrains.skiko") { + useVersion(skikoVersion) + because("Align Skiko with the version bundled by Compose Multiplatform") + } + } + } + extensions.configure { // Standard KMP targets for Meshtastic jvm() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1ae325188..230e6533f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -35,6 +35,11 @@ turbine = "1.2.1" # Compose Multiplatform compose-multiplatform = "1.11.0-beta02" +# Skiko is an internal CMP implementation detail. Pin it to the version shipped by CMP to +# silence the "Skiko dependencies' versions are incompatible" warning emitted when transitive +# dependencies (e.g. coil3) carry an older skiko requirement that Gradle then upgrades to the +# CMP-bundled version. Bump this together with compose-multiplatform. +skiko = "0.144.5" compose-multiplatform-material3 = "1.11.0-alpha06" androidx-compose-material = "1.7.8" jetbrains-adaptive = "1.3.0-alpha06"