fix(deps): pin androidx-compose runtime-tracing/ui-test to CMP version

The libs.versions.toml entry 'androidx-compose = 1.11.0-rc01' was used by
two satellite AndroidX-coords artifacts:

  androidx-compose-runtime-tracing = androidx.compose.runtime:runtime-tracing
  androidx-compose-ui-test-manifest = androidx.compose.ui:ui-test-manifest

runtime-tracing is wired into every Android target as 'runtimeOnly' from
AndroidCompose.kt. At rc01 it transitively requests
androidx.compose.runtime:runtime:1.11.0-rc01, which Gradle's 'highest wins'
then upgrades the whole runtime artifact to — while AndroidCompose.kt's
resolutionStrategy still pins it to compose-multiplatform's version
(1.11.0-beta02). Net result in the shipped APK on main:

  runtime-tracing bytecode: compiled against 1.11.0-rc01 APIs
  runtime classes at runtime: 1.11.0-beta02 (force-pinned)
  ui / foundation / animation: 1.11.0-beta02

That ABI skew between runtime-tracing and the runtime it traces is a
plausible contributor to the recomposition / animation regressions we've
been chasing on internal builds.

Fix: both satellite artifacts now use version.ref = 'compose-multiplatform'
so they always match the AndroidX runtime that CMP itself ships. Drops the
unused 'androidx-compose' version ref.

Verified via :app:dependencies that runtime/ui/foundation/animation/runtime-tracing
all resolve to 1.11.0-beta02 cleanly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
James Rich 2026-04-17 15:45:05 -05:00
parent a273dc6623
commit 2b8dbd6905

View file

@ -35,10 +35,11 @@ turbine = "1.2.1"
# Compose Multiplatform
compose-multiplatform = "1.11.0-beta02"
compose-multiplatform-material3 = "1.11.0-alpha06"
# AndroidX Compose test/tracing artifacts share a version track with CMP but are resolved
# independently by Maven. Pinning them to their own ref prevents Renovate from bumping the
# CMP plugin version when a new AndroidX Compose pre-release appears.
androidx-compose = "1.11.0-rc01"
# `androidx-compose-material` (M2) is independent of CMP and pinned separately
# because some third-party libs (maps-compose-widgets, datadog) drag in
# unversioned material transitives. Test/tracing artifacts in the
# androidx.compose.{runtime,ui} groups MUST track CMP — use compose-multiplatform
# as their version ref, not a separate pin.
androidx-compose-material = "1.7.8"
jetbrains-adaptive = "1.3.0-alpha06"
@ -121,8 +122,8 @@ androidx-work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version
androidx-work-testing = { module = "androidx.work:work-testing", version = "2.11.2" }
# AndroidX Compose (explicit versions — BOM removed; CMP is the sole version authority)
androidx-compose-runtime-tracing = { module = "androidx.compose.runtime:runtime-tracing", version.ref = "androidx-compose" }
androidx-compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "androidx-compose" } # Required by Robolectric Compose tests (registers ComponentActivity)
androidx-compose-runtime-tracing = { module = "androidx.compose.runtime:runtime-tracing", version.ref = "compose-multiplatform" }
androidx-compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "compose-multiplatform" } # Required by Robolectric Compose tests (registers ComponentActivity)
# Compose Multiplatform
compose-multiplatform-animation = { module = "org.jetbrains.compose.animation:animation", version.ref = "compose-multiplatform" }