Releases: protocolbuffers/protobuf-go
v1.36.0
Full Changelog: v1.35.2...v1.36.0
User-visible changes:
CL/635139: src/google/protobuf: document UnmarshalJSON / API level behavior
CL/635138: reflect/protoreflect: use [] syntax to reference method
CL/635137: proto: add reference to size semantics with lazy decoding to comment
CL/634818: compiler/protogen: allow overriding API level from --go_opt
CL/634817: cmd/protoc-gen-go: generate _protoopaque variant for hybrid
CL/634816: all: regenerate.bash for Opaque API
CL/634815: all: Release the Opaque API
CL/634015: types/descriptorpb: regenerate using latest protobuf v29.1 release
CL/632735: internal/impl: skip synthetic oneofs in messageInfo
CL/627876: all: start v1.35.2-devel
v1.35.2
Full Changelog: v1.35.1...v1.35.2
Maintenance:
CL/623115: proto: refactor equal_test from explicit table to use makeMessages()
CL/623116: encoding/prototext: use testmessages_test.go approach, too
CL/623117: internal/testprotos/test: add nested message field with [lazy=true]
CL/624415: proto: switch messageset_test to use makeMessages() injection point
CL/624416: internal/impl: fix TestMarshalMessageSetLazyRace (was a no-op!)
User-visible changes:
CL/618395: encoding/protojson: allow missing value for Any of type Empty
CL/618979: all: implement strip_enum_prefix editions feature
CL/622575: testing/protocmp: document behavior when combining Ignore and Sort
v1.35.1
Full Changelog: v1.34.2...v1.35.1
Maintenance:
User-visible changes:
- CL/587536: protojson: include field name in error messages
- CL/597055: compiler/protogen: always report editions support level of the plugin
- CL/596539: all: plumb the lazy option into filedesc.Field and .Extension
- CL/601775: types/known/structpb: add support for more types and json.Number
- CL/607995: proto: extend documentation of GetExtension, SetExtension
- CL/609035: proto: implement proto.Equal fast-path
Bug fixes:
all: release v1.34.2
Minor feature:
- CL/589336: gofeatures: allow setting legacy_unmarshal_json_enum feature at file level
Minor bug fixes:
- CL/588875: types/descriptorpb: regenerate using latest protobuf v27.0 release
- CL/586396: internal/impl: fix size cache semantics with lazy decoding
- CL/585736: reflect/protodesc: remove obsolete JSON name check from desc validator
- CL/588976: reflect/protoreflect: FieldDescriptor.Kind should never be GroupKind for maps or fields of map entry
all: release v1.34.1
all: release v1.34.0
Notable changes
New Features
Protobuf editions are fully supported. You can now use edition = "2023"
in .proto files together with the proto-gen-go
. Edition2023 does not introduce any new features but can be used to replace syntax "proto2/3"
. Future editions might introduce new features. See https://protobuf.dev/editions/overview/ for more details on protobuf editions.
Documentation
Various smaller changes to improve existing documentation and to add more examples.
- CL/574455: proto: extend Marshal documentation, include an example
- CL/574635: proto: extend Unmarshal documentation, include an example
- CL/574836: protogen: update Options documentation.
- CL/573361: proto: add examples for Size, MarshalAppend (regarding allocations)
- CL/579895: encoding/{protojson,prototext}: strengthen wording on stability
Extensions
These are mostly performance improvements or preparations for performance improvements.
- CL/575035: internal/impl: ensure proto.HasExtension does not allocate
- CL/576315: [encoding/{protojson,prototext}: strengthen wording on stability](proto: CSE ProtoReflect() and TypeDescriptor() in proto.HasExtension
- CL/576316: internal/impl: pass ExtensionTypeDescriptor to extensionMap
- CL/579275: [proto] use the correct parent when resolving features for extensions
- CL/579595: proto: return an error instead of producing invalid wire format
v1.33.0
This release contains one security fix:
encoding/protojson
:Unmarshal
could enter an infinite loop when unmarshaling certain forms of invalid JSON. This condition can occur when unmarshaling into a message which contains agoogle.protobuf.Any
value, or when theUnmarshalOptions.DiscardUnknown
option is set.Unmarshal
now correctly returns an error when handling these inputs. This is CVE-2024-24786.
v1.32.0
Full Changelog: v1.31.0...v1.32.0
This release contains commit bfcd647, which fixes a denial of service vulnerability by preventing a stack overflow through a default maximum recursion limit. See golang/protobuf#1583 and golang/protobuf#1584 for details.
v1.31.0
Notable changes
New Features
- CL/489316: types/dynamicpb: add NewTypes
- Add a function to construct a dynamic type registry from a protoregistry.Files
- CL/489615: encoding: add MarshalAppend to protojson and prototext
Minor performance improvements
- CL/491596: encoding/protodelim: If UnmarshalFrom gets a bufio.Reader, try to reuse its buffer instead of creating a new one
- CL/500695: proto: store the size of tag to avoid multiple calculations
Bug fixes
v1.30.0
Announcement
In the previous two releases, v1.29.0 and v1.29.1, we associated the tags with the wrong commits and thus the tags do not reference any commit in this repository. This tag, v1.30.0, refers to an existing commit again. Sorry for the inconvenience.
Notable changes
New Features
- CL/449576: protoadapt: helper functions to convert v1 or v2 message to either v1 or v2 message.