Repository navigation
Releases
v1.37.0-rc.1
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes to Go Protobuf.
- Go Version Policy: Go Protobuf is updating its Go version support policy to support the two most recent major Go releases. The minimum Go version in
go.modwill be updated to the oldest supported Go version (currently Go 1.26). See the News announcement for more details. - Release Cadence: Go Protobuf is adopting Protobuf's quarterly release cadence, aligning its minor version naming and release schedule with
protoc. See the News announcement for more details.
Changelog
Full Changelog: v1.36.12...v1.37.0-rc.1
User-visible changes:
CL/822244: all: set Go language version to Go 1.26
CL/837845: internal/editionssupport: declare support for edition 2026
CL/809160: internal/impl: avoid Convert copies in the string and bytes converters
CL/820341: internal/impl: optimize oneof unmarshaling and serialization by precomputing itabs
Bug fixes:
CL/774741: encoding/prototext: enforce RecursionLimit in skipValue/skipMessageValue
Maintenance:
CL/846166: encoding/protojson: rename decodeCache fields and helpers for custom enum JSON names
CL/846165: encoding/protojson: use jsonenumvalueoptionspb.E_Json for enum JSON names
CL/845825: generate-protos: remove extension fullname and name constants
CL/845605: protoc: update to the protobuf version (36.2)
CL/833704: internal/impl: fix atomicity bug in oneof optimization
CL/824064: internal/benchmark: remove dormant datasets
CL/811460: CONTRIBUTING.md: add instruction to install Bazel.
v1.36.12
Full Changelog: v1.36.11...v1.36.12
User-visible changes:
CL/812620: defval: support hex and octal default values for numeric fields
CL/737480: reflect/protodesc: add missing IsProto3Optional initialization
CL/735401: internal/descfmt: replace uses of MethodByName with direct calls when possible
CL/735120: encoding/protojson: fix google.protobuf.Empty serialization
CL/734761: encoding/prototext: implement recursion limit
CL/734760: encoding/protodelim: error out when size exceeds math.MaxInt
CL/734280: internal/descfmt: fix dce with Go 1.26 by not calling MethodByName for Methods
CL/733841: encoding/protojson: reject non-numeric ints/floats
CL/729461: compiler/protogen: introduce and expose feature resoluton to protogen
Maintenance:
CL/810580: types: update to the protobuf version (35.1)
CL/735620: types: regenerate using latest protobuf v33.3 release
CL/737460: compiler/protogen: document --go_opt in addition to --go_out
v1.36.11
Full Changelog: v1.36.10...v1.36.11
User-visible changes:
CL/726780: encoding/prototext: Support URL chars in type URLs in text-format.
Bug fixes:
CL/728680: internal/impl: check recursion limit in lazy decoding validation
CL/711015: reflect/protodesc: fix handling of import options in dynamic builds
Maintenance:
CL/728681: reflect/protodesc: add support for edition unstable
CL/727960: all: add EDITION_UNSTABLE support
CL/727940: types: regenerate using latest protobuf v33.2 release
CL/727140: internal/testprotos/lazy: convert .proto files to editions
CL/723440: cmd/protoc-gen-go: add missing annotations for few generated protobuf symbols.
CL/720980: internal/filedesc: remove duplicative Message.unmarshalOptions
CL/716360: internal/encoding/tag: use proto3 defaults if proto3
CL/716520: proto: un-flake TestHasExtensionNoAlloc
CL/713342: compiler/protogen: properly filter option dependencies in go-protobuf plugin.
CL/711200: proto: add test for oneofs containing messages with required fields
CL/710855: proto: add explicit test for a non-nil but empty byte slice
v1.36.10
Full Changelog: v1.36.9...v1.36.10
Bug fixes:
CL/704415: reflect/protodesc: edition-2024-specific properties should not be lost when converting FileDescriptorProto to protoreflect.FileDescriptor
Maintenance:
CL/708555: internal/race_test: add missing impl.LazyEnabled() t.Skip
CL/703295: proto: add more invalid group encoding test cases
CL/703276: internal/impl: verify lazy unmarshal on Deterministic encoding
CL/703275: internal/impl: stop using deprecated .Field in lazy_test.go
CL/702795: all: update to latest github.com/google/go-cmp
v1.36.9
Full Changelog: v1.36.8...v1.36.9
User-visible changes:
CL/699715: cmd/protoc-gen-go: add test for "import option" directive
CL/699115: internal/editionssupport: declare support for edition 2024
CL/697595: editions: Fix spelling mistake in panic message
v1.36.8
v1.36.7
Maintenance / optimizations:
CL/683955: encoding/protowire: micro-optimize SizeVarint (-20% on Intel)
CL/674055: internal/impl: remove unnecessary atomic access for non-lazy lists
CL/674015: impl: remove unnecessary nil check from presence.Present
CL/673495: types/descriptorpb: regenerate using latest protobuf v31 release
CL/670516: cmd/protoc-gen-go: centralize presence and lazy logic into filedesc
CL/670515: internal: move usePresenceForField to internal/filedesc
CL/670275: internal/impl: clean up usePresenceForField() (no-op)
v1.36.6
Full Changelog: v1.36.5...v1.36.6
User-visible changes:
CL/657895: internal_gengo: generate a const string literal for the raw descriptor
CL/653536: proto: Add CloneOf[M Message](m M) M
Maintenance:
CL/649135: all: set Go language version to Go 1.22
CL/654955: types/descriptorpb: regenerate using latest protobuf v30 release
v1.36.5
Full Changelog: v1.36.4...v1.36.5
Bug fixes:
CL/644437: protogen: fix name mangling for fields with identical GoCamelCase
Maintenance:
CL/641655: all: remove weak field support
v1.36.4
Full Changelog: v1.36.3...v1.36.4
Bug fixes:
CL/642975: reflect/protodesc: fix panic when working with dynamicpb
Maintenance:
CL/643276: internal_gengo: avoid allocations in rawDescGZIP() accessors
CL/642857: internal_gengo: switch back from string literal to hex byte slice
CL/642055: internal_gengo: use unsafe.StringData() to avoid a descriptor copy
CL/638135: internal_gengo: store raw descriptor in .rodata section