New: Add 'nameSuffix' parameter for configuring generated service-class names in Kotlin.
New: Define oneofName in @WireField.
New: Enable iosSimulatorArm64 for Kotlin multiplatform.
New: Expose the source .proto file at ProtoAdaper.sourceFile. This is null for built-in types
and types generated prior to this release.
New: Generate Kotlin code whose members match the declaration order of the corresponding .proto
files. In previous releases, generated members were sorted by kind (fields, oneofs), then by
declaration order. With this update only declaration order is used. Note that this will change
the encoded-bytes of these messages. This change is both forwards and backwards-compatible.
Identical encoding of equal messages across Wire releases is typical but not guaranteed, and this
is a rare release that changes that encoding. If you do cryptographic hashes on encoded proto
messages, you will notice that the hashes are different in this release.
New: Option in SchemaLoader to exhaustively load imported files. By default we only load what's
immediately necessary to generate code; this new option loads everything reachable into the
schema.
New: Programmatic API to prune schemas. See Pruner in wire-schema.
New: SchemaLoader doesn't extend the Closeable interface anymore.
New: Support rpcRole = 'none' in the Gradle plugin to generate neither client nor server code.
New: Support for Android variants.
New: Support for glob syntax in srcJar includes.
New: Support for special float literals.
New: Swift support Timestamp and Duration.
New: The Wire plugin requires an output to be set. Before, it would generate Java code by
default; it will now throw if there are no [output][wire-customizing-output] defined.
New: The default value of emitAppliedOptions for our Java and Kotlin target is now set to true.
New: Wire should build and execute properly on Windows.
New: @WireRpc has a new sourceFile attribute.
New: GrpcClient.Builder.minMessageToCompress() configures which messages are compressed. This
will completely disable compression if the size is Long.MAX_VALUE. We've seen problems where
some Golang gRPC servers don't support compression; setting this to MAX_VALUE is necessary to
interop with them.
New: SchemaReflector is our initial implementation of the
[gRPC Server Reflection Protocol][reflect]. Note that although we implement the business logic of
gRPC reflection, we don't offer a gRPC server built into Wire.
New: wire-reflector bundles gRPC's reflection.proto which it is built upon.
New: wire-runtime exposes a com.squareup.wire.VERSION constant reflecting the project version.
New: change the Gradle plugin so that (unstable) custom handlers can be configured with instance
instead of with a class name.
Fix: Be more aggressive about loading transitive files with SchemaLoader.loadExhaustively.
Fix: Bugs in JSON serialization of builder-less Kotlin types have been addressed.
Fix: Compile Kotlin/JS with both LEGACY and IR compilers.
Fix: Deep copy metadata on GrpcCall.clone().
Fix: Don't break task caching by using absolute paths in the Gradle plugin. Wire now uses
project-relative paths in any attribute that is used as a cache key.
Fix: Don't crash encoding schemas when an option contains a repeated field, an enum, or a double.
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 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)
Bumps wire-gradle-plugin from 3.7.1 to 4.0.0.
Changelog
Sourced from wire-gradle-plugin's changelog.
... (truncated)
Commits
d31d7d4
Prepare for release 4.0.0.35b0213
Properly inject version generating task (#2165)aa2941b
feat: Keeping schema format when options are defined as list of enums (#2148)299f5ef
Expose version in wire-runtime (#2163)199f865
Remove jar signing requirements when we don't publish (#2160)ea199fb
Require a target to be set. (#2162)db37b5c
Fix WirePluginTest on Windows (#2154)d50fe3f
Handle out of order proto fields when initializing Kotlin constructor (#2156)535bded
Change default of emitAppliedOptions to true (#2151)e45a91e
Merge pull request #2155 from square/egorand/211125/json-is-gettersDependabot 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 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)