Skip to content

Bump Compose deps and align the Android side with the Compose BOM - #5

Merged
solcott merged 3 commits into
mainfrom
chore/compose-1.12-rc01
Aug 14, 2026
Merged

Bump Compose deps and align the Android side with the Compose BOM#5
solcott merged 3 commits into
mainfrom
chore/compose-1.12-rc01

Conversation

@solcott

@solcott solcott commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Stack 1/4 — base main. Three commits.

1. Move Compose Multiplatform to 1.12.0-rc01, drop three unused aliases

androidx-compose-ui-tooling, androidx-compose-ui-tooling-preview and androidx-compose-foundation
are removed because nothing declared them — the Compose Multiplatform equivalents replaced all three
during the KMP migration.

2. Bump the rest

metro             1.4.1         -> 1.4.2
circuit           0.36.0        -> 0.36.1
composeUi         1.12.0-rc01   -> 1.12.0     (AndroidX Compose is stable now)
material3         1.5.0-alpha25 -> 1.5.0-alpha26
appcompat         1.7.1         -> 1.8.0
dependency-sorter 0.20.0        -> 0.21.0

Metro is the one worth checking rather than assuming — it is a compiler plugin, so it is coupled
to the Kotlin version, and this branch is on Kotlin 2.4.10 (the Kotlin bump lives in #8, because SKIE
supports 2.4.10 at the latest). 1.4.2 works there.

This commit also corrected a claim the first one got wrong: it had asserted "no version skew on
Android", which was measured on :ui alone and did not generalise.

3. Align Android with the Compose BOM

Rather than document the skew, remove it. Only ui and runtime were declared anywhere, so only
they followed the composeUi pin; foundation and animation were declared nowhere and drifted to
1.12.0-beta01 on :app behind CMP and material3. Nothing warns about that.

androidx.compose:compose-bom:2026.08.00 is the BOM whose core artifacts are 1.12.0. Applied to
Android configurations only:app, plus an androidMain.dependencies block in :ui and
:presenter, the only KMP modules that pull Compose. Never commonMain: androidx.compose.runtime
is genuinely multiplatform and reaches jvm/native/web through CMP's alias, so a common-scoped BOM
would drag those onto the AndroidX line too.

Verified on both configurations rather than one:

ui foundation animation runtime
:app 1.12.0 1.12.0 1.12.0 1.12.0
:ui 1.12.0 1.12.0 1.12.0 1.12.0

material3 stays outside the BOM deliberately. The BOM manages it at 1.4.0, older than the alpha
line this project tracks. That is harmless only because a direct dependency with an explicit version
beats a lower BOM constraint — :app resolves 1.5.0-alpha26 and :ui resolves 1.5.0-alpha22 through
CMP's material3. Both resolve up from 1.4.0, never back. Worth re-checking after a BOM bump: a BOM
that ever pins material3 above the alpha would silently win.

A BOM had been rejected once before, per the catalog comment this replaces, on the grounds that it
would stop material3 being pinned independently. That turned out to be avoidable rather than true.

One trap now recorded in AGENTS.md: platform(...) does not exist on a KMP source-set dependency
handler
, so androidMain.dependencies { } needs project.dependencies.platform(...). A bare
platform(...) fails to configure.

Verification

ktfmtCheck, test, assembleDebug on this branch alone, plus both dependency reports above, plus
a check that :desktop still resolves Compose Multiplatform 1.12.0-rc01 — the Android alignment did
not leak to other targets.

🤖 Generated with Claude Code

CMP 1.12.0-beta03 was built against AndroidX Compose 1.12.0-beta02, so `foundation`
and `animation` resolved to beta02 while `ui` and `runtime` came up to rc01 off the
catalog pin. AGENTS.md documented that split as accepted skew. Moving CMP to rc01
closes it: every androidx.compose.{ui,foundation,animation,runtime} artifact now
resolves to 1.12.0-rc01, verified with

    ./gradlew :ui:dependencies --configuration androidCompileClasspath

