Skip to content

Releases

v1.37.0-rc.1

v1.37.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@zhangskz zhangskz released this 20 Oct 19:24

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.mod will 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

Choose a tag to compare

@zhangskz zhangskz released this 10 Aug 15:29

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

Choose a tag to compare

@stapelberg stapelberg released this 12 Dec 08:50

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

Choose a tag to compare

@stapelberg stapelberg released this 02 Oct 09:03

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

Choose a tag to compare

@stapelberg stapelberg released this 09 Sep 10:17

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

Choose a tag to compare

@stapelberg stapelberg released this 20 Aug 14:44

Maintenance:

CL/696316: all: set Go language version to Go 1.23
CL/696315: types: regenerate using latest protobuf v32 release

v1.36.7

Choose a tag to compare

@stapelberg stapelberg released this 07 Aug 11:15

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

Choose a tag to compare

@stapelberg stapelberg released this 24 Mar 10:39

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

Choose a tag to compare

@stapelberg stapelberg released this 06 Feb 11:25

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

Choose a tag to compare

@stapelberg stapelberg released this 24 Jan 13:11

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