diff --git a/CHANGELOG.md b/CHANGELOG.md index 48ca837d3..8f844438c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,36 @@ +1.6.0-RC / 2023-08-03 +================== + +This release is based on the Kotlin 1.9.0. + +### Removal of Legacy JS target +Some time ago, in Kotlin 1.8, [JS IR compiler was promoted to stable and old JS compiler was deprecated](https://kotlinlang.org/docs/whatsnew18.html#stable-js-ir-compiler-backend). +Kotlin 1.9 promotes the usage of deprecated JS compiler to an error. As a result, kotlinx.serialization no longer builds with the legacy compiler +and does not distribute artifacts for it. You can read the migration guide for JS IR compiler [here](https://kotlinlang.org/docs/js-ir-migration.html). + +Also pay attention to the fact that Kotlin/Native also has some [deprecated targets](https://kotlinlang.org/docs/native-target-support.html#deprecated-targets) +that are going to be removed in the Kotlin 1.9.20. Therefore, kotlinx.serialization 1.6.0-RC and 1.6.0 are likely the last releases that support these targets. + +### Case insensitivity for enums in Json + +This release features a new configuration flag for Json: `decodeEnumsCaseInsensitive` +that allows you to decode enum values in a case-insensitive manner. +For example, when decoding `enum class Foo { VALUE_A , VALUE_B}` both inputs `"value_a"` and `"value_A"` will yield `Foo.VALUE_A`. +You can read more about this feature in the documentation and corresponding [PR](https://github.com/Kotlin/kotlinx.serialization/pull/2345). + +### Other bugfixes and enhancements + + * Add support to decode numeric literals containing an exponent (#2227) (thanks to [Roberto Blázquez](https://github.com/xBaank)) + * Fix NoSuchMethodError related to Java 8 API compatibility (#2328, #2350) (thanks to [Björn Kautler](https://github.com/Vampire)) + * Changed actual FormatLanguage annotation for JS and Native to avoid problems with duplicating org.intellij.lang.annotations.Language (#2390, #2379) + * Fix error triggered by 'consume leading class discriminator' polymorphic parsing optimization (#2362) + * Fix runtime error with Serializer for Nothing on the JS target (#2330) (thanks to [Shreck Ye](https://github.com/ShreckYe)) + * Fix beginStructure in JsonTreeDecoder when inner structure descriptor is same as outer (#2346) (thanks to [Ugljesa Jovanovic](https://github.com/ionspin)) + * Actualize 'serializer not found' platform-specific message (#2339) + * Fixed regression with serialization using a list parametrized with contextual types (#2331) + + 1.5.1 / 2023-05-11 ================== This release contains an important Native targets overhaul, as well as numerous enhancements and bugfixes. diff --git a/README.md b/README.md index ef482728b..24bc7d007 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ [![JetBrains official project](https://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) [![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](http://www.apache.org/licenses/LICENSE-2.0) [![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) -[![Kotlin](https://img.shields.io/badge/kotlin-1.8.21-blue.svg?logo=kotlin)](http://kotlinlang.org) -[![Maven Central](https://img.shields.io/maven-central/v/org.jetbrains.kotlinx/kotlinx-serialization-core/1.5.1)](https://central.sonatype.com/artifact/org.jetbrains.kotlinx/kotlinx-serialization-core/1.5.1) +[![Kotlin](https://img.shields.io/badge/kotlin-1.9.0-blue.svg?logo=kotlin)](http://kotlinlang.org) +[![Maven Central](https://img.shields.io/maven-central/v/org.jetbrains.kotlinx/kotlinx-serialization-core/1.6.0-RC)](https://central.sonatype.com/artifact/org.jetbrains.kotlinx/kotlinx-serialization-core/1.6.0-RC) [![KDoc link](https://img.shields.io/badge/API_reference-KDoc-blue)](https://kotlinlang.org/api/kotlinx.serialization/) [![Slack channel](https://img.shields.io/badge/chat-slack-blue.svg?logo=slack)](https://kotlinlang.slack.com/messages/serialization/) @@ -92,8 +92,8 @@ Kotlin DSL: ```kotlin plugins { - kotlin("jvm") version "1.8.21" // or kotlin("multiplatform") or any other kotlin plugin - kotlin("plugin.serialization") version "1.8.21" + kotlin("jvm") version "1.9.0" // or kotlin("multiplatform") or any other kotlin plugin + kotlin("plugin.serialization") version "1.9.0" } ``` @@ -101,8 +101,8 @@ Groovy DSL: ```gradle plugins { - id 'org.jetbrains.kotlin.multiplatform' version '1.8.21' - id 'org.jetbrains.kotlin.plugin.serialization' version '1.8.21' + id 'org.jetbrains.kotlin.multiplatform' version '1.9.0' + id 'org.jetbrains.kotlin.plugin.serialization' version '1.9.0' } ``` @@ -119,7 +119,7 @@ buildscript { repositories { mavenCentral() } dependencies { - val kotlinVersion = "1.8.21" + val kotlinVersion = "1.9.0" classpath(kotlin("gradle-plugin", version = kotlinVersion)) classpath(kotlin("serialization", version = kotlinVersion)) } @@ -130,7 +130,7 @@ Groovy DSL: ```gradle buildscript { - ext.kotlin_version = '1.8.21' + ext.kotlin_version = '1.9.0' repositories { mavenCentral() } dependencies { @@ -159,7 +159,7 @@ repositories { } dependencies { - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0-RC") } ``` @@ -171,7 +171,7 @@ repositories { } dependencies { - implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1" + implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0-RC" } ``` @@ -261,8 +261,8 @@ Ensure the proper version of Kotlin and serialization version: ```xml - 1.8.21 - 1.5.1 + 1.9.0 + 1.6.0-RC ```