Skip to content
This repository has been archived by the owner on Jul 4, 2024. It is now read-only.

Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.7.1 #10

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Mar 22, 2021

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
org.jetbrains.kotlinx:kotlinx-serialization-json 1.0.1 -> 1.7.1 age adoption passing confidence

Release Notes

Kotlin/kotlinx.serialization (org.jetbrains.kotlinx:kotlinx-serialization-json)

v1.7.1

v1.7.0

==================

This release contains all of the changes from 1.7.0-RC and is compatible with Kotlin 2.0.
Please note that for reasons explained in the 1.7.0-RC changelog, it may not be possible to use it with the Kotlin 1.9.x
compiler plugin. Yet, it is still fully backwards compatible with previous versions.

The only difference with 1.7.0-RC is that classDiscriminatorMode property in JsonBuilder is marked as experimental,
as it should have been when it was introduced (#​2680).

v1.6.3

==================

This release provides a couple of new features and uses Kotlin 1.9.22 as default.

Class discriminator output mode

Class discriminator provides information for serializing and deserializing polymorphic class hierarchies.
In case you want to encode more or less information for various third party APIs about types in the output, it is possible to control
addition of the class discriminator with the JsonBuilder.classDiscriminatorMode property.
For example, ClassDiscriminatorMode.NONE does not add class discriminator at all, in case the receiving party is not interested in Kotlin types.
You can learn more about this feature in the documentation and corresponding PR.

Other features
Bugfixes and improvements
  • Fix: Hocon polymorphic serialization in containers (#​2151) (thanks to LichtHund)
  • Actualize lenient mode documentation (#​2568)
  • Slightly improve error messages thrown from serializer() function (#​2533)
  • Do not try to coerce input values for properties (#​2530)
  • Make empty objects and arrays collapsed in pretty print mode (#​2506)
  • Update Gradle dokka configuration to make sure "source" button is visible in all API docs (#​2518, #​2524)

v1.6.2

v1.6.1

==================

This release uses Kotlin 1.9.20 by default, while upcoming 1.9.21 is also supported.

Trailing commas in Json

Trailing commas are one of the most popular non-spec Json variations.
A new configuration flag, allowTrailingComma, makes Json parser accept them instead of throwing an exception.
Note that it does not affect encoding, so kotlinx.serialization always produces Json without trailing commas.
See details in the corresponding PR

Support of WasmJs target

Kotlin/Wasm has been experimental for some time and gained enough maturity to be added to the kotlinx libraries.
Starting with 1.6.1, kotlinx.serialization provides a wasm-js flavor, so your projects with Kotlin/Wasm can have even more
functionality.
As usual, just add serialization dependencies to your build
and declare wasmJs target.
Please remember that Kotlin/Wasm is still experimental, so changes are expected.

Bugfixes and improvements

v1.6.0

==================

This release contains all features and bugfixes from 1.6.0-RC plus some bugfixes on its own (see below).
Kotlin 1.9.0 is used as a default, while 1.9.10 is also supported.

Bugfixes

v1.5.1

==================
This release contains an important Native targets overhaul, as well as numerous enhancements and bugfixes.
Kotlin 1.8.21 is used by default.

New set of Native targets

The official Kotlin target support policy has recently been published
describing new target policy: each target belongs to a certain tier, and different tiers have different stability guarantees.
The official recommendation for library authors is to support targets up to Tier 3,
and kotlinx.serialization now follows it.
It means that in this release, there are a lot of new targets added from this tier,
such as androidNativeX86 or watchosDeviceArm64.
Note that since they belong to Tier 3, they're not auto-tested on CI.

kotlinx.serialization also ships some deprecated Kotlin/Native targets that do not belong to any tier (e.g. iosArm32, mingwX86).
We'll continue to release them, but we do not provide support for them, nor do we plan to add new targets from the deprecated list.

Improvements in Json elements

There are two new function sets that should make creating raw Json elements easier.
First one contains overloads for JsonPrimitive constructor-like function
that accept unsigned types: JsonPrimitive(1u).
Second one adds new addAll functions to JsonArrayBuilder to be used with collections
of numbers, booleans or strings: buildJsonArray { addAll(listOf(1, 2, 3)) }
Both were contributed to us by aSemy.

Other enhancements
  • Potential source-breaking change: Rename json-okio target variables to sink (#​2226)
  • Function to retrieve KSerializer by KClass and type arguments serializers (#​2291)
  • Added FormatLanguage annotation to Json methods (#​2234)
  • Properties Format: Support sealed/polymorphic classes as class properties (#​2255)
Bugfixes
  • KeyValueSerializer: Fix missing call to endStructure() (#​2272)
  • ObjectSerializer: Respect sequential decoding (#​2273)
  • Fix value class encoding in various corner cases (#​2242)
  • Fix incorrect json decoding iterator's .hasNext() behavior on array-wrapped inputs (#​2268)
  • Fix memory leak caused by invalid KTypeWrapper's equals method (#​2274)
  • Fixed NoSuchMethodError when parsing a JSON stream on Java 8 (#​2219)
  • Fix MissingFieldException duplication (#​2213)

v1.5.0

==================

This release contains all features and bugfixes from 1.5.0-RC plus some experimental features and bugfixes on its own (see below).
Kotlin 1.8.10 is used as a default.

HoconEncoder and HoconDecoder interfaces and HOCON-specific serializers

These interfaces work in a way similar to JsonEncoder and JsonDecoder: they allow intercepting (de)serialization process,
making writing if custom HOCON-specific serializers easier. New ConfigMemorySizeSerializer and JavaDurationSerializer already make use of them.
See more details in the PR.
Big thanks to Alexander Mikhailov for contributing this!

Ability to read buffered huge strings in custom Json deserializers

New interface ChunkedDecoder allows you to read huge strings that may not fit in memory by chunks.
Currently, this interface is only implemented by Json decoder that works with strings and streams,
but we may expand it later, if there's a demand for it.
See more details in the PR authored by Alexey Sviridov.

Bugfixes
  • Improve runtime exceptions messages (#​2180)
  • Added support for null values for nullable enums in lenient mode (#​2176)
  • Prevent class loaders from leaking when using ClassValue cache (#​2175)

v1.4.1

==================

This is patch release contains several bugfixes and improvements.
Kotlin 1.7.20 is used by default.

Improvements
  • Add @​MustBeDocumented to certain annotations (#​2059)
  • Deprecate .isNullable in SerialDescriptor builder (#​2040)
  • Unsigned primitives and unsigned arrays serializers can be retrieved as built-ins (#​1992)
  • Serializers are now cached inside reflective lookup, leading to faster serializer retrieval (#​2015)
  • Compiler plugin can create enum serializers using static factories for better speed (#​1851) (Kotlin 1.7.20 required)
  • Provide foundation for compiler plugin intrinsics available in Kotlin 1.8.0 (#​2031)
Bugfixes

v1.4.0

==================

This release contains all features and bugfixes from 1.4.0-RC plus some bugfixes on its own (see below).
Kotlin 1.7.10 is used as a default.

Bugfixes
  • Fixed decoding of huge JSON data for okio streams (#​2006)

v1.3.3

==================

This release contains support for Protocol Buffers packed fields, as well as several bugfixes.
It uses Kotlin 1.6.21 by default.

Protobuf packed fields

It is now possible to encode and decode Kotlin classes to/from Protobuf messages with packed repeated fields.
To mark the field as packed, use @ProtoPacked annotation on it.
Note it affects only List and primitive collection such as IntArray types.
With this feature, it is now possible to decode Proto3 messages, where all repeated fields are packed by default.
Protobuf schema generator also supports new @ProtoPacked annotation.

Many thanks to Paul de Vrieze for his valuable contribution!

Other improvements & small features
  • Incorporate JsonPath into exception messages (#​1841)
  • Mark block in corresponding encodeStructure/decodeStructure extensions as crossinline to reduce amount of bytecode (#​1917)
  • Support serialization of compile-time Collection<E> properties that are not lists at the runtime (#​1821)
  • Best-effort kotlin reflect avoidance in serializer(Type) (#​1819)
Bugfixes
  • Iterate over element indices in ObjectSerializer in order to let the format skip unknown keys (#​1916)
  • Correctly support registering both default polymorphic serializer & deserializer (#​1849)
  • Make error message for captured generic type parameters much more straightforward (#​1863)

v1.3.2

==================

This release contains several features and bugfixes for core API as well as for HOCON format.
It uses Kotlin 1.6.10 by default.

Serializing objects to HOCON

It's now possible to encode Kotlin objects to Config values with new Hocon.encodeToConfig function.
This feature may help edit existing configs inside Kotlin program or generate new ones.

Big thanks to Osip Fatkullin for implementing this.

Polymorphic default serializers

As of now, polymorphicDefault clause inside SerializersModule { } builder specifies a
fallback serializer to be used only during deserialization process. A new function has been introduced to allow setting
fallback serializer for serialization: polymorphicDefaultSerializer.
This function should ease serializing vast hierarchies of third-party or Java classes.

Note that there are two new experimental functions, polymorphicDefaultSerializer and polymorphicDefaultDeserializer.
To avoid naming confusion, we are going to deprecate polymorphicDefault in favor of polymorphicDefaultDeserializer in the next minor release (1.4.0).

Credit for the PR goes to our contributor Joseph Burton.

Other improvements
Bugfixes
  • Properly handle top-level value classes in encodeToJsonElement (#​1777)
  • Fix incorrect handling of object end when JsonTreeReader (JsonElement) is used with decodeToSequence (#​1782)

v1.3.1

==================

This release mainly contains bugfixes for 1.3.0 and provides new experimental Json.decodeToSequence function.

Improvements
  • Provide decodeToSequence to read multiple objects from stream lazily (#​1691)
Bugfixes
  • Correctly handle buffer boundaries while decoding escape sequences from json stream (#​1706)
  • Properly skip unknown keys for objects and structures with zero properties (#​1720)
  • Fix merging for maplikeSerializer when the map is not empty (by using the actual size * 2). (#​1712) (thanks to pdvrieze)
  • Fix lookup of primitive array serializers by Java type token (#​1708)

v1.3.0

==================

This release contains all of the cool new features from 1.3.0-RC (see below) as well as minor improvements.
It uses Kotlin 1.5.31 by default.

Bugfixes and improvements
  • Promote JsonConfiguration and its usages to stable (#​1690)
  • Remove opt-in annotations from SerialFormat, StringFormat, BinaryFormat (#​1688)
  • Correctly throw SerializationException instead of IOOBE for some cases with EOF in streams (#​1677)
  • CBOR: ignore tags when reading (#​1614) (thanks to David Robertson)

v1.2.2

==================

This release contains various bugfixes, some useful features and important performance improvements.
It also uses Kotlin 1.5.20 as default.

Features
  • Support for @JsonNames and coerceInputValues in Json.decodeFromDynamic (#​1479)
  • Add factory function to wrap a serial descriptor with a custom name for custom delegating serializers (#​1547) (thanks to Fadenfire)
  • Allow contextually serialized types to be used as map keys in Json (#​1552) (thanks to pdvrieze)
Bugfixes and performance improvements
  • Update size in JsonStringBuilder slow-path to avoid excessive array-copies for large strings with escape symbols (#​1491)
  • Optimize integer encoding length in CBOR (#​1570) (thanks to davertay)
  • Throw JsonDecodingException instead of ClassCastException during unexpected null in TreeJsonDecoder (#​1550)
  • Prohibit 'null' strings in lenient mode in order to get rid of 'null' and "null" ambiguity (#​1549)
  • Avoid usage of reflective-like serialDescriptor<KType> in production sources (#​1540)
  • Added correct error message when deserializing missing enum member for Properties format (#​1539)
  • Make DescriptorSchemaCache in Json thread-local on Native (#​1484)

v1.2.1

==================

This release mainly contains bugfixes for various issues, including important broken thread-safety and improper encoding.

Features
  • Added support for nullable values, nested and empty collections in protobuf (#​1430)
Bugfixes
  • Support @​JsonNames for enum values (#​1473)
  • Handle EOF in skipElement correctly (#​1475)
  • Allow using value classes with primitive carriers as map keys (#​1470)
  • Read JsonNull only for non-string literals in JsonTreeReader (#​1466)
  • Properly reuse JsonStringBuilders in CharArrayPool (#​1455)
  • Properly ensure capacity of the string builder on the append slow-path (#​1441)

v1.2.0

==================

This release has some known critical bugs, so we advise to use 1.2.1 instead.

This release contains a lot of new features and important improvements listed below;
Kotlin 1.5.0 is used as a default compiler and language version.

JSON performance improvements

JSON encoder and decoder were revisited and significantly rewritten,
which lead us to up to 2-3x times speedup in certain cases.
Additional details can be found in the corresponding issues: [1], [2].

Ability to specify alternative names during JSON decoding

The one of the most voted issues is fixed now — it is possible to specify multiple names for one property
using new @JsonNames annotation.
Unlike @SerialName, it only affects JSON decoding, so it is useful when dealing with different versions of the API.
We've prepared a documentation for you about it.

JsonConfiguration in public API

JsonConfiguration is exposed as a property of Json instance. You can use it to adjust behavior in
your custom serializers.
Check out more in the corresponding issue and the PR.

Generator for .proto files based on serializable Kotlin classes

Our implementation of Protocol Buffers format uses @Serializable Kotlin classes as a source of schema.
This is very convenient for Kotlin-to-Kotlin communication, but makes interoperability between languages complicated.
To resolve this issue, we now have a
schema generator that can produce .proto files out of Kotlin classes. Using it, you can keep Kotlin
classes as a source of truth and use traditional protoc compilers for other languages at the same time.
To learn more, check out the documentation for the new ProtoBufSchemaGenerator class or
visit the corresponding PR.

Note: this generator is on its experimental stage and any feedback is very welcomed.

Contextual serialization of generic classes

Before 1.2.0, it was impossible to register context serializer for generic class,
because contextual function accepted a single serializer.
Now it is possible to register a provider — lambda that allows to construct a serializer for generic class
out of its type arguments serializers. See the details in the documentation.

Other features
  • Support for watchosX64 target (#​1366).
  • Introduce kotlinx-serialization-bom (#​1356).
  • Support serializer on JS IR when T is an interface (#​1431).
Bugfixes
  • Fix serializer lookup by KType for third party classes (#​1397) (thanks to mvdbos).
  • Fix inability to encode/decode inline class with string to JsonElement (#​1408).
  • Throw SerializationException instead of AIOB in ProtoBuf (#​1373).
  • Fix numeric overflow in JsonLexer (#​1367) (thanks to EdwarDDay).

v1.1.0

==================

This release contains all features and bugfixes from 1.1.0-RC plus an additional fix for incorrect exception type
(#​1325 — Throw SerializationException instead of IllegalStateException in EnumSerializer) and uses release version of Kotlin 1.4.30.

In the light of JCenter shutdown, starting from 1.1.0-RC and now on,
all new releases of kotlinx.serialization are published directly to Maven Central and therefore are not available in https://kotlin.bintray.com/kotlinx/ repository.
We suggest you to remove jcenter() and other kotlin bintray repositories from your buildscripts and to use mavenCentral() repository instead.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot added dependencies Pull requests that update a dependency file renovate labels Mar 22, 2021
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from 4fa3e99 to ad76dc3 Compare March 24, 2021 15:46
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from ad76dc3 to ce950d7 Compare April 26, 2021 19:07
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.1.0 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.2.0 Apr 26, 2021
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from ce950d7 to 59b8604 Compare May 13, 2021 20:19
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.2.0 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.2.1 May 13, 2021
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from 59b8604 to 160ad71 Compare October 20, 2021 05:23
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.2.1 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.3.0 Oct 20, 2021
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from 160ad71 to c2e23b0 Compare March 7, 2022 14:57
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.3.0 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.3.2 Mar 7, 2022
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.3.2 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.3.3 May 15, 2022
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from c2e23b0 to 2c38219 Compare May 15, 2022 20:45
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from 2c38219 to b849d71 Compare September 25, 2022 15:09
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.3.3 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.4.0 Sep 25, 2022
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from b849d71 to e02cc96 Compare November 20, 2022 17:48
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.4.0 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.4.1 Nov 20, 2022
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.4.1 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.5.0 Mar 16, 2023
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from e02cc96 to 53ed4c3 Compare March 16, 2023 11:44
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.5.0 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.5.1 May 28, 2023
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from 53ed4c3 to d74ce4e Compare May 28, 2023 15:55
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.5.1 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.6.0 Aug 23, 2023
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from d74ce4e to b447241 Compare August 23, 2023 00:01
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.6.0 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.6.1 Nov 16, 2023
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from b447241 to a33f904 Compare November 16, 2023 02:54
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from a33f904 to f0de506 Compare November 30, 2023 20:21
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.6.1 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.6.2 Nov 30, 2023
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from f0de506 to 99b635e Compare February 17, 2024 08:58
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.6.2 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.6.3 Feb 17, 2024
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.6.3 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.7.0 Jun 6, 2024
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from 99b635e to 8de9bf6 Compare June 6, 2024 14:25
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x branch from 8de9bf6 to dcf0816 Compare June 26, 2024 11:35
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.7.0 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.7.1 Jun 26, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
dependencies Pull requests that update a dependency file renovate
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants