Migration from 0.10.0-grpc-188
Several things have changed in this release.
Please update your code accordingly.
Artifact names
org.jetbrains.kotlinx:kotlinx-rpc-protobuf-api was changed to org.jetbrains.kotlinx:kotlinx-rpc-protobuf-lite.
org.jetbrains.kotlinx:kotlinx-rpc-protobuf-core was changed to org.jetbrains.kotlinx:kotlinx-rpc-protobuf.
Nullability
All Protobuf messages are not nullable anymore. If the value was not set, the default will be returned. This aligns us with the core principles of Protobuf and explicit presence. However, to ensure Kotlin's nullability is still used, we provide a way to generate nullable getters.
Use rpc.protoc.buf.generate.optionalFieldOrNullGetters property for this.
Read more in the docs: https://kotlin.github.io/kotlinx-rpc/grpc-generated-code.html#grpc-optional-fields-and-clearing
Deprecated Apple Target
Apple Targets macosX64, tvosX64, and watchosX64 were removed from publication.
They are officially deprecated in Kotlin.
Other
Exception Message '<messageName>' is missing a required field: <fieldName>
is now ProtobufException instead of ProtobufDecodingException.
Changes
Features ๐
- KRPC-238: Add proto and protoImport dependency configurations to Gradle plugin by @ai-agent-kxrpc[bot] in #679
- protoc-gen: Refactor optional field generation (KRPC-262) by @Jozott00 in #644
- gRPC: Enable iOS targets for grpc-server by @mlilienberg in #741
- gRPC: Add channel-level userAgent configuration to client by @mlilienberg in #742
Breaking Changes ๐ด
- KRPC-598: Use RegularFileProperty/DirectoryProperty for buf task outputs by @ai-agent-kxrpc[bot] in #714
- Remove 2.1 Kotlin support and add 2.4 to docs by @Mr3zee in #724
- KRPC-607 Updated protobuf dependency graph to make it light by @Mr3zee in #738
Bug fixes ๐
- Fixed kotlin master builds and for-ide deps + master compat by @Mr3zee in #723
- Fix compiler plugin compatibility with Kotlin 2.4.20 by @eminasljivic in #727
- Fix getValueArgumentVS by @Mr3zee in #732
- KRPC-609 Apple OS min values by @Mr3zee in #737
- gRPC: Race condition in requests; Request flow subscription fix by @Mr3zee in #740
Infra ๐ง
Other Changes ๐งน
- Use providers.gradleProperty for Gradle plugin property lookups by @nataphon-ktsystems in #726
- Remove depraceted targets + add androidNative to core and kRPC by @Mr3zee in #731
- KRPC-620 Protobuf codegen fixes for small bugs and code smells by @Mr3zee in #733
- Update grpc, protobuf, and buf versions, supported editions 2024 by @Mr3zee in #736
- Fix logger memory leak from per-instance logger names by @nickjn92 in #734
New Contributors
- @nataphon-ktsystems made their first contribution in #726
- @mlilienberg made their first contribution in #741
Full Changelog: 0.11.0-grpc-188...0.11.0-grpc-189