Add Compose Multiplatform to the workflow-runtime module. - #1564
Open
zach-klippenstein wants to merge 3 commits into
Open
Add Compose Multiplatform to the workflow-runtime module.#1564zach-klippenstein wants to merge 3 commits into
zach-klippenstein wants to merge 3 commits into
Conversation
zach-klippenstein
force-pushed
the
zachklipp/cmp
branch
from
August 19, 2026 23:03
d98871c to
2585cf9
Compare
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Collaborator
Author
|
@codex review Comment posted automatically by outer-loop |
The KotlinPlatformType.jvm attribute was being applied to legacy configurations that are both resolvable and consumable (ktlint, COMPOSE_SKIKO_JS_WASM_RUNTIME), which advertised them as variants and made variant selection ambiguous for consuming projects' SwiftPM lockfile resolution. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
zach-klippenstein
marked this pull request as ready for review
August 20, 2026 00:05
zach-klippenstein
enabled auto-merge
August 20, 2026 00:38
tcmulcahy
approved these changes
Aug 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is the first step toward a Compose-based workflow runtime: wiring up Compose Multiplatform (CMP) in
workflow-runtimewithout breaking existing consumers.What changed
jetbrains.composeandcompose.compilerGradle plugins toworkflow-runtime.jetbrains.compose.runtimeandjetbrains.compose.runtime-saveableascommonMaindependencies so they resolve to the correct platform artifact on each target (Android, JVM desktop, JS, iOS).androidx.compose.uidependency fromandroidMain; the CMP plugin now manages those viajetbrains.compose.ui.Key design decision
When the JetBrains Compose plugin is applied to a KMP module, Gradle's variant resolution can become ambiguous for JVM configurations because CMP publishes both Android and desktop variants. To fix this, resolvable-only configurations (i.e.
isCanBeResolved && !isCanBeConsumed) are attributed withKotlinPlatformType.jvmso Gradle consistently picks the desktop variant on JVM. Consumable configurations are intentionally excluded to avoid breaking consumers that don't request a platform type (e.g. SwiftPM lockfile tasks).Side effects
$stablefields to@Stable/@Immutableannotated classes; the Android and JVM.apifiles are updated accordingly.Testing
Verified that the build and dependency guard baselines pass. No behavioral changes — no new runtime code is introduced yet.