Skip to content

Commit e8be81f

Browse files
authored
Prepare 1.10.0-RC release
- Update to Kotlin 2.3 stable - Update artifacts.txt contents for consistency.
1 parent e334d1c commit e8be81f

File tree

7 files changed

+75
-18
lines changed

7 files changed

+75
-18
lines changed

CHANGELOG.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,61 @@
1+
1.10.0-RC / 2025-12-18
2+
==================
3+
4+
This is a release candidate for 1.10.0 based on Kotlin 2.3.0. It stabilizes a set of frequently used JSON APIs and builder options,
5+
adopts a new 'Return Value Checker' Kotlin feature, and provides a lot of improvements and bug fixes.
6+
7+
## Stabilization of APIs
8+
9+
kotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.
10+
The following APIs and configuration options are no longer experimental because they're widely used without any known major issues:
11+
12+
* `Json` configuration options: `decodeEnumsCaseInsensitive`, `allowTrailingComma`, `allowComments`, and `prettyPrintIndent`. (#3100)
13+
* `@EncodeDefault` annotation and its modes. (#3106)
14+
* `JsonUnquotedLiteral` constructor function (#2900)
15+
* `JsonPrimitive` constructor function overloads that accept unsigned types. (#3117)
16+
* JSON DSL functions on `JsonElement` with `Nothing?` overloads. (#3117)
17+
18+
## Readiness for return value checker
19+
20+
Kotlin 2.3.0 [introduces a new feature](https://kotlinlang.org/docs/whatsnew23.html#unused-return-value-checker) aimed
21+
at helping you to catch bugs related to the accidentally ignored return value of the function.
22+
kotlinx-serialization 1.10.0-RC code is fully marked for this feature, meaning that you
23+
can get warnings for unused function calls like `Json.encodeToString(...)`.
24+
To get the warnings, the feature has to be enabled in your project as [described here](https://kotlinlang.org/docs/unused-return-value-checker.html#configure-the-unused-return-value-checker).
25+
26+
## Polymorphism improvements
27+
28+
Polymorphic serialization received a couple of improvements in this release:
29+
30+
New `subclassesOfSealed` utility to automatically register sealed subclasses serializers in polymorphic modules (#2201).
31+
Use it in your `SerializersModule` when configuring a polymorphic hierarchy which contains both abstract and sealed classes.
32+
[For example](https://github.com/Kotlin/kotlinx.serialization/issues/2199), when root of your hierarchy is an `inteface`, but most of your inheritors are `sealed` classes.
33+
The new function will register all known sealed subclasses for you, so you don’t need to list them one by one.
34+
This makes writing your `SerializerModule`s much faster and simpler.
35+
Big thanks to [Paul de Vrieze](https://github.com/pdvrieze) for contributing this feature.
36+
37+
Class discriminator conflict check rework (#3105).
38+
If a payload already contains a property with the same name as the configured discriminator (for example, `type`),
39+
it is called a class discriminator conflict.
40+
To produce a correct output and allow more inputs to be deserialized at the same time, the following changes were made:
41+
* Conflicts introduced by `JsonNamingStrategy` transformations are now detected during serialization as well and will cause `SerializationException`.
42+
It also affects non-polymorphic classes.
43+
* Conflicts from `ClassDisciminatorMode.ALL_JSON_OBJECTS` and `SerializersModuleBuilder.polymorphicDefaultSerializer` are also detected.
44+
* It is allowed to deserialize such a conflicting key for both sealed and open polymorphic hierarchies.
45+
Previously, it was possible in the sealed hierarchies alone due to missing assertion. See #1664 for details.
46+
47+
## General improvements
48+
49+
* Add `.serialName` to `MissingFieldException` for clearer diagnostics. (#3114)
50+
* Generate unique `Automatic-Module-Name` entries for metadata JARs. (#3109)
51+
* Revised ProGuard rules and added R8 tests. (#3041)
52+
* CBOR: Improved error message when a byte string/array type mismatch is encountered. (#3052)
53+
54+
## Bugfixes
55+
56+
* Fix the type in the `BIGNUM_NEGATIVE` tag name. (#3090)
57+
* CBOR: Fix various bugs in the decoder implementation to be more strict and consistent with the specification.
58+
159
1.9.0 / 2025-06-27
260
==================
361

README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
[![JetBrains official project](https://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
55
[![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](http://www.apache.org/licenses/LICENSE-2.0)
66
[![TeamCity build](https://img.shields.io/teamcity/http/teamcity.jetbrains.com/s/KotlinTools_KotlinxSerialization_Ko.svg)](https://teamcity.jetbrains.com/viewType.html?buildTypeId=KotlinTools_KotlinxSerialization_Ko&guest=1)
7-
[![Kotlin](https://img.shields.io/badge/kotlin-2.2.0-blue.svg?logo=kotlin)](http://kotlinlang.org)
8-
[![Maven Central](https://img.shields.io/maven-central/v/org.jetbrains.kotlinx/kotlinx-serialization-core/1.9.0)](https://central.sonatype.com/artifact/org.jetbrains.kotlinx/kotlinx-serialization-core/1.9.0)
7+
[![Kotlin](https://img.shields.io/badge/kotlin-2.3.0-blue.svg?logo=kotlin)](http://kotlinlang.org)
8+
[![Maven Central](https://img.shields.io/maven-central/v/org.jetbrains.kotlinx/kotlinx-serialization-core/1.10.0-RC)](https://central.sonatype.com/artifact/org.jetbrains.kotlinx/kotlinx-serialization-core/1.10.0-RC)
99
[![KDoc link](https://img.shields.io/badge/API_reference-KDoc-blue)](https://kotlinlang.org/api/kotlinx.serialization/)
1010
[![Slack channel](https://img.shields.io/badge/chat-slack-blue.svg?logo=slack)](https://kotlinlang.slack.com/messages/serialization/)
1111

@@ -94,17 +94,17 @@ Kotlin DSL:
9494

9595
```kotlin
9696
plugins {
97-
kotlin("jvm") version "2.2.0" // or kotlin("multiplatform") or any other kotlin plugin
98-
kotlin("plugin.serialization") version "2.2.0"
97+
kotlin("jvm") version "2.3.0" // or kotlin("multiplatform") or any other kotlin plugin
98+
kotlin("plugin.serialization") version "2.3.0"
9999
}
100100
```
101101

102102
Groovy DSL:
103103

104104
```gradle
105105
plugins {
106-
id 'org.jetbrains.kotlin.multiplatform' version '2.2.0'
107-
id 'org.jetbrains.kotlin.plugin.serialization' version '2.2.0'
106+
id 'org.jetbrains.kotlin.multiplatform' version '2.3.0'
107+
id 'org.jetbrains.kotlin.plugin.serialization' version '2.3.0'
108108
}
109109
```
110110

@@ -122,7 +122,7 @@ buildscript {
122122
repositories { mavenCentral() }
123123

124124
dependencies {
125-
val kotlinVersion = "2.2.0"
125+
val kotlinVersion = "2.3.0"
126126
classpath(kotlin("gradle-plugin", version = kotlinVersion))
127127
classpath(kotlin("serialization", version = kotlinVersion))
128128
}
@@ -133,7 +133,7 @@ Groovy DSL:
133133

134134
```gradle
135135
buildscript {
136-
ext.kotlin_version = '2.2.0'
136+
ext.kotlin_version = '2.3.0'
137137
repositories { mavenCentral() }
138138
139139
dependencies {
@@ -163,7 +163,7 @@ repositories {
163163
}
164164

165165
dependencies {
166-
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0")
166+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.10.0-RC")
167167
}
168168
```
169169

@@ -175,7 +175,7 @@ repositories {
175175
}
176176
177177
dependencies {
178-
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0"
178+
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.10.0-RC"
179179
}
180180
```
181181

@@ -265,8 +265,8 @@ Ensure the proper version of Kotlin and serialization version:
265265

266266
```xml
267267
<properties>
268-
<kotlin.version>2.2.0</kotlin.version>
269-
<serialization.version>1.9.0</serialization.version>
268+
<kotlin.version>2.3.0</kotlin.version>
269+
<serialization.version>1.10.0-RC</serialization.version>
270270
</properties>
271271
```
272272

RELEASING.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,7 @@ If review is not required, commit directly to `dev`.
3737
* On 'Changes' tab, select `dev` branch and corresponding commit.
3838
* On 'Parameters' tab, find 'Deploy version' and fill in with `<version>`.
3939

40-
4. In [Sonatype](https://oss.sonatype.org/#stagingRepositories) admin interface:
41-
* Close the repository and wait for it to verify.
42-
* Release it.
40+
4. !Temporary! Ask the owner of Maven Central access credentials to publish artifacts on Maven Central.
4341

4442
5. Set a new value for [`KOTLINX_SERIALIZATION_RELEASE_TAG`](https://github.com/JetBrains/kotlin-web-site/blob/master/.teamcity/BuildParams.kt),
4543
creating a pull request in the website's repository. To find out why it is needed, [read this](#kotlinxserializationreleasetag).

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ version=1.10.0-SNAPSHOT
77
jdk_toolchain_version=11
88

99
# This version takes precedence if 'bootstrap' property passed to project
10-
kotlin.version.snapshot=2.2.255-SNAPSHOT
10+
kotlin.version.snapshot=2.3.255-SNAPSHOT
1111
# Also set kotlin.native.home to your $kotlin_project$/kotlin-native/dist if you want to use snapshot Native
1212
#kotlin.native.home=
1313

gradle/artifacts.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ kotlinx-serialization-json-okio-wasm-js
112112
kotlinx-serialization-json-okio-wasm-wasi
113113
kotlinx-serialization-json-okio-watchosarm32
114114
kotlinx-serialization-json-okio-watchosarm64
115+
kotlinx-serialization-json-okio-watchosdevicearm64
115116
kotlinx-serialization-json-okio-watchossimulatorarm64
116117
kotlinx-serialization-json-okio-watchosx64
117118
kotlinx-serialization-json-tvosarm64

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[versions]
2-
kotlin = "2.3.0-Beta2"
2+
kotlin = "2.3.0"
33
kover = "0.8.2"
44
dokka = "2.0.0"
55
knit = "0.5.0"

integration-test/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Copyright 2017-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
33
#
44

5-
mainKotlinVersion=2.3.0-Beta2
5+
mainKotlinVersion=2.3.0
66
mainLibVersion=1.10.0-SNAPSHOT
77

88
kotlin.code.style=official

0 commit comments

Comments
 (0)