Continuation of
https://github.com/JetBrains/compose-multiplatform/pull/5486
Attempt to fix:
```
Caused by: java.net.SocketTimeoutException: Read timed out
13:45:18 at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:867)
13:45:18 at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:829)
13:45:18 at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:366)
13:45:18 at org.jsoup.helper.HttpConnection.get(HttpConnection.java:353)
13:45:18 at org.jetbrains.compose.internal.publishing.DownloadFromSpaceMavenRepoTask.downloadArtifactsFromComposeDev(DownloadFromSpaceTask.kt:37)
13:45:18 at org.jetbrains.compose.internal.publishing.DownloadFromSpaceMavenRepoTask.run(DownloadFromSpaceTask.kt:28)
13:45:18 at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
13:45:18 at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
13:45:18 ... 117 more
```
happened at
[20-11-2025](https://teamcity.jetbrains.com/buildConfiguration/JetBrainsPublicProjects_Compose_Task5UploadToMavenCentral/5680809?showLog=5680809_16241_16045&logView=flowAware)
The default socket timeout is 30 seconds according JSoup docs
## Testing
1. create a Space client key
2. set env. vars: COMPOSE_REPO_USERNAME, COMPOSE_DEV_REPO_PROJECT_ID,
COMPOSE_REPO_KEY, COMPOSE_DEV_REPO_REPO_ID
3. run
```
./gradlew -p=cli downloadArtifactsFromComposeDev --info --stacktrace "-Pmaven.central.coordinates=org.jetbrains.androidx.lifecycle:*:2.10.0-alpha05,org.jetbrains.androidx.navigation3:*:1.0.0-alpha05,org.jetbrains.androidx.navigationevent:*:1.0.0-beta02,org.jetbrains.androidx.savedstate:*:1.4.0-rc01,org.jetbrains.androidx.window:*:1.5.0" "-Pmaven.central.deployName=CMP 1.10.0-beta02 (org.jetbrains.androidx)" --rerun-tasks
```
## Release Notes
N/A
Attempt to fix:
```
Caused by: java.net.SocketTimeoutException: Socket timeout has expired [url=https://public.jetbrains.space/api/http/projects/.../packages/repositories/.../packages/name:org.jetbrains.skiko%2Fskiko-jvm-runtime-linux_x64/versions/version:1.4.0-rc01?%24fields=%2A, socket_timeout=unknown] ms
at io.ktor.client.network.sockets.TimeoutExceptionsKt.SocketTimeoutException(TimeoutExceptions.kt:30)
at io.ktor.client.plugins.HttpTimeoutKt.SocketTimeoutException(HttpTimeout.kt:272)
at io.ktor.client.engine.okhttp.OkUtilsKt.mapOkHttpException(OkUtils.kt:82)
at io.ktor.client.engine.okhttp.OkUtilsKt.access$mapOkHttpException(OkUtils.kt:1)
at io.ktor.client.engine.okhttp.OkHttpCallback.onFailure(OkUtils.kt:42)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:525)
at COROUTINE_STACKTRACE_PRESERVATION_BOUNDARY.rethrow(Unknown Source)
at space.jetbrains.api.runtime.stacktrace.RequestStacktraceKt.withPreservedStacktrace(RequestStacktrace.kt:13)
at space.jetbrains.api.runtime.SpaceHttpClientKt.callSpaceApi(SpaceHttpClient.kt:128)
at space.jetbrains.api.runtime.SpaceHttpClientKt.callSpaceApi$default(SpaceHttpClient.kt:80)
at space.jetbrains.api.runtime.RestResource.callWithParameters(RestResource.kt:57)
at space.jetbrains.api.runtime.RestResource.callWithParameters$default(RestResource.kt:50)
at space.jetbrains.api.runtime.resources.projects.packages.repositories.packages.Versions.getPackageVersionDetails(Versions.kt:172)
at space.jetbrains.api.runtime.resources.projects.packages.repositories.packages.Versions.getPackageVersionDetails$default(Versions.kt:162)
at org.jetbrains.compose.internal.publishing.utils.SpaceApiClient$forEachPackageWithVersion$1$1.invokeSuspend(SpaceApiClient.kt:37)
at org.jetbrains.compose.internal.publishing.utils.SpaceApiClient$forEachPackageWithVersion$1$1.invoke(SpaceApiClient.kt)
at org.jetbrains.compose.internal.publishing.utils.SpaceApiClient$forEachPackageWithVersion$1$1.invoke(SpaceApiClient.kt)
at org.jetbrains.compose.internal.publishing.utils.SpaceApiClient.forAllInAllBatches(SpaceApiClient.kt:76)
at org.jetbrains.compose.internal.publishing.utils.SpaceApiClient.access$forAllInAllBatches(SpaceApiClient.kt:15)
at org.jetbrains.compose.internal.publishing.utils.SpaceApiClient$forAllInAllBatches$1.invokeSuspend(SpaceApiClient.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
at org.jetbrains.compose.internal.publishing.utils.SpaceApiClient.withSpaceClient(SpaceApiClient.kt:52)
at org.jetbrains.compose.internal.publishing.utils.SpaceApiClient.forEachPackageWithVersion(SpaceApiClient.kt:34)
at org.jetbrains.compose.internal.publishing.FindModulesInSpaceTask.run(FindModulesInSpaceTask.kt:57)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
... 117 more
```
happened 3 times in a row at
[19-11-2025](https://teamcity.jetbrains.com/buildConfiguration/JetBrainsPublicProjects_Compose_AllPublicRelease/5677823)
The default socket timeout is 10 seconds
([OkHttpEngine](c68f4ee0d5/ktor-client/ktor-client-okhttp/jvm/src/io/ktor/client/engine/okhttp/OkHttpEngine.kt (L244)
),
[OkHttpClient](5b23df7132/okhttp/src/commonJvmAndroid/kotlin/okhttp3/OkHttpClient.kt (L1172)))
Also replace deprecated calls by the suggested calls
## Testing
1. create a Space client key
2. set env. vars: COMPOSE_REPO_USERNAME, COMPOSE_DEV_REPO_PROJECT_ID,
COMPOSE_REPO_KEY, COMPOSE_DEV_REPO_REPO_ID
3. run
```
./gradlew -p=cli findComposeModules --info --stacktrace "-Pmaven.central.coordinates=org.jetbrains.androidx.lifecycle:*:2.10.0-alpha05,org.jetbrains.androidx.navigation3:*:1.0.0-alpha05,org.jetbrains.androidx.navigationevent:*:1.0.0-beta02,org.jetbrains.androidx.savedstate:*:1.4.0-rc01,org.jetbrains.androidx.window:*:1.5.0" "-Pmaven.central.deployName=CMP 1.10.0-beta02 (org.jetbrains.androidx)" --rerun-tasks
```
## Release Notes
N/A
- Remove windows skiko image (moved to skiko repo -
https://github.com/JetBrains/skiko/pull/1096)
- Combined into unified `linux-tests` image
- Preinstalled Android SDK allows removing this step from 4 build stages
- Ubuntu 22.04 -> 24.04
- Update JDK to 17 -> 21
- Update Google Chrome 121 -> 140, and use specifc pinned version
instead of "latest"
- Update Firefox 138 -> 142, and use specifc pinned version instead of
"latest"
Related fixes:
- CI change: https://jetbrains.team/p/ui/reviews/49
- Missing JDK 17 fix -
51a87ca55c
- Failing HTML tests on Chrome 140 - #5426
- Failing Compose Web test tests on Firefox 142 -
https://github.com/JetBrains/compose-multiplatform-core/pull/2398
## Release Notes
N/A
Update Docker image for Skiko Windows build to the latest Windows Server
2022 and Visual Studio 2022
Also add LLVM to the image and avoid downloading it on every build
## Testing
Latest Skiko compiles successfully on CI
This should be tested by QA
## Release Notes
N/A
After decoupling Material3 from Compose, we need to pass their versions
separately
[CI
fix](df83b9cf9a)
## Testing
```
./check.sh
./check.sh -Dcompose.version=1.9.0-alpha02
./check.sh -Dcompose.version=1.9.0-alpha01 -Dcompose.material3.version=1.9.0-alpha03
```
## Release Notes
N/A
Fixes
```
java.util.zip.ZipException: duplicate entry: org/jetbrains/compose/material/material-navigation/1.9.0-alpha03/material-navigation-1.9.0-alpha03.module.sha512
16:53:22 at org.jetbrains.compose.internal.publishing.UploadToSonatypeTask.createDeploymentBundle(UploadToSonatypeTask.kt:90)
```
It happened because we pass
`-Pmaven.central.coordinates=org.jetbrains.compose*:*:1.9.0-alpha03,org.jetbrains.compose.material:material-navigation*:1.9.0-alpha03`
which points to intersected artifacts. When we add
`org.jetbrains.compose.material:material-navigation*` into the bundle,
we already added it by `org.jetbrains.compose*:*`. This is [a known
issue](https://youtrack.jetbrains.com/issue/CMP-8504/Maven-Central-uploading.-Intersection-of-version-groups)
## Testing
```
./gradlew -p=cli reuploadArtifactsToMavenCentral --info --stacktrace -Pmaven.central.sign=true -Pmaven.central.coordinates=org.jetbrains.compose*:*:1.9.0-alpha03,org.jetbrains.compose.material:material-navigation*:1.9.0-alpha03,org.jetbrains.compose.material3.adaptive:*:1.2.0-alpha03,org.jetbrains.androidx.graphics:graphics-shape*:1.0.0-alpha09,org.jetbrains.androidx.window:*:1.4.0-alpha08 -Pmaven.central.deployName="Compose 1.9.0-alpha03 and associated libs" --rerun-tasks
```
with disabled signing and uploading to Maven no longer produces the
error
## Release Notes
N/A
- new API requires creating a zip
- API code is copied and adapted from
[compose-hot-reload](799b90b76f/buildSrc/src/main/kotlin/PublishToMavenCentralTask.kt (L39))
- [CI change](https://jetbrains.team/p/ui/reviews/31/timeline)
## Testing
1. Configure Maven Space Token in
https://public.jetbrains.space/p/compose/edit/applications, write it in
cli/build.gradle.kts
2. Use Maven Central token, write it in cli/gradle.properties
3.
```
..\gradlew reuploadArtifactsToMavenCentral --info --stacktrace -Pmaven.central.coordinates=org.jetbrains.compose*:*:1.8.0,org.jetbrains.compose.material:material-navigation*:2.9.0-beta02,org.jetbrains.compose.material3.adaptive:*:1.1.0 -Pmaven.central.deployName="Compose1.8.0 and associated libs" --rerun-tasks
..\gradlew reuploadArtifactsToMavenCentral --info --stacktrace -Pmaven.central.coordinates=org.jetbrains.skiko*:*:0.9.16 -Pmaven.central.deployName="Skiko 0.9.16" --rerun-tasks
```
downloads packages from Space, creates a zip, and uploads as a new
(non-published) deployment.
With failed state, because signing was disabled:
<img width="305" alt="image"
src="https://github.com/user-attachments/assets/0a32e185-e43b-4783-9145-84aba64d41c0"
/>
I will check on a valid uploading on Skiko after the merge
## Release Notes
N/A
This PR only updates Compose and Kotlin versions.
I'm going to follow it up with further updates addressing various
warnings.
## Testing
`./validateExamples.sh`, `./validateExamplesIos.sh`, and
`./validateExamplesWithJs.sh`
## Release Notes
N/A
A script for extended CI check to not miss issues like
https://youtrack.jetbrains.com/issue/CMP-7738/Compose-fails-to-sync-in-Bazel
## Testing
```
./gradlew publishComposeJbToMavenLocal
```
```
./check.sh -Dkotlin.version=2.1.0 -Dcompose.version=9999.0.0-SNAPSHOT
```
doesn't fail on the latest jb-main, fails on 1.8.0-alpha04
## Release Notes
N/A
It fails with:
```
> Dependency verification failed for configuration ':buildSrc:classpath'
One artifact failed verification: kotlinx-coroutines-bom-1.6.4.pom (org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4) from repository Gradle Central Plugin Repository
```
Looks like there are different artifacts in different repos (Gradle and
Maven Central). We need to more carefully enable it in the future
# Release Notes
N/A
Fixes
https://youtrack.jetbrains.com/issue/CMP-7603/Fix-Maven-Central-publication
- Update Space API to almost the latest
- the most latest requires Ktor Eap lib
- it is no longer depends on the broken `net.minidev:json-smart`
- Add artifact verification to avoid some security issues in the
publication process
# Testing
The command from the issue passes configuration phase, and fails with:
```
java.lang.IllegalStateException: Provide value for 'maven.central.sign.key' Gradle property or 'MAVEN_CENTRAL_SIGN_KEY' environment variable
```
The actual test we can only do on CI, that artifacts are successfully
uploaded to the stage.
# Release Notes
N/A
We support only 11 minimal for Desktop. It fails with latest builds
(it also fails because of another reason, which I will fix separately)
## Release Notes
N/A
Should fix
```
Dependency 'androidx.compose.foundation:foundation-android:1.8.0-alpha02' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs.
```
Changes:
- update all examples to Kotlin 2.0
- migrate to using kotlin("plugin.compose") for Compose compiler
configuration
- remove deprecated Compose Web gradle API usages
- added a workaround for
https://github.com/JetBrains/compose-multiplatform/issues/4848 in
Jetsnack example
Testing:
- `./gradlew build` in every example
- run some examples in simulators (or desktop, browser)