Skip to content

Declare web executable binaries for :shared so Compose UI tests bundle - #115

Merged
patrickunterwegs merged 2 commits into
mainfrom
claude/test-failures-library-upgrades-j2kuwh
Aug 26, 2026
Merged

Declare web executable binaries for :shared so Compose UI tests bundle#115
patrickunterwegs merged 2 commits into
mainfrom
claude/test-failures-library-upgrades-j2kuwh

Conversation

@patrickunterwegs

Copy link
Copy Markdown
Member

Compose Multiplatform 1.12.0 registers a new
checkComposeUiTestConfigurationFor task for every Kotlin/JS-IR
target. It fails the build when the target's test compile classpath pulls
in Compose UI (and with it Skiko) while the target declares no executable
binary: the test output is then not bundled with webpack, so the Skiko
runtime cannot be loaded and the browser tests may fail.

:shared has Compose UI in commonMain, so its js and wasmJs test
compilations depend on Skiko even though the tests themselves are plain
kotlin.test. Neither target declared an executable binary, so
:shared:allTests failed at :shared:checkComposeUiTestConfigurationForJs
before any test ran.

Add binaries.executable() to both web targets, as the compose*App modules
already do. See https://youtrack.jetbrains.com/issue/CMP-4906

Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01T69oYMwratF7AAA9ECZwpF

Compose Multiplatform 1.12.0 registers a new
checkComposeUiTestConfigurationFor<Target> task for every Kotlin/JS-IR
target. It fails the build when the target's test compile classpath pulls
in Compose UI (and with it Skiko) while the target declares no executable
binary: the test output is then not bundled with webpack, so the Skiko
runtime cannot be loaded and the browser tests may fail.

:shared has Compose UI in commonMain, so its js and wasmJs test
compilations depend on Skiko even though the tests themselves are plain
kotlin.test. Neither target declared an executable binary, so
:shared:allTests failed at :shared:checkComposeUiTestConfigurationForJs
before any test ran.

Add binaries.executable() to both web targets, as the compose*App modules
already do. See https://youtrack.jetbrains.com/issue/CMP-4906

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T69oYMwratF7AAA9ECZwpF
@patrickunterwegs

Copy link
Copy Markdown
Member Author
// `binaries.executable()` is not about shipping :shared as a web app — the compose*App
// modules do that. Compose Multiplatform 1.12.0 added checkComposeUiTestConfigurationFor<Target>,
// which fails the build when a K/JS-IR target has Compose UI (and therefore Skiko) on its
// test compile classpath but declares no executable binary: without one the test bundle is
// not run through webpack, so the Skiko runtime cannot be loaded and the browser tests may
// fail. Compose UI comes in via commonMain here, so both web targets need the binary even
// though the module only has plain kotlin.test tests. See CMP-4906.

@patrickunterwegs
patrickunterwegs merged commit a7f1774 into main Aug 26, 2026
1 check passed
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.

2 participants