`androidx-compose-ui-tooling`, `androidx-compose-ui-tooling-preview` and
`androidx-compose-foundation` are removed because nothing declares them. The
Compose Multiplatform equivalents replaced all three during the KMP migration —
tooling-preview in particular is deliberately the `org.jetbrains.compose.ui`
build, since that is what renders commonMain previews.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Routine version bumps, all verified together on Kotlin 2.4.10:

  metro           1.4.1        -> 1.4.2
  circuit         0.36.0       -> 0.36.1
  composeUi       1.12.0-rc01  -> 1.12.0        (AndroidX Compose is stable now)
  material3       1.5.0-alpha25 -> 1.5.0-alpha26
  appcompat       1.7.1        -> 1.8.0
  dependency-sorter 0.20.0     -> 0.21.0

Metro is the one worth checking rather than assuming: it is a compiler plugin and
so coupled to the Kotlin version, and this branch is on 2.4.10. 1.4.2 works there —
`test assembleDebug` passes.

**Also corrects a claim in the previous commit that was wrong.** That commit said
there was "no version skew on Android — every artifact resolves to 1.12.0-rc01".
That was measured on `:ui` alone and does not generalise: `:app` had `foundation`
and `animation` at 1.12.0-beta01 at the time, and still does. The skew is not
caused by these bumps; it was there and mis-described.

The corrected note states the actual per-module, per-group resolution, why it
differs (only `ui` and `runtime` are declared directly, so only they follow the
catalog pin — and `:ui` declares no AndroidX Compose artifact at all, so Compose
Multiplatform's constraints drive it wholesale), and gives both commands to check
rather than one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@solcott solcott changed the title Move Compose Multiplatform to 1.12.0-rc01 and drop three unused aliases Bump Compose, Metro, Circuit and friends; correct a version-skew claim Aug 14, 2026
The previous commit corrected a wrong claim about version skew but left the skew
itself in place: only `ui` and `runtime` were declared anywhere, so only they
followed the `composeUi` pin, while `foundation` and `animation` — declared
nowhere — drifted to 1.12.0-beta01 on `:app` behind CMP and material3.

`androidx.compose:compose-bom:2026.08.00` is the BOM whose core artifacts are
1.12.0. Applied to **Android configurations only**: `:app`, plus an
`androidMain.dependencies` block in `:ui` and `:presenter`, the only KMP modules
that pull Compose. Not commonMain — androidx.compose.runtime is genuinely
multiplatform and reaches jvm/native/web through CMP's alias, so a common-scoped
BOM would drag those onto the AndroidX line too, which is the opposite of what is
wanted. These are the repo's first androidMain dependency blocks; an AndroidX BOM
is exactly the "genuinely platform-specific" case AGENTS.md reserves them for.

Verified rather than assumed, on both configurations:

  :app  debugCompileClasspath    ui/foundation/animation/runtime -> 1.12.0
  :ui   androidCompileClasspath  ui/foundation/animation/runtime -> 1.12.0

material3 stays outside the BOM deliberately. The BOM manages it at 1.4.0, older
than the alpha line this project tracks, and that is harmless only because a
direct dependency with an explicit version beats a lower BOM constraint — `:app`
resolves 1.5.0-alpha26 and `:ui` resolves 1.5.0-alpha22 through CMP. Both resolve
*up* from 1.4.0. Worth re-checking after a BOM bump, since a BOM that ever pins
material3 above the alpha would silently win.

A BOM was rejected once before, per the catalog comment this replaces, on the
grounds that it would stop material3 being pinned independently. That turned out
to be avoidable rather than true: the BOM governs the core line and material3
remains the one explicit exception.

One trap recorded in AGENTS.md: `platform(...)` does not exist on a KMP source-set
dependency handler, so `androidMain.dependencies { }` needs
`project.dependencies.platform(...)`. A bare `platform(...)` fails to configure.

Also confirmed unaffected: `:desktop` still resolves Compose Multiplatform
1.12.0-rc01, so the Android alignment did not leak to other targets.
Verified with ktfmtCheck, test and assembleDebug.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@solcott solcott changed the title Bump Compose, Metro, Circuit and friends; correct a version-skew claim Bump Compose deps and align the Android side with the Compose BOM Aug 14, 2026
@solcott
solcott merged commit f71b29a into main Aug 14, 2026
@solcott
solcott deleted the chore/compose-1.12-rc01 branch August 14, 2026 16:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant