Skip to content

Upgrade Compose to 1.12.1 [CLF-720] - #199

Merged
pyricau merged 1 commit into
mainfrom
zachklipp/compose-1-12-a559f8
Nov 4, 2026
Merged

pyricau merged 1 commit into
mainfrom
zachklipp/compose-1-12-a559f8

Conversation

@zach-klippenstein

@zach-klippenstein zach-klippenstein commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Bumps the Compose version Radiography compiles and tests against from 1.11.1 to 1.12.1 (latest stable on Google Maven), ahead of the 2.11 release. Companion to #197 (Kotlin 2.4.21).

Required transitive bumps

Compose 1.12.0 and 1.12.1 both ship AAR metadata with minCompileSdk=37 and minAndroidGradlePluginVersion=9.1.0 (1.11.4 was 35 / 8.6.0). AGP enforces this on the compose-tests and compose-unsupported-tests androidTest APKs, so these can't be avoided:

  • AGP 8.13.2 → 9.1.1 (lowest line that satisfies the floor), and Gradle wrapper 8.14.3 → 9.3.1 since AGP 9 needs Gradle 9.
  • android.builtInKotlin=false / android.newDsl=false in gradle.properties so the standalone org.jetbrains.kotlin.android plugin keeps working under AGP 9. Migrating to AGP's built-in Kotlin is left as a follow-up; AGP prints deprecation warnings for these flags but the build is green.
  • defaultConfig.targetSdk was removed for library modules in AGP 9 → moved to testOptions.targetSdk = 35 in radiography, compose-tests, compose-unsupported-tests. Behaviour of the test APKs is unchanged.
  • compileSdk = 37 and JVM target 11 only in compose-tests and compose-unsupported-tests. Compose 1.12's test artifacts contain inline functions compiled for JVM 11. The published radiography library stays at compileSdk 35 / JVM 1.8 (its Compose deps are compileOnly), so nothing changes for consumers.

No Kotlin bump was needed (2.3.10 works with AGP 9.1.1).

Reflection / scanning code

No changes were required in CompositionContexts.kt or ComposeLayoutInfo.kt for 1.12: the GapComposer/LinkComposer/RememberObserverHolder handling from #196 still resolves.

This branch is based on #200 (ktlint → ktfmt migration), so it is temporarily targeted at that branch; once #200 merges it will be rebased onto main.

Expected test output

No expected-output changes. All 34 compose-tests cases, the compose-unsupported-tests case, and the radiography, sample, sample-compose, and stoic-plugin instrumented tests pass unchanged on a Samsung SM-A256U1 (Android 16). Compose 1.12 did not rename any of the internal groups the tests assert on.

./gradlew build (unit tests, lint, ktlint, apiCheck) is green; no .api changes.

Linear: CLF-720

🤖 Generated with Claude Code

@zach-klippenstein
zach-klippenstein force-pushed the zachklipp/compose-1-12-a559f8 branch from 428f113 to 757f5e8 Compare November 4, 2026 00:56
@zach-klippenstein
zach-klippenstein changed the base branch from main to zachklipp/fix-main-ci-c61e01 November 4, 2026 00:56
Base automatically changed from zachklipp/fix-main-ci-c61e01 to main November 4, 2026 01:09
@zach-klippenstein
zach-klippenstein changed the base branch from main to zachklipp/radiography-ktlint-ktfmt-cfa2a9 November 4, 2026 01:24
Compose 1.12.x publishes AAR metadata requiring AGP 9.1.0+ and compileSdk 37,
so this also bumps AGP to 9.1.1 and the Gradle wrapper to 9.3.1, opts out of
AGP 9's built-in Kotlin / new DSL to keep the standalone Kotlin plugin, moves
library targetSdk to testOptions (removed from defaultConfig in AGP 9), and
raises compileSdk/JVM target only in the two Compose test modules.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@zach-klippenstein
zach-klippenstein force-pushed the zachklipp/compose-1-12-a559f8 branch from 757f5e8 to ea1e005 Compare November 4, 2026 01:26
Base automatically changed from zachklipp/radiography-ktlint-ktfmt-cfa2a9 to main November 4, 2026 01:29
@pyricau
pyricau merged commit 3fd87f4 into main Nov 4, 2026
8 checks passed
@pyricau
pyricau deleted the zachklipp/compose-1-12-a559f8 branch November 4, 2026 08:12
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.

3 participants