v1.27.0
Overview
The release provides new functionality for iterating through a message using protobuf reflection. There are some minor changes to the code generator.
Notable changes
New features:
- CL/309669: testing/protopack: add Message.UnmarshalAbductive
Bug fixes:
- CL/317430: encoding/prototext: fix skipping of unknown fields
- CL/321529: internal/impl: support typed nil source for Merge of aberrant messages
Generator changes
- CL/305574: cmd/protoc-gen-go: remove generation of the ExtensionRangeArray method
- CL/319649: cmd/protoc-gen-go: avoid referencing remote enum values by name
- CL/316949: compiler/protogen: relax rules for valid import paths
- CL/306209: cmd/protoc-gen-go: add protoc suffix
Reflectively ranging over a message
- CL/236540: reflect: add protopath and protorange packages
The new reflect/protorange
package supports recursively ranging through all populated fields of a message. There are many use cases for such a feature. See the examples for inspiration.
Upcoming breakage changes
This release removes generation of the ExtensionRangeArray
method, as originally announced since the v1.20.0 release on March 2nd, 2020. Our analysis of the entire public module proxy found no static usages of this method. This method is pseudo-internal to the implementation and we expect removal of it to have no material impact. If something is broken by this change, please file an issue and we can consider re-generating this method in a patch release.
There are no new upcoming breaking changes to announce in this release.