:loudspeaker: <https://blog.jetbrains.com/kotlin/2...
# announcements
a
πŸ“’ The Kotlin 2.0.20 release is out! This version includes performance improvements and bug fixes for Kotlin 2.0.0, where we announced the Kotlin K2 compiler as Stable. The release highlights include: βœ… The data class copy function will have the same visibility as the constructor βœ… Static accessors for source sets from the default target hierarchy are now available in multiplatform projects βœ… Concurrent marking for Kotlin/Native has been made possible in the garbage collector βœ… The ExperimentalWasmDsl annotation in Kotlin/Wasm has a new location βœ… Support has been added for Gradle versions 8.6–8.8 βœ… A new option allows sharing JVM artifacts between Gradle projects as class files βœ… The Compose compiler has been updated βœ… Support for UUIDs has been added to the common Kotlin Standard Library πŸ”— Learn more
K 13
pepe clap 9
K 59
πŸŽ‰ 83
m
Support for UUIDs has been added to the common Kotlin Standard Library
πŸ™ŒπŸ»
πŸ™ŒπŸΎ 2
πŸ™ŒπŸ½ 1
πŸ™Œ 33
e
The @ExperimentalWasmDsl annotation in Kotlin/Wasm has a new location
How is this a highlight? What benefit is there to this? To me all it means is that instead of a simple update I now have to change an import in 20 different projects in order to update to 2.0.20
βž• 5
s
I agree that highlight is wrong. It should be listed as a migration hint.
e
It probably shouldn't have happened at all. It's an experimental annotation, just let it have a weird package name until it isn't experimental anymore.
βž• 8
l
Leverage cmd/ctrl+shift+R + doing optimize imports on the whole project, and your life will be easier.
πŸ™‚ 1
e
The issue is that I have ~20 projects that I need to update, which means opening each project, fixing the issue, committing, pushing, etc...
s
@eygraber why you need to update it if those are working fine πŸ˜‚
e
Because they're now deprecated, and I have
allWarningsAsErrors
enabled, which fails my build.
πŸ‘ 3
s
There are also tools like Dependabot that can update your dependencies automatically. But this won't work if there are breaking changes like these.
βž• 1
m
My understanding of experimental is that if I'm using smth that is experimental I'm aware of the fact that its API isn't stable yet and it can change (or even disappear) with every update possibly. Can't really understand the complaints, can someone explain it to me? :)
e
If there was actual value in doing it, that's fine. But to break builds for the sake of having a better package for a temporary annotation, that's not fine. Also there isn't an experimental annotation on the experimental annotation 🧌
n
I cannot update to 2.0.20 from 2.0.10 because of this hidden BASE64 change: https://youtrack.jetbrains.com/issue/KT-69846 Either I use some other BASE64 implementation or I switch to language level 2 which already contains the withoutPadding() function. But migrating to language level 2 seems to be difficult for various KSP-related problems, so currently I'm stuck at 2.0.10 with language level 1.9.
g
Hi, I'm building a lib. When switching to 2.0.20 when compiling the lib, It's not possible anymore to use it. I got this error when using the library
Required version must not be null
(after
PublishToMavenLocal
) from the POM file. Here is the diff for the generated pom file - with the 2.0.10 version I had:
Copy code
<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-bom</artifactId>
        <version>2.0.10</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
Now when compiling with 2.0.20 I have (triggering the
Required version must not be null
error)
Copy code
<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-bom</artifactId>
        <version>2.0.20</version>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-bom</artifactId>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
i
@Gilles Barbier Could you create an issue, please - kotl.in/issue?
πŸ‘ 1
c
i'm really glad the context-receivers do not have some special (never used in another place) syntax