Wire v3.1.0 Release Notes

Release Date: 2020-02-06 // 14 days ago
  • 2019-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.

Previous changes from v3.0.3

  • 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.