This MR contains the following updates:
This release contains protoc-gen-go binaries for arm64.
Notable changes since v1.28.0:
- CL/418677: internal/impl: improve MessageInfo.New performance
- CL/411377: proto: short-circuit Equal when inputs are identical
- CL/419714: all: Add prebuild binaries for arm64
The release provides a new unmarshal option for limiting the recursion depth when unmarshalling nested messages to prevent stack overflows. (
- CL/340489: testing/protocmp: add Message.Unwrap
- CL/339569: reflect/protoreflect: add more docs on Value aliasing
Updated supported versions:
- CL/370055: all: update supported versions
- CL/385854: all: implement depth limit for unmarshalling
UnmarshalOptions.RecursionLimit limits the maximum recursion depth when unmarshalling messages. The limit is applied for nested messages. When messages are nested deeper than the specified limit the unmarshalling will fail. If unspecified, a default limit of 10,000 is applied.
In addition to the configurable limit for message nesting a non-configurable recursion limit for group nesting of 10,000 was introduced.
Upcoming breakage changes
The default recursion limit of 10,000 introduced in the release is subject to change. We want to align this limit with implementations for other languages in the long term. C++ and Java use a limit of 100 which is also the target for the Go implementation.
Notable changes since v1.27.0:
- CL/331149: cmd/protoc-gen-go: fix generation of enum defaults
The release provides new functionality for iterating through a message using protobuf reflection. There are some minor changes to the code generator.
- CL/309669: testing/protopack: add Message.UnmarshalAbductive
- CL/317430: encoding/prototext: fix skipping of unknown fields
- CL/321529: internal/impl: support typed nil source for Merge of aberrant messages
- 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
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.
If you want to rebase/retry this MR, click this checkbox.
This MR has been generated by Renovate Bot.