hi, I just want to quickly discuss releasing kotes...
# kotest
p
hi, I just want to quickly discuss releasing kotest that is compatible with Kotlin 2.0.21. When bumping Kotlin version to 2.0.21 in snakeyaml-engine-kmp, we're getting some compiler failure. As discussed in KT-71112, it's probably related to the fact that kotest isn't compatible with this version. I see that there's something like a pre-release of kotest 6.0, but some artifacts are not available for it so it's unusable: https://github.com/krzema12/snakeyaml-engine-kmp/actions/runs/11549617017/job/32143007874?pr=251. I also see the 6.0 milestone - do all tickets from it need to be closed to release 6.0? It seems a lot, maybe it would be better to consider a patch release to 5.x?
o
Did you try Kotest prerelease v6.0.0.M1?
o
That seems to be another Kotlin compiler plugin API change from 2.0.20 to 2.0.21. Could you file an issue please? As a workaround, would using Kotlin 2.0.20 with Kotest 6.0.0.M1 work for you?
Could not reproduce, Kotest 6.0.0.M1 compiler plugin tests succeeded with Kotlin 2.0.21:
Copy code
kotlinCompilerPluginClasspathJsTest - Kotlin compiler plugins for compilation
+--- org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.0.21
|    +--- org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.0.21
|    |    +--- org.jetbrains.kotlin:kotlin-scripting-common:2.0.21
|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21
|    |    |         \--- org.jetbrains:annotations:13.0
|    |    +--- org.jetbrains.kotlin:kotlin-scripting-jvm:2.0.21
|    |    |    +--- org.jetbrains.kotlin:kotlin-script-runtime:2.0.21
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 (*)
|    |    |    \--- org.jetbrains.kotlin:kotlin-scripting-common:2.0.21 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 (*)
\--- io.kotest:kotest-framework-multiplatform-plugin-embeddable-compiler:6.0.0.M1
     \--- io.kotest:kotest-framework-multiplatform-plugin-embeddable-compiler-jvm:6.0.0.M1
          \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 -> 2.0.21 (*)
p
weird, which targets are you testing on?
o
Testing on Ubuntu, like your runner. But this would skip mingwX64:
Copy code
> Task :mingwX64Test SKIPPED
So basically this is what gets tested on Ubuntu:
Copy code
> Task :jsBrowserTest
> Task :jsNodeTest
> Task :jvmTest
> Task :linuxX64Test
> Task :wasmJsBrowserTest
> Task :wasmJsNodeTest
p
just to make sure I get it correctly: it's unexpected that Ubuntu builds and tests MinGW? AFAIK this is the default behavior (see https://kotlinlang.org/docs/multiplatform-publish-lib.html#host-requirements: "Except for Apple platform targets, Kotlin/Native supports cross-compilation, allowing any host to produce needed artifacts."), so I think it should work "out of the box"
o
it's unexpected that Ubuntu builds and tests MinGW
No, with respect to the compiler plugin tests, it is slightly different: At least one native target must build and test successfully on the platform running the test. The build won't complain if more than one or all targets succeed. Are you aware of any specific Kotlin documentation for cross compilation requirements? AFAIK macOS builds only on macOS, but I don't know what's required for mingwX64 cross compilation. It seems like the Kotlin Gradle plugin decides to skip in in the compiler plugin tests, as I could not find any build configuration to that effect.
p
Are you aware of any specific Kotlin documentation for cross compilation requirements?
no, sorry 😞
does this issue deserve a separate ticket? I just want to make sure it's tracked somewhere and we have a path forward to kotest 6 in our project
o
Sure, an issue is always a good idea. Ideally such issue would provide some insights from JB about what’s going on on the KGP side with mingwX64 and cross compilation.
p
ok, so kotest 6.0.0.M1 seems to solve the issue
👍 1