Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependency com.squareup.wire:wire-runtime to v5 #4192

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 15, 2024

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
com.squareup.wire:wire-runtime 2.2.0 -> 5.0.0 age adoption passing confidence

Release Notes

square/wire (com.squareup.wire:wire-runtime)

v5.0.0

Compare Source

2024-07-15

Common
  • Prevent conflicts for options of different types but with similar names (#​3005)
  • Support all Gradle entries for file collections (#​2946)
    • srcDir(String) has been deprecated in favor of srcDir(Any) which better leverages Gradle to
      handle dependencies.

v4.9.9

Compare Source

2024-04-02

Common
  • Backport JSON serialization for Android SDK below 26 (#​2881 by [Damian Wieczorek][damianw])

v4.9.8

Compare Source

2024-03-18

Common
  • Retain imports for types used in maps (#​2864)

v4.9.7

Compare Source

2024-02-12

Common
  • Support all struct types for JSON encoding (#​2824 by [Arnaud Frugier][quanturium])

v4.9.6

Compare Source

2024-02-02

Common
  • Add public dependencies when encoding the schema (#​2801 by [Michael Peyper][mpeyper])
Kotlin
  • Fix RealGrpcCall timeout (#​2816 by [Jeff Gulbronson][JGulbronson])

v4.9.5

Compare Source

2024-01-27

Common
  • Fix over pruning imports when only option types are being extended in a file (#​2800 by [Michael Peyper][mpeyper])

v4.9.4

Compare Source

2024-01-26

Common
  • Added linuxArm64 target to wire-runtime module (#​2733 by [Shay Oinif][ShayOinif])
  • Add ProtoReader API for length-delimited stream reads (#​2747 by [Jake Wharton][JakeWharton])
    • You can now call ProtoReader#nextLengthDelimited to read and return the length of the next message in a length-delimited stream.
  • Ensure ConsoleWireLogger does not print anything if in quiet mode (#​2754 by [Dimitris Koutsogiorgas][dnkoutso])
  • Provide a built in public EmptyWireLoggerFactory class (#​2776 by [Dimitris Koutsogiorgas][dnkoutso])
  • Stop logging includes and excludes (#​2777)
  • Implement equals/hash for Duration and Instant on native and JS (#​2781)
  • Prune imports no longer used by retained entities in the schema (#​2797 by [Michael Peyper][mpeyper])
Kotlin
  • Generate Grpc SERVICE_NAME as const (#​2773 by [Marius Volkhart][MariusVolkhart])
  • Use %N in KotlinGenerator to ensure names are escaped (#​2784 by [Egor Andreevich][Egorand])
  • Add escapeKotlinKeywords parameter to Kotlin target (#​2785 by [Egor Andreevich][Egorand])
    • You can now set escapeKotlinKeywords = true within our kotlin {} targets to escape Kotlin keywords with backticks rather than having them suffixed with an _.
  • Don't retransmit a PipeDuplexRequestBody (#​2791)
    • We had crashes that occurred when OkHttp attempted to retry sending the request body of a gRPC streaming connection.
Swift
  • Remove deprecated cruft (#​2721 by [Adam Lickel][lickel])
  • Always qualify names for types that conflict with common Swift types (#​2764 by [Dimitris Koutsogiorgas][dnkoutso])
  • Fix edge case for heap based messages using a redacted description field (#​2772 by [Dimitris Koutsogiorgas][dnkoutso])
  • Change unknownFields type to [UInt32: Data] from just Data. (#​2789 by [Dimitris Koutsogiorgas][dnkoutso])
  • Introduce a ProtoExtensible protocol that all messages that have been extended conform to. (#​2790 by [Dimitris Koutsogiorgas][dnkoutso])
Announcement

Wire 5.0 is happening soon. This will happen:

  • SchemaHandler.Factory#create() will be removed. Override its counterpart for painless migration SchemaHandler.Factory#create(includes: List<String>, excludes: List<String>, exclusive: Boolean, outDirectory: String, options: Map<String, String>).
  • The module wire-grpc-server will be extracted into its own repository: https://github.com/square/wire-grpc-server/
    • Here is how one should migrate: // TODO

v4.9.3

Compare Source

2023-11-23

  • Breaking: Encoding and decoding of negative Int32s was broken in Swift and did not match protobuf spec.
    Negative Int32s are now correctly encoded as unsigned Int64s. Prior versions of Wire that have
    serialized a proto containing negative Int32 fields will not be correctly decoded using this
    version onwards.
  • Fix: Swift ProtoDefaulted was incorrectly applied in cross-module contexts
  • Fix: Message's Builder won't break compilation on multiplatform projects.
  • Fix: No hanging anymore on gRPC when receiving an unexpected response.

v4.9.2

Compare Source

2023-11-13

  • New: Opaque types. You can now specify types you want Wire to evaluate as being of type bytes.
    On code generation, the fields of such types will be using the platform equivalent of bytes,
    like okio.ByteString for the JVM. Use this if there's a dependency heavy type which you do
    not use. Note that scalar types cannot be opaqued.
  • New: Adds a closure into generate types allowing the creation of an instance via the Kotlin DSL.
  • Fix: Don't arbitrarily prune oneOf options.
  • Change: Swift Defaulted has been renamed CustomDefaulted
  • New: Swift ProtoDefaulted property wrapper and ProtoDefaultedValue protocol
    • Similar to `CustomDefaulted, this adds as projection of the protocol defined default value
    • This should not take up any additional storage
    • This is attached to optional scalar values and messages with entirely optional values
  • New: ProtoDefaulted and CustomDefaulted include setter support
    • This enables you to do something like Foo().$bar.$baz += 1
  • Change: Swift ProtoEnum types now have a raw value of Int32.
    • The runtime and generated code both need to be updated to reflect this.

v4.9.1

Compare Source

2023-09-26

  • Fix: Missing Swift imports.

v4.9.0

Compare Source

2023-09-20

  • Fix: Swift generates all Storage properties. This mitigates performance issues with dynamicMemberLookup
  • Change: Swift codegen was reordered for readability
  • Change: the type of the Wire option use_array has been changed from string to bool, and its tag has changed from 1180 to 1185.
  • New: Swift propertyWrapper @​CopyOnWrite. @​Heap is now deprecated and will be removed in November 2024.
  • New: Wildcards are supported when pruning members such as my.namespace.Type#another.namespace.*. This is handy if one wants to prune extension fields.
  • New: Adds warning when one defines a protoLibrary without source sets, which happens on native and JavaScript platforms.
  • New: project(..) dependencies are now explicitly limited to the JVM, for otherwise Wire isn't able to pick the correct platform to resolve them.
  • New: Wire runtime proto files, such as google/protobuf/descriptor.proto or wire/extensions.proto will not be emitted anymore when protoLibrary = true.
  • New: A custom logger can now be configured via the WireCompiler.
  • New: wire-schema, and wire-schema-tests are now available on JavaScript and native platforms.
  • Update: Okio to 3.5.0. All java.nio file systems should now be supported when using Wire.
  • Update: Kotlin to 1.9.10, Gradle to 8.x, and many others to most recent versions.

v4.8.1

Compare Source

2023-08-17

  • New: Swift messages now have the form init(REQUIRED FIELDS, (inout Storage) -> Void)
  • New: Swift, the member-wise initializer has been removed by default. It can be re-enabled by defining WIRE_INCLUDE_MEMBERWISE_INITIALIZER; however, it will be removed in November 2024. See https://github.com/square/wire/pull/2561 for details
  • Fix: Correctly define sources folders vs. resources folders for Wire generated code.
  • Fix: Generated .proto are correctly added to the built artifact.
  • New: All options of KotlinTarget available on CLI.

v4.8.0

Compare Source

2023-07-21

  • Fix: JSON to Kotlin deserialization is now really bullet-proofed against
    Class.getDeclaredFields random ordering.
  • Fix: proto3 types (Duration, Struct, etc) are now supported when doing dynamic serialization.
  • Fix: GrpcStatus is now serializable which enables GrpcException serialization.
  • New: GrpcClient is now abstract. You can customize how network calls are implemented.
  • New: You can now pass an [event listener][event_listener] to receive metric events.
  • New: New option for the Wire Gradle plugin. rejectUnusedRootsOrPrunes = true will fail the build if
    any roots or prunes are not used when refactoring the schema. This can help discover incorrect
    configurations early and avoid mis-expectations about the built schema.
  • New: OneOf's options are now loaded to the schema.
  • New: Wire will now fail if it detects a type name collision which can happen if a same file is loaded from different paths.
  • New: wire-schema-tests is now multiplatform.
  • New: SchemaHandler.Factory can now receive payload set within the Wire Gradle plugin. Implement
    the method fun create(includes, excludes, exclusive, outDirectory. options): SchemaHandler to receive it.
  • New: custom targets can now pass custom payloads to their SchemaHandler.Factory. The custom {}
    takes a map<string, string> to its new field options.
  • Swift: Default values are now generated via a Defaulted property wrapper.
  • Swift: Fully-qualify Foundation.Data to prevent name collisions with messages named Data.
  • Move: Some types have been moved from wire-compiler to wire-run: WireRun, Target, DirectedAcyclicGraph, PartitionedSchema.
  • Dependency: KotlinPoet has been bumped to 1.14.2.

v4.7.2

Compare Source

2023-06-18

  • Swift: Resolve Redactable regression.

v4.7.1

Compare Source

2023-06-16

  • Swift: Heap types should use DynamicMemberLookup for storage.
  • Fix: Don't drop the wire_package in a protoPath.
  • Fix: Normalize conflict strategy for boxed oneof field names.
  • Fix: Support all the scalar types in SchemaEncoder.

v4.7.0

Compare Source

2023-05-24

  • New: Add a dry run option. If enabled, the compiler will just emit the names of the source files that would be
    otherwise * generated to stdout. You can use the flag --dry_run with the Wire compiler or define the option with
    Gradle as the following:

    wire {
      dryRun = true
    }
  • Fix: Correctly set task dependencies on processResources if protoLibrary is set to true.

  • Fix: If a valid grpc-status header is present, raise a GrpcException rather than an IOException.

v4.6.2

Compare Source

2023-05-11

  • Fix: Explicitly adds jvm variants of multiplatform artifacts into the BOM.
  • Fix: Produce Descriptors for messages without fields after pruning.

v4.6.1

Compare Source

2023-05-10

  • Fix: Handle length-prefixed messages of length 0.
  • Swift: Bump to 1.5.

v4.6.0

Compare Source

2023-05-01

  • Fix: the version 4.5.6 had a breaking change which has been reverted in 4.6.0 without losing
    any functionality.
  • Update descriptor.proto from the 7dbe742 version of protocolbuffers/protobuf.

v4.5.6

Compare Source

2023-04-25

  • Fix: JSON serialization is now bullet-proofed against Class.getDeclaredFields random ordering.
  • Perf: Add option wire.use_array to use primitive arrays for packed scalars. This should improve
    performances as it avoids autoboxing on the JVM. It will use the appropriate array type, for
    example repeated float would be represented as a FloatArray.

v4.5.5

Compare Source

2023-04-12

  • Perf: Optimize packed scalar list sizes in initial allocation.

v4.5.4

Compare Source

2023-03-31

  • Kotlin: bump to 1.8.20.

v4.5.3

Compare Source

2023-03-23

  • Swift: fix proto3 messages not always omitting fields with default values.
  • Multiplatform: Builders and their methods are now generated if the configuration requires it.
  • Multiplatform: No more duplicate generations, or wrong tasks naming. Task dependencies are fixed.
  • Multiplatform: Added mingwX64 target.
  • Kotlin: bump to 1.8.20RC.

v4.5.2

Compare Source

2023-03-06

  • Fix: Use rawType's classloader when accessing ProtoAdapters.
  • gRPC: Decode grpc-status-details-bin and add it to GrpcException.
  • Swift: Fix base64url decoding when string length is a multiple of 4.
  • JSON: Support deserialization of proto3 default param when absent.

v4.5.1

Compare Source

2023-02-11

  • Fix swift Copy-on-Write behavior.
  • Support deserialization of camelCased fields in proto2.

v4.5.0

Compare Source

2023-02-02

  • Add support for tvOS.
  • Add ability to supply custom schema handler from command line.
Swift
  • Add Sendable conformance to all generated types.
  • Improved support for Proto3 types such as Struct, Any, Duration, and Timestamp.
  • @JsonString has been deprecated and will be removed in a future release.
  • Codable conformance has been completely rewritten and should be much more compliant to the spec.
    • This is a somewhat breaking change and heavily dependent upon the types you were using.
    • Notably: Dictionaries with non-string keys are not forwards compatible with new models.
    • The corrected encoding are not backwards compatible with old models.
    • Encoding fixes:
      • unknownFields should never be encoded any more.
      • Don't encode default values by default (configurable).
      • Encode field names in camelCase by default (configurable).
      • Encode Enums as Strings by default (configurable).
      • Maps will now always encode their keys as Strings.
    • Decoding fixes:
      • Data now supports both base64 and base64url binary formats.
      • Enums can now be decoded from either String or UInt32 values.
      • Unknown Enum values can optionally be skipped.
      • Both camelCase and snake_case key names are accepted. camelCase is preferred.

v4.4.3

Compare Source

2022-10-26

  • Fix: No more NPEs when the building project uses Kotlin 1.7.20.

v4.4.2

Compare Source

2022-10-06

  • Fix: Use KotlinProjectExtension to access source sets.
  • Fix: Improve support for ZIP artifacts.
  • Fix: When set to true, buildersOnly will take precedence over javaInterop when generating Kotlin.
  • Fix: Support nested extensions in a message.

v4.4.1

Compare Source

2022-08-05

  • New: Check HTTP2 protocol is set for passed client to GrpcClient.
  • New: Add buildersOnly option for Java and Kotlin target, setting it to true will change the
    visibility of generate types' constructor to non-public.
  • Fix: Properly define api dependency for okio in wire-schema.
  • Fix: Sort input locations so they match on all platforms.
  • Fix: Avoid NPEs with kotlin 1.7.20 around source sets.
  • Update: Bumped KotlinPoet to 1.12.0.

v4.4.0

Compare Source

2022-06-07

  • New: Custom schema handlers! Wire lets you now plug in your own logic to deal with the protobuf
    schema the way you want. Check [our documentation][custom-handlers-doc] for details. You can
    also check our [recipe directory][custom-handlers-recipes] for examples.
    Note that this API obsoletes the CustomHandlerBeta type Wire had until now.
  • New: You can now easily create an in-memory protobuf schema with the new SchemaBuilder class.
    This lives in the new wire-schema-tests artifact. For usage examples, check the tests in
    [custom handler recipes][custom-handlers-recipes].
  • Breaking: the wire-profiles artifact has been removed and is now inlined in wire-schema.
  • Breaking: CoreLoader 's isWireRuntimeProto methods are now static.
  • Breaking: SchemaLoader and related classes have been moved from wire-compiler to
    wire-schema.
  • New: Support packed and map fields when converting to/from JSON with Kotlin.
  • New: Support typesafe accessors and version catalogs in Wire plugin.
  • New: Generate annotations for repeated options.
  • New: Allow parsing of oneof options.
  • New: Support map fields in options.
  • New: Add macosArm64 support to the KMP projects supporting mac.
  • Fix: Properly deal with maps of scalar types, deserializing missing scala key/value into identity.
  • Fix: Fix a crash where ProtoMember was populated with the wrong data.

v4.3.0

Compare Source

2022-03-24

  • New: reserved tags and names in enum types are now honoured by Wire.
  • Fix: max keyword is now correctly parsed for enum types.
  • Fix: Wire now writes minus double zeros and minus float zeros on proto3.
  • Fix: Wire doesn't write google wrappers types' identity values anymore.
  • Fix: CoreLoader correctly loads .proto files present in the resources of the project.
  • Fix: Propagate GrpcExceptions in GrpcCalls.
  • Fix: Change GrpcCall.isCanceled to honor OkHttp cancellations.

v4.2.0

Compare Source

2022-02-17

  • New: Publish a [bill of materials (BOM)][bom] for Wire. Depend on this from Gradle or Maven to
    keep all of your Wire artifacts on the same version, even if they're declared via transitive
    dependencies. You can even omit versions when declaring other Wire dependencies.

    dependencies {
      implementation(platform("com.squareup.wire:wire-bom:4.2.0"))
      implementation("com.squareup.wire:wire-compiler")      // No version!
      implementation("com.squareup.wire:wire-gradle-plugin") // No version!
      implementation("com.squareup.wire:wire-grpc-client")   // No version!
      // Etc.
    }

v4.1.1

Compare Source

2022-02-15

  • Fix: Print target name in ConsoleWireLogger.
  • Fix: Throw early when field or constant names start with a digit.
  • Update: Bumped SwiftPoet to 1.3.1.
  • Fix: Wire will not generate annotations for repeated options.

v4.1.0

Compare Source

2022-01-28

  • New: When using Wire JSON factories, you can now override the proto3 behavior of skipping default
    values when writing JSON. Set writeIdentityValues to true for either WireJsonAdapterFactory
    or WireTypeAdapterFactory to enable it.
  • Breaking: WireLogger methods has been refactored to remove platform dependencies and allow more
    precise callbacks. We might add new methods in the future for better logging still.
  • Removal: The dry-run option on WireCompiler has been removed.
  • Swift: WireCompiler podspec is now backup by a jar so consumers will not have to locally build it
    on pod install.

v4.0.1

Compare Source

2021-12-07

  • Fix: Don't fail at compilation when an enum is in a oneof for Swift generation.

v4.0.0

Compare Source

2021-12-03

  • 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.
  • Fix: Don't depend on moshi-kotlin in wire-moshi. This caused a transitive dependency on
    kotlin-reflect, which we neither needed nor wanted.
  • Fix: Don't generate invalid code when an enum constant is named name or ordinal.
  • Fix: Don't re-use the cache if protobuf inputs have changed.
  • Fix: Emitting proper protobuf format for option values defined as a list of enum constants.
  • Fix: Explicitly defined Wire gRPC server generation as experimental: the feature isn't complete.
  • Fix: Generate @Deprecated annotations on deprecated messages, fields, enums, and enum
    constants.
  • Fix: Handle out of order proto fields when initializing Kotlin constructors.
  • Fix: Handle writing/reading exceptions for duplex calls in Wire gRPC.
  • Fix: In Java, rename instances to avoid field and class name conflicts.
  • Fix: Locate files in the root package when importing.
  • Fix: Memory fixes found with Address Sanitizer in Swift.
  • Fix: Permit values other than 0 and 1 when decoding protobuf-encoded booleans. Previously we
    threw an IOException for other values; now all non-zero values are true.
  • Fix: Redact boxed OneOf fields.
  • Fix: Redacted Kotlin scalars now respect nullability.
  • Fix: Retain field order when emitting a schema as .proto files.
  • Fix: Reverse the topological sort of dependent files in SchemaReflector. We had problems with
    grpc-curl which expects the requested file to be listed first.
  • Fix: Support Kotlin-generated annotations on Java fields.
  • Fix: Support for serializing builder-less Kotlin generated classes to JSON.
  • Fix: Support reporting errors in CustomHandlerBeta.
  • Fix: Suppress deprecation warnings on generated enum's fromValue method in Kotlin.
  • Fix: Swift adapters will throw an error when encountering an unexpected
    ProtoReader.beginMessage() rather than calling fatalError().
  • Fix: Update the Wire Gradle plugin to clear the output directory before generating code. This
    prevents the need to do a clean build after removing a message type.
  • Fix: Update the Wire Gradle plugin to register generated .java sources with the Java compiler.
    Previously this was broken if the Kotlin plugin was installed.
  • Fix: Use Gradle's logging mechanism to reduce output when Wire generates code.
  • Fix: Use correct type when referencing a custom adapter in Kotlin generated code.
  • Fix: Use relative path sensitivity and file collection.
  • Fix: Validate enum constant uniqueness for the entire package.
  • Fix: Wire Gradle plugin tasks have been modernized with configuration caching support.
  • Fix: Wire will not generate respective built-in types for Java, Kotlin, and Swift generation.
    Those are usually the google types for which Wire will provide its own implementation.
  • Upgrade: Update KotlinPoet to 1.8.0.
  • Upgrade: [OkHttp 4.9.3][okhttp_4_9_3].
  • Upgrade: [Okio 3.0.0][okio_3_0_0]. We now use Okio 3's FileSystem in SchemaLoader, which
    makes it easier to load .proto files from the classpath. This is binary-incompatible with the
    Okio 3.0 alpha releases.
  • Bye: Drop support for emitKotlinxSerialization.

v3.7.1

Compare Source

2021-11-03

  • Fix: Properly load schema located at root without packages.

v3.7.0

Compare Source

2021-03-25

  • New: srcProject(":project-name") makes it easier to depend on .proto files of other projects.
  • Fix: Don't require source that .proto directories exist at Gradle plugin configuration time.
    This was preventing Wire from using other tasks' outputs as its inputs.
  • Fix: Don't fail if options have a . prefix.

v3.6.1

Compare Source

2021-03-09

  • Fix: The Wire Gradle plugin now supports Java only Android projects.
  • Fix: In the Wire Gradle plugin, sourcePath will now include only protos defined with include
    if the option is present. It used to include all existing .proto files even if include was
    used.
  • New: Full support Optional Int64 and UInt64 for JSONString in Swift.

v3.6.0

Compare Source

2021-02-08

  • New: Automatically add a dependency when a protoPath or protoSource depends on a project.
  • New: protoPath and protoSource dependencies are now not transitive by default.
  • New: New protoLibrary option for the Wire Gradle plugin. Configuring a project as a protoLibrary
    will cause the generated .jar file to include .proto sources.
  • New: Code generation for plain gRPC server. The Kotlin target now has a new
    grpcServerCompatible option which if set to true will generate gRPC server-compatible
    classes.
  • New: Introduce GrpcException.
  • New: Add GrpcMethod tag to the request.
  • New: Adds redacting support for Moshi JSON adapters.
  • New: Publish plugin marker for Gradle plugin.
  • Fix: Escape square brackets in Kotlin generated code documentation.
  • Fix: Improved proto parsing performance.

v3.5.0

Compare Source

2020-10-27

  • New: Wire Gradle plugin improvements:
    • A task is now created for each available sources (main, Android variants, etc).
    • The wire-runtime dependency is automatically added.
    • Generated code directories are automatically added into their module's source sets.
  • New: Wire's proto parser now knows about oneOfOptions.
  • New: Wire will throw when two enum constants are ambiguous, like ZERO and zero.
  • New: Bytes options are not eligible anymore as annotation members.
  • Fix: Optional fields in proto3 are now generated as nullable fields.
  • Fix: JSON camel-casing is updated to fit latest protobuf specifications.
  • Fix: Exception messages when gRPC fails have been improved.
  • Fix: Allow ; as entry separator in option maps.
  • Fix: Enum constants are now properly escaped when conflicting with keywords of their generated
    target platform.
  • Fix: Update to KotlinPoet 1.7.2 which makes a lot of change in how Kotlin code is generated.

v3.4.0

Compare Source

2020-09-24

  • New: Stop emitting enum constant options as fields for Kotlin.
  • New: The Wire Gradle plugin task is now cacheable.
  • New: New GrpcCall function to help implement fakes.
  • New: Change GrpcStreamingCall.execute() to support structured concurrency.

v3.3.0

2020-09-14

  • New: Proto3 support! This includes the new behaviors, the new types, and the JSON.
  • New: Swift support for proto2 schemas. The details are in our [blog post][swiftblogpost].
  • New: Wire will now throw an error when:
    • two generated files end up overriding each other,
    • imports form a cycle,
    • packages form a cycle. This can be turned off with the flag permitPackageCycles,
    • an option within the source set cannot be resolved,
    • there are name duplications of members in a message, or of rpcs in a service,
    • a map is used as an extension.
  • New: Support for the json_name pseudo option.
  • New: The wire_package file option allows one to set the JVM package where classes generated
    from the concerned file will be placed. wire_package takes precedence over java_package.
  • New: Lists and maps in Kotlin generated code are now immutable.
  • New: Support UTF-8 with BOM in proto files.
  • New: wire.since and wire.until have been renamed with the prefix constant_ for
    EnumValueOptions.
  • New: Wire generates 1) annotations for options which 2) gets assigned to the generated code where
    appropriate. Both behavior can be turn on or off via the flags:
    • emitDeclaredOptions: True to emit types for options declared on messages, fields, etc.
      Default to true,
    • emitAppliedOptions: True to emit annotations for options applied on messages, fields, etc.
      Default to false.
  • Fix: Recursive map values.
  • Fix: Long expressions in equals and encodedSize functions.

v3.2.2

2020-05-15

  • Fix: JSON serialization correctly emits all values.

v3.2.1

2020-05-02

  • New: onlyVersion option on the Wire Gradle plugin to target a unique version. By and large,
    service code that supports many clients would target ranges via sinceVersion and
    untilVersion, while client code would target a unique version via onlyVersion.
  • New: Support for optional fields in Proto3.
  • Fix: Restored the GrpcClient.create API to create implementations for gRPC interfaces.

v3.2.0

2020-04-23

  • New: wire.since and wire.until options on members and enum values. You can prune fields or
    constants using these two options. When generating code with the Wire Gradle plugin, define
    sinceVersion and/or untilVersion to scope the generated code.
  • New: Messages' toString method on Kotlin and Java now escape string values for easy parsing.
  • Fix: Link the entire descriptor.proto every time when building the Schema.
  • Fix: Properly handle members named after keywords of the target language for both Java and
    Kotlin.
  • Fix: Use the declared name for keys in JSON when emitting/reading keyword named members.
  • Fix: Generated Kotlin code is malformed for long identifiers.
  • Fix: Make the Wire Gradle plugin compatible with instant execution.

v3.1.0

2020-02-06

This release includes major non-backwards-compatible API changes to the wire-schema module. This
will break tools that use Wire's schema modeling as a standalone library. We are making big changes
to this component and we sacrificed API compatibility to accelerate these improvements.

  • New: proto { ... } target in the Wire Gradle plugin. Use this to perform basic source code
    transformations on collections of .proto files. We use it to prune large collections of protos
    to just the subset used by the application.
  • Fix: Support all forms of reserved extensions, such as extensions 1, 3 to 5, 7;.
  • Fix: Don't re-generate source files when their .proto files haven't changed.
  • New: includes, excludes, root, and prune give precedence to the most precise rule.
    Previously excludes always took precedence over includes, and prune always took precedence
    over root.
  • Fix: Generate non-instantiable class for enclosing types in Kotlin. These are emitted when a
    nested type is retained but its enclosing type is pruned.
  • Fix: Do not fail to build when the profile cannot find a dependency.

v3.0.3

Compare Source

2019-12-23

Starting with this version the Wire Maven plugin is no longer maintained and has been removed from
the repository.

  • New: Support for custom options in Kotlin.
  • New: Kotlin 1.3.61.
  • New: Add support for custom targets in WireRun and the Gradle plugin.
  • New: Improve schema evaluation algorithm when loading separate sourcePath and protoPath.
  • New: Lazy loading of protoPath contents.
  • New: Make it possible to customize Gradle plugin's configurations.
  • New: Make it possible to customize Gradle plugin's generateProtos task.
  • Fix: Use correct ProtoAdapter for packed fields in Kotlin.
  • Fix: Properly handle name clashes between fields and enclosing types.
  • Fix: Preserve the package name on files loaded from protoPath.
  • Fix: ProtoPruner: Properly evaluate Pruner's reachable objects.
  • Fix: ProtoPruner: Ensure --excludes properly prunes options.
  • Fix: ProtoPruner: Keep used ServiceOptions and MethodOptions when pruning.

v3.0.2

2019-11-22

  • Fix: Generate correct unknownFields code if a message field's name is a Kotlin keyword.
  • Fix: Properly handle unknown enum values in Kotlin.
  • Fix: ProtoPruner: retain used extends.
  • Fix: ProtoPruner: retain only used imports.
  • Fix: ProtoPruner: use NewSchemaLoader that correctly loads google.protobuf.descriptor.
  • Fix: ProtoPruner: print default values for scalar types for proto target within the options.
  • Fix: ProtoPruner: fix handling of options.
  • Fix: ProtoPruner: print default values for enums.

v3.0.1

2019-10-18

  • Fix: Use the correct adapter path for gRPC endpoints that customize the Java package.
  • Fix: Preserve documentation in generated services.
  • Fix: Fail to generate code if the source directory doesn't exist.
  • Fix: Make Kotlin consistent with Java for unknown enum constants. We now treat these as unknown
    fields rather than failing to decode the enclosing message.

v3.0.0

2019-10-07

  • Update: All gRPC networking calls are encoded in gzip.

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.

Copy link
Contributor Author

renovate bot commented Jul 16, 2024

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 5.x releases. But if you manually upgrade to 5.x then Renovate will re-enable minor and patch updates automatically.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@renovate renovate bot deleted the renovate/com.squareup.wire-wire-runtime-5.x branch July 16, 2024 14:13
@balazsbarany
Copy link

Hi @JakeWharton!

Is there any specific reason why the Wire Runtime 5.x update was skipped?

I'm asking because I'm working on a project where we're planning to make use of the WireConverterFactory. However, said project depends on Wire Runtime 5.x otherwise.

I'd like to confirm if we could be exposed or not to some backward compatibility issues we haven't seen yet. 🤔

However, based on the initial tests, everything works as intended by our setup, overriding the Wire dependency of Retrofit (⬇️ ).

|    |    +--- com.squareup.retrofit2:converter-wire:2.11.0
|    |    |    +--- com.squareup.retrofit2:retrofit:2.11.0 (*)
|    |    |    \--- com.squareup.wire:wire-runtime:2.2.0 -> 5.1.0 <<<<< HERE !!!!
|    |    |         \--- com.squareup.wire:wire-runtime-jvm:5.1.0
|    |    |              +--- com.squareup.okio:okio:3.9.0 (*)
|    |    |              \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*)

As far as I can tell, WireConverterFactory relies only on com.squareup.wire.Message and com.squareup.wire.ProtoAdapter. So, I guess those haven't received breaking changes between 2.2.0 and 5.1.0. (I haven't combed the release notes through there yet. 🙈 )

@JakeWharton
Copy link
Collaborator

JakeWharton commented Sep 24, 2024

We stay on the version written in Java while Retrofit itself stays written in Java.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants