Skip to content

Use single skiko-awt-runtime-all fat jar dependency on Desktop#3198

Open
Hubert Błaszczyk (hub-bla) wants to merge 2 commits into
jb-mainfrom
hub.bla/use-skiko-awt-runtime-fat-jar
Open

Use single skiko-awt-runtime-all fat jar dependency on Desktop#3198
Hubert Błaszczyk (hub-bla) wants to merge 2 commits into
jb-mainfrom
hub.bla/use-skiko-awt-runtime-fat-jar

Conversation

@hub-bla

@hub-bla Hubert Błaszczyk (hub-bla) commented Jul 7, 2026

Copy link
Copy Markdown

Fixes CMP-9175 Introduce a single desktop dependency for all platforms

A new universal Desktop publication (org.jetbrains.compose.desktop:desktop-jvm-all) is now available. When packaging a desktop application, the compose gradle plugin resolves it to the appropriate platform-specific Skiko runtime for the target OS and architecture.

Release Notes

N/A

Comment thread buildSrc-fork/settingsScripts/skiko-setup.groovy Outdated
import org.gradle.api.GradleException
import org.gradle.api.initialization.Settings

class SkikoSetup {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we remove this file entirely?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I think we can but there's still logic to override skiko version. I don't see it being used anywhere inside the repo so I don't think its needed. wdyt?

Or, we can just move this logic to settings-fork.gradle

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked into teamcity config and it didn't reference the SKIKO_VERSION as well, so I dropped the file entirely

@igordmn

Igor Demin (igordmn) commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Approval from Alexander Maryanovsky (@m-sasha) is also needed.

@m-sasha

Copy link
Copy Markdown

Does the gradle plugin still resolve based on the executing OS (Windows, macOS, Linux)?

@MatkovIvan Ivan Matkov (MatkovIvan) left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for blocking, but let's explicitly decide what we're going to do with desktop module first.


afterEvaluate {
publishing {
publications {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems the task was not about stopping publishing existing artifacts immediately, just to provide replacement and do a soft deprecation cycle.

Comment thread compose/ui/ui/build-fork.gradle Outdated
desktopMain {
dependsOn(skikoMain)
dependencies {
runtimeOnly(libs.skikoAwtRuntime)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we add a transitive dependency to *-all variant unconditionally, do we even need to keep the "desktop" module? especially introducing a new artifact there

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this dependency added here instead of desktop?

@hub-bla Hubert Błaszczyk (hub-bla) force-pushed the hub.bla/use-skiko-awt-runtime-fat-jar branch from 5845162 to 099d71e Compare July 9, 2026 11:22
@hub-bla

Copy link
Copy Markdown
Author

Discussed with Ivan Matkov (@MatkovIvan). We’re going to keep the current desktop publication as is and we’ll add additional desktop artifact with skiko-awt-runtime-all fat jar

skikoAwtRuntimeWindowsArm64 = { module = "org.jetbrains.skiko:skiko-awt-runtime-windows-arm64", version.ref = "skiko" }
skikoAwtRuntimeLinuxX64 = { module = "org.jetbrains.skiko:skiko-awt-runtime-linux-x64", version.ref = "skiko" }
skikoAwtRuntimeLinuxArm64 = { module = "org.jetbrains.skiko:skiko-awt-runtime-linux-arm64", version.ref = "skiko" }
skikoAwtRuntime = { module = "org.jetbrains.skiko:skiko-awt-runtime-all", version.ref = "skiko" }

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems unused. Do we want to use in inside this repo (tests, etc) like it was in previous iterations?

Not a blocker, just checking

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, if we're making now the fat jar artifact as a main one we should test on it. Fixed

@MatkovIvan Ivan Matkov (MatkovIvan) left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix "Release Notes" before the merge - it's doesn't look like "Migration notes" for this particular change. I'd suggest keeping it only in JetBrains/compose-multiplatform#5640 folowup

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.

4 participants