rinchinov / ij-dbt-plugin

intelllij Idea plugin for DBT
https://plugins.jetbrains.com/plugin/23789-dbt
GNU General Public License v3.0
14 stars 1 forks source link

Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.7.1 to 1.7.2 #107

Closed dependabot[bot] closed 2 weeks ago

dependabot[bot] commented 2 weeks ago

⚠️ Dependabot is rebasing this PR ⚠️

Rebasing might not happen immediately, so don't worry if this takes some time.

Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


Bumps org.jetbrains.kotlinx:kotlinx-serialization-json from 1.7.1 to 1.7.2.

Release notes

Sourced from org.jetbrains.kotlinx:kotlinx-serialization-json's releases.

1.7.2

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, 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 to us by Bernd Prünster.

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 and in the PRs: #2758, #2669.

Serializer for kotlin.uuid.Uuid

Kotlin 2.0.20 added 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. Plugin will be able to automatically insert Uuid serializer in Kotlin 2.1.0.

See more details in the corresponding PR.

Other bugfixes and improvements

  • Prohibited using of zero and negative field numbers in ProtoNumber (#2766)
  • Improve readability of protobuf decoding exception messages (#2768) (thanks to xiaozhikang0916)
  • docs(serializers): Fix grammatical errors (#2779) (thanks to jamhour1g)
  • Fixed VerifyError after ProGuard optimization (#2728)
  • Add wasm-wasi target to Okio integration (#2727)
Changelog

Sourced from org.jetbrains.kotlinx:kotlinx-serialization-json's changelog.

1.7.2 / 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, 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 to us by Bernd Prünster.

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 and in the PRs: #2758, #2669.

Serializer for kotlin.uuid.Uuid

Kotlin 2.0.20 added 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. Plugin will be able to automatically insert Uuid serializer in Kotlin 2.1.0.

See more details in the corresponding PR.

Other bugfixes and improvements

  • Prohibited using of zero and negative field numbers in ProtoNumber (#2766)
  • Improve readability of protobuf decoding exception messages (#2768) (thanks to xiaozhikang0916)
  • docs(serializers): Fix grammatical errors (#2779) (thanks to jamhour1g)

... (truncated)

Commits
  • 8c84a5b Prepare 1.7.2 release (#2798)
  • b3cfe56 Merge remote-tracking branch 'origin/master' into dev
  • 550e1a8 Rework opt-ins in build scripts (#2794)
  • e4fa8a3 Update Annotations.kt, fixed typo: RgpPixel -> RgbPixel (#2793)
  • 62aa4bb Add serializer for kotlin.uuid.Uuid (#2744)
  • 4646740 Prohibited using of zero and negative filed number in ProtoNumber and zero fi...
  • 4ca05dd Update Kotlin to 2.0.20 (#2792)
  • 35a9edc Migrate from kotlinOptions to compilerOptions (#2746)
  • 0b5145c Improve readability of protobuf decoding exception messages (#2768)
  • b931598 Remove redundant toString() (#2790)
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
github-actions[bot] commented 2 weeks ago

Qodana Community for JVM

32 new problems were found

Inspection name Severity Problems
Unused symbol 🔶 Warning 5
Unused import directive 🔶 Warning 3
Constant conditions 🔶 Warning 2
Usage of redundant or deprecated syntax or deprecated symbols 🔶 Warning 2
Redundant nullable return type 🔶 Warning 1
Useless call on not-null type 🔶 Warning 1
Accessor call that can be replaced with property access syntax ◽️ Notice 3
Sealed subclass without state and overridden equals ◽️ Notice 2
Function or property has platform type ◽️ Notice 2
Class member can have 'private' visibility ◽️ Notice 2
Property naming convention ◽️ Notice 2
Redundant empty primary constructor ◽️ Notice 2
Unnecessary type argument ◽️ Notice 2
'when' that can be simplified by introducing an argument ◽️ Notice 1
Package name does not match containing directory ◽️ Notice 1
Unnecessary local variable ◽️ Notice 1

💡 Qodana analysis was run in the pull request mode: only the changed files were checked

View the detailed Qodana report To be able to view the detailed Qodana report, you can either: - Register at [Qodana Cloud](https://qodana.cloud/) and [configure the action](https://github.com/jetbrains/qodana-action#qodana-cloud) - Use [GitHub Code Scanning with Qodana](https://github.com/jetbrains/qodana-action#github-code-scanning) - Host [Qodana report at GitHub Pages](https://github.com/JetBrains/qodana-action/blob/3a8e25f5caad8d8b01c1435f1ef7b19fe8b039a0/README.md#github-pages) - Inspect and use `qodana.sarif.json` (see [the Qodana SARIF format](https://www.jetbrains.com/help/qodana/qodana-sarif-output.html#Report+structure) for details) To get `*.log` files or any other Qodana artifacts, run the action with `upload-result` option set to `true`, so that the action will upload the files as the job artifacts: ```yaml - name: 'Qodana Scan' uses: JetBrains/qodana-action@v2024.1.9 with: upload-result: true ```
Contact Qodana team Contact us at [qodana-support@jetbrains.com](mailto:qodana-support@jetbrains.com) - Or via our issue tracker: https://jb.gg/qodana-issue - Or share your feedback: https://jb.gg/qodana-discussions