skydoves / skydoves/compose-stability-analyzer

KMP JS build failure: No matching JS variant for compose-stability-runtime:0.5.3

Open
#61 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug feature request
Dominant language
Kotlin
Stars
1.7k
Forks
42
Avg merge
13h 5m
Merged PRs (30d)
6

Description

Project information:

  • Library Version: 0.5.3
  • Affected Target(s): Kotlin Multiplatform project with JS target (IR + npm / browser) running in GitHub Actions CI on ubuntu-latest

Describe the Bug:

Using the stability analyzer plugin inside a Kotlin Multiplatform shared module that targets Android, iOS, Desktop, and JS causes the build to fail during the :kotlinNpmInstall step. The JS resolution fails because Gradle cannot locate a matching variant of the dependency com.github.skydoves:compose-stability-runtime:0.5.3.

Could not determine the dependencies of task ':kotlinNpmInstall'.
> Failed to query the value of task ':kotlinNpmInstall' property 'packageJsonFiles'.
   > Could not resolve all dependencies for configuration ':jetlime:jsNpmAggregated'.
      > Could not resolve com.github.skydoves:compose-stability-runtime:0.5.3.
        Required by:
            project :jetlime
         > No matching variant of com.github.skydoves:compose-stability-runtime:0.5.3 was found. 
           The consumer was configured to find a library for use during 'kotlin-runtime',
           optimized for non-jvm, with attributes for JS IR + public package.json (npm),
           but no compatible variant exists.

This issue occurs specifically when building in GitHub Actions CI, and prevents building KMP libraries with JavaScript targets.

Expected Behavior:

The plugin should either:

  • Provide a JS-compatible artifact (or wasm-js compatible if intended), or
  • Automatically skip / allow disabling on unsupported targets (e.g., js {} target in KMP)

so that the build completes successfully without failing the kotlinNpmInstall.
Until a JS variant is available, KMP consumers should be able to opt out per target without breaking CI builds.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the :kotlinNpmInstall failure and :jsNpmAggregated resolution for compose-stability-runtime:0.5.3, then inspect how the plugin handles JS targets and published variants. Done means a Kotlin Multiplatform project with a JS target completes CI without the reported resolution error, either through a compatible artifact or an explicit opt-out.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, kotlin
Domain
build-system, ci-cd
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.