Skip to content

Commit 97855d8

Browse files
fix(deps): update dependency org.jetbrains.kotlinx:kotlinx-serialization-core to v1.8.0 (#1762)
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.jetbrains.kotlinx:kotlinx-serialization-core](https://redirect.github.com/Kotlin/kotlinx.serialization) | `1.7.3` -> `1.8.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlinx:kotlinx-serialization-core/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlinx:kotlinx-serialization-core/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlinx:kotlinx-serialization-core/1.7.3/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlinx:kotlinx-serialization-core/1.7.3/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>Kotlin/kotlinx.serialization (org.jetbrains.kotlinx:kotlinx-serialization-core)</summary> ### [`v1.8.0`](https://redirect.github.com/Kotlin/kotlinx.serialization/blob/HEAD/CHANGELOG.md#180-RC--2024-13-10) \================== This is a release candidate for the next version. It is based on Kotlin 2.1.0 and includes a few new features, as well as bugfixes and improvements: #### `@JsonIgnoreUnknownKeys` annotation Previously, only global setting `JsonBuilder.ignoreUnknownKeys` controlled whether Json parser would throw exception if input contained a property that was not declared in a `@Serializable` class. There were [a lot of complaints](https://redirect.github.com/Kotlin/kotlinx.serialization/issues/1420) that this setting is not flexible enough. To address them, we added new `@JsonIgnoreUnknownKeys` annotation that can be applied on a per-class basis. With this annotation, it is possible to allow unknown properties for annotated classes, while general decoding methods (such as `Json.decodeFromString` and others) would still reject them for everything else. See details in the corresponding [PR](https://redirect.github.com/Kotlin/kotlinx.serialization/pull/2874). #### Stabilization of `SerialDescriptor` API and `@SealedSerializationApi` annotation `SerialDescriptor`, `SerialKind`, and related API has been around for a long time and has proven itself useful. The main reason `@ExperimentalSerializationApi` was on SerialDescriptor's properties is that we wanted to discourage people from subclassing it. Fortunately, Kotlin 2.1 provides a special mechanism for such a case — [SubclassOptInRequired](https://kotlinlang.org/docs/opt-in-requirements.html#opt-in-to-inherit-from-a-class-or-interface). New `kotlinx.serialization.SealedSerializationApi` annotation designates APIs as public for use, but closed for implementation — the case for SerialDescriptor, which is a non-sealed interface for technical reasons. Now you can use most of `SerialDescriptor` and its builders API without the need to opt-in into experimental serialization API. See the [PR](https://redirect.github.com/Kotlin/kotlinx.serialization/pull/2827) for more details. *Note*: All `SerialKind`s are stable API now, except `PolymorphicKind` — we may want to expand it in the future. #### Generate Java 8's default method implementations in interfaces **TL;DR This change ensures better binary compatibility in the future for library. You should not experience any difference from it.** kotlinx.serialization library contains a lot of interfaces with default method implementations. Historically, Kotlin compiled a synthetic `DefaultImpls` class for them. [Starting from Kotlin 1.4](https://blog.jetbrains.com/kotlin/2020/07/kotlin-1-4-m3-generating-default-methods-in-interfaces/), it was possible to compile them using as Java 8's `default` methods to ensure that new methods can still be added to interfaces without the need for implementors to recompile. To preserve binary compatibility with existing clients, a special `all-compatbility` mode is supported in compiler to generate both `default` methods and synthetic `DefaultImpls` class. Now, kotlinx.serialization finally makes use of this `all-compatibility` mode, which potentially allows us to add new methods to interfaces such as `SerialDescriptor`, `Encoder`, `Decoder`, etc., without breaking existing clients. This change is expected to have no effect on existing clients, and no action from your side is required. Note that Kotlin 2.2 plans to enable `all-compatibility` mode [by default](https://youtrack.jetbrains.com/issue/KTLC-269). #### Other bugfixes and improvements - Correctly skip structures with Cbor.ignoreUnknownKeys setting ([#&#8203;2873](https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2873)) - Handle missing system property without NPE ([#&#8203;2867](https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2867)) - Fixed keeping INSTANCE field and serializer function for serializable objects in R8 full mode ([#&#8203;2865](https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2865)) - Correctly parse invalid numbers in JsonLiteral.long and other extensions ([#&#8203;2852](https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2852)) - Correctly handle serial name conflict for different classes in SerializersModule.overwriteWith ([#&#8203;2856](https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2856)) - Add inline reified version of encodeToString as a Json member to streamline the experience for newcomers. ([#&#8203;2853](https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2853)) - Do not check kind or discriminator collisions for subclasses' polymorphic serializers if Json.classDiscriminatorMode is set to NONE ([#&#8203;2833](https://redirect.github.com/Kotlin/kotlinx.serialization/issues/2833)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/typesafegithub/github-workflows-kt). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Piotr Krzeminski <[email protected]>
1 parent b5579be commit 97855d8

File tree

2 files changed

+1
-40
lines changed

2 files changed

+1
-40
lines changed

0 commit comments

Comments
 (0)