Skip to content

Commit

Permalink
Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json-ok…
Browse files Browse the repository at this point in the history
…io to v1.7.2 (#1608)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[org.jetbrains.kotlinx:kotlinx-serialization-json-okio](https://togithub.com/Kotlin/kotlinx.serialization)
| dependencies | patch | `1.7.1` -> `1.7.2` |

---

> [!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-json-okio)</summary>

###
[`v1.7.2`](https://togithub.com/Kotlin/kotlinx.serialization/blob/HEAD/CHANGELOG.md#172--2024-08-28)

\==================

This release provides several new features, including a major Cbor
configuration rework.
It uses Kotlin 2.0.20 by default.

#### Cbor feature set for COSE compliance

This change brings a lot of features to the CBOR format, namely:

- Serial Labels — see `@CborLabel` annotation and
`preferCborLabelsOverNames` flag.
- Tagging of keys and values — see `encode*Tags` and `verify*Tags` set
of flags
- Definite length encoding — see `useDefiniteLengthEncoding`. This flag
affects object encoding, since decoding of arrays with definite lenghts
is automatically supported.
- Option to globally prefer major type 2 for byte array encoding — see
`alwaysUseByteString` flag.

Since there are quite a lot of flags now, they were restructured to a
separate `CborConfiguration` class, similarly to `JsonConfiguration`.
It is possible to retrieve this configuration from
`CborEncoder/CborDecoder` interfaces in your custom serializers (see
their documentation for details).

All of these features make it possible to serialize and parse
[COSE-compliant CBOR](https://datatracker.ietf.org/doc/html/rfc8152),
for example, ISO/IEC 18013-5:2021-compliant mobile driving license data.
In case you want to make use of them, there is a predefined
`Cbor.CoseCompliant` instance.
However, some canonicalization steps (such as sorting keys) still need
to be performed manually.

This functionality [was
contributed](https://togithub.com/Kotlin/kotlinx.serialization/pull/2412)
to us by [Bernd Prünster](https://togithub.com/JesusMcCloud).

#### Keeping generated serializers

One of the most requested features for serialization plugin was to
continue to generate a serializer even if a custom one is specified for
the class.
It allows using a plugin-generated serializer in a fallback or delegate
strategy, accessing type structure via descriptor, using default
serialization behavior in inheritors that do not use custom serializers.

Starting with this release, you can specify the
`@KeepGeneratedSerializer` annotation on the class declaration to
instruct the plugin to continue generating the serializer.
In this case, the serializer will be accessible using the
`.generatedSerializer()` function on the class's companion object.

> This annotation is currently experimental. Kotlin 2.0.20 or higher is
required for this feature to work.

You can check out the examples in [the
documentation](docs/serializers.md#simultaneous-use-of-plugin-generated-and-custom-serializers)
and in the PRs:
[#&#8203;2758](https://togithub.com/Kotlin/kotlinx.serialization/pull/2758),
[#&#8203;2669](https://togithub.com/Kotlin/kotlinx.serialization/pull/2669).

#### Serializer for kotlin.uuid.Uuid

Kotlin 2.0.20
[added](https://kotlinlang.org/docs/whatsnew2020.html#support-for-uuids-in-the-common-kotlin-standard-library)
a common class to represent UUIDs in a multiplatform code.
kotlinx.serialization 1.7.2 provides a corresponding `Uuid.serializer()`
for it, making it possible to use it in `@Serializable` classes.
Note that for now, serializer should be provided manually with
[`@Contextual`
annotation](https://togithub.com/Kotlin/kotlinx.serialization/blob/master/docs/serializers.md#contextual-serialization).
Plugin will be able to automatically insert `Uuid` serializer in Kotlin
2.1.0.

See more details in the [corresponding
PR](https://togithub.com/Kotlin/kotlinx.serialization/pull/2744).

#### Other bugfixes and improvements

- Prohibited using of zero and negative field numbers in ProtoNumber
([#&#8203;2766](https://togithub.com/Kotlin/kotlinx.serialization/issues/2766))
- Improve readability of protobuf decoding exception messages
([#&#8203;2768](https://togithub.com/Kotlin/kotlinx.serialization/issues/2768))
(thanks to [xiaozhikang0916](https://togithub.com/xiaozhikang0916))
- docs(serializers): Fix grammatical errors
([#&#8203;2779](https://togithub.com/Kotlin/kotlinx.serialization/issues/2779))
(thanks to [jamhour1g](https://togithub.com/jamhour1g))
- Fixed VerifyError after ProGuard optimization
([#&#8203;2728](https://togithub.com/Kotlin/kotlinx.serialization/issues/2728))
- Add wasm-wasi target to Okio integration
([#&#8203;2727](https://togithub.com/Kotlin/kotlinx.serialization/issues/2727))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguNTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
  • Loading branch information
slack-oss-bot authored Aug 29, 2024
1 parent 6aea110 commit 677736c
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ kct = "0.5.1"
kotlin = "2.0.20"
kotlinpoet = "1.18.1"
kotlinx-coroutines = "1.8.1"
kotlinx-serialization = "1.7.1"
kotlinx-serialization = "1.7.2"
ksp = "2.0.20-1.0.24"
ktfmt = "0.52"
ktor = "2.3.12"
Expand Down

0 comments on commit 677736c

Please sign in to comment.