Supported versions

Covered groups

The plugin redirects these org.jetbrains.* groups to their dev.sajidali.* tvOS-fork twin whenever a tvOS Kotlin target requests them (“covered” means: the plugin will look for a tvOS klib for any artifact under these groups, official-first, falling back to the fork):

  • org.jetbrains.compose.ui
  • org.jetbrains.compose.foundation
  • org.jetbrains.compose.runtime
  • org.jetbrains.compose.material
  • org.jetbrains.compose.material3
  • org.jetbrains.compose.animation
  • org.jetbrains.compose.components
  • org.jetbrains.compose.annotation-internal
  • org.jetbrains.compose.collection-internal
  • org.jetbrains.compose.material3.adaptive (adaptive, adaptive-layout, adaptive-navigation, adaptive-navigation3) and material3-adaptive-navigation-suite — published by the fork, including androidx.window:window-core, which the fork now builds a real tvOS Kotlin/Native target for. No extra configuration needed: the same-version convention covers adaptive, and window-core arrives transitively through the fork’s own module metadata.
  • org.jetbrains.androidx.navigation (including the navigation-compose artifact)
  • org.jetbrains.androidx.lifecycle (including lifecycle-viewmodel-compose)
  • org.jetbrains.androidx.savedstate (including savedstate-compose)
  • org.jetbrains.androidx.navigationevent
  • org.jetbrains.androidx.navigation3 (including navigation3-ui)

Three third-party groups are redirected by default as well (a consumer’s own additionalGroups can still override them):

  • androidx.tv (tv-material) → dev.sajidali.androidx.tv — the fork’s Compose Multiplatform port of Android TV’s tv-material
  • io.insert-koindev.sajidali.koin — only the modules upstream Koin does not ship tvOS klibs for (koin-compose, koin-compose-viewmodel); koin-core/koin-core-viewmodel are official-first and stay on the stock artifact
  • io.coil-kt.coil3dev.sajidali.coil3 — Coil 3 (coil, coil-core, coil-compose, coil-compose-core, coil-network-core, coil-network-ktor3, coil-network-cache-control, coil-svg)

That’s 15 JetBrains groups plus the three third-party groups. Add further groups/artifacts of your own with composeTvos.additionalGroups/additionalArtifacts (see the configuration reference) — useful for third-party KMP libraries that publish their own tvOS-less umbrella artifacts the same way JetBrains does. See Library authors if you maintain one of those libraries yourself.

Version matrix

The fork republishes upstream Compose Multiplatform/AndroidX libraries under dev.sajidali.* with tvOS klibs added. Versions currently published (verify against the manifest ). Every version below is the version JetBrains published; the fork mirrors it exactly:

Component Published dev.sajidali version
compose.{ui,foundation,runtime,animation,material,components} 1.12.0
compose.material3 (JetBrains’ pairing for the 1.12.0 Compose line) 1.12.0-alpha03
androidx.lifecycle.* 2.11.0
androidx.navigation.* (incl. navigation-compose) 2.10.0-alpha02
androidx.navigation3.* (navigation3-ui) 1.2.0-alpha02
androidx.navigationevent.* (navigationevent-compose) 1.1.1
androidx.savedstate.* (incl. savedstate-compose) 1.5.0-alpha01
compose-gradle-plugin (the org.jetbrains.compose fork used by plugin-marker interception) 1.12.0
compose.material3.adaptive (adaptive, adaptive-layout, adaptive-navigation, adaptive-navigation3) 1.3.0-beta02
material3-adaptive-navigation-suite 1.12.0-alpha03
androidx.window.window-core (transitive dependency of material3.adaptive) 1.6.0-alpha02
androidx.tv (tv-material) 1.1.0-alpha01
koin (koin-compose, koin-compose-viewmodel) 4.2.2
coil3 (see Requirements — needs Kotlin 2.4.x) 3.6.1

Version policy: exact JetBrains versions, no mappings

The fork mirrors JetBrains coordinates one-to-one. For every org.jetbrains.X:Y:V it publishes dev.sajidali.X:Y:V at the identical version, differing only by the added tvOS klibs. The version you request is the version you get.

There are no version mappings, and there will not be any. A request for 1.12 resolves to 1.12 and a request for 1.11 resolves to 1.11 or fails. Cross-version substitution is forbidden, because your tvOS target would then compile against a different API surface than every other target in the same source set, and a stable-to-alpha substitution is worse still. If the fork has not published the version you asked for, the plugin fails and names the coordinate rather than quietly serving you something else.

Compose 1.12.0 is the supported floor. Older Compose lines are not back-published. If you want tvOS, move to Compose 1.12.0 or newer; every library in the community-verified table did exactly that.

The manifest still exists for one non-version reason: gradlePlugin pins which dev.sajidali.compose:compose-gradle-plugin the org.jetbrains.compose plugin-marker interception substitutes. It is single-valued because only one Compose line is supported.

Not (yet) supported

  • tvosX64 (the legacy Intel tvOS simulator target) is not built by the fork and not redirected by this plugin — only tvosArm64 and tvosSimulatorArm64 are covered.
  • Everything else under the covered groups above is currently supported, including compose.material3.adaptive and androidx.window:window-core — there are no outstanding exclusions in the covered set as of this writing.