Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: protocolbuffers/protobuf-go
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.36.10
Choose a base ref
...
head repository: protocolbuffers/protobuf-go
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.36.11
Choose a head ref
  • 17 commits
  • 48 files changed
  • 5 contributors

Commits on Oct 2, 2025

  1. all: start v1.36.10-devel

    Change-Id: Ie70fb0a3632cdaa77dfd7427c5ea2684b8217512
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/708557
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Chressie Himpel <chressie@google.com>
    stapelberg committed Oct 2, 2025
    Configuration menu
    Copy the full SHA
    059534d View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2025

  1. proto: add explicit test for a non-nil but empty byte slice

    I encountered this usage pattern in a production application
    and noticed that when breaking the size calculation,
    only the conformance_test fails (indirectly),
    but there was no explicit test before this commit.
    
    Change-Id: I15a125b7cff3364f24fe372e4a3a046bb7552413
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/710855
    Reviewed-by: Chressie Himpel <chressie@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    stapelberg committed Oct 13, 2025
    Configuration menu
    Copy the full SHA
    df20b24 View commit details
    Browse the repository at this point in the history
  2. proto: add test for oneofs containing messages with required fields

    Change-Id: I9cdc26a8bda576a76e93dc352a2a8bea9f504817
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/711200
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Chressie Himpel <chressie@google.com>
    stapelberg committed Oct 13, 2025
    Configuration menu
    Copy the full SHA
    e0867da View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2025

  1. reflect/protodesc: fix handling of import options in dynamic builds

    Without this, we allow non-option symbols from import option dependencies to be referenced inside of protos.  This can both break valid protos and allow invalid protos in various edge cases, and is inconsistent with protoc.
    
    Change-Id: I12e657435173186b8fe4e84315fc2e1b9fd2dc6a
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/711015
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Michael Stapelberg <stapelberg@google.com>
    Commit-Queue: Michael Stapelberg <stapelberg@google.com>
    mkruskal-google authored and stapelberg committed Oct 14, 2025
    Configuration menu
    Copy the full SHA
    c720882 View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2025

  1. types: regenerate using latest protobuf v33 release

    Change-Id: I4a786adbc7fc1a829e444dcaa0e43d35f42a3be4
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/713180
    Reviewed-by: Chressie Himpel <chressie@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    stapelberg committed Oct 20, 2025
    Configuration menu
    Copy the full SHA
    55497d0 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2025

  1. compiler/protogen: properly filter option dependencies in go-protobuf…

    … plugin.
    
    Because protoc sends option dependencies to its plugins, this results in the go plugin enforcing the import path flag requirements on them.  This is unnecessary though, since a true option dependency will have no generated code importing it anyway.  This is especially problematic in (but not unique to) Bazel, since the aspect doesn't trigger on the option_deps attributes.
    
    Change-Id: I3b8cec00e462f84ef02ba1ab6bdb4dbe843703d5
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/713342
    Reviewed-by: Michael Stapelberg <stapelberg@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    mkruskal-google authored and stapelberg committed Oct 21, 2025
    Configuration menu
    Copy the full SHA
    d65e1d4 View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2025

  1. proto: un-flake TestHasExtensionNoAlloc

    Before this change, this test had a flakiness rate of 3 out of 1000 runs
    (on Google’s internal testing infrastructure).
    
    After this change, the test is not flaky, even when running with 50_000 runs.
    
    testing.AllocsPerRun is meant to be robust against individual allocations
    from background goroutines, but not in the way we called the function.
    
    Change-Id: If99573734fb2de5d7128b5e61c2019867ccbb9b2
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/716520
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Christian Höppner <hoeppi@google.com>
    stapelberg committed Nov 3, 2025
    Configuration menu
    Copy the full SHA
    4a45645 View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2025

  1. internal/encoding/tag: use proto3 defaults if proto3

    proto3 legacy struct field tags are improperly parsed as proto2,
    resulting in fd.L1.EditionFeatures.IsFieldPresence set to true when it
    should have been false. This causes coderFieldInfo.isPointer to be true
    for said fields. When the encode process (particularly
    MessageInfo.sizePointerSlow) sees isPointer=true for the field, it
    attempts to interpret the field as a pointer, which results in a "fatal
    error: checkptr: misaligned pointer conversion" runtime error if the
    field address happens to not be pointer-aligned. This only happens if
    building with -race/-asan/-msan as they enable checkptr.
    
    To avoid this issue, parse from proto3 edition defaults if the proto3
    key is found in the struct field tag.
    
    Change-Id: Id81ab38fe7efd437d0748a485653d27b1acc3afb
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/716360
    TryBot-Bypass: Michael Stapelberg <stapelberg@google.com>
    Auto-Submit: Nicolas Hillegeer <aktau@google.com>
    Reviewed-by: Nicolas Hillegeer <aktau@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Run-TryBot: Damien Neil <dneil@google.com>
    Reviewed-by: Damien Neil <dneil@google.com>
    Reviewed-by: Chressie Himpel <chressie@google.com>
    Reviewed-by: Michael Stapelberg <stapelberg@google.com>
    gh2o authored and stapelberg committed Nov 4, 2025
    Configuration menu
    Copy the full SHA
    792d359 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2025

  1. internal/filedesc: remove duplicative Message.unmarshalOptions

    A user reported a data race when calling the IsMapEntry and Options accessors
    concurrently: golang/protobuf#1701
    
    Originally, I wanted to suggest moving the md.L1.IsMapEntry / md.L1.IsMessageSet
    assignments into Message.unmarshalSeedOptions when I realized that these fields
    are already set in unmarshalSeedOptions!
    
    Therefore, we can entirely remove Message.unmarshalOptions in favor of
    Message.unmarshalSeedOptions. All tests continue to pass, both within Go
    Protobuf itself, and also all Google tests (Global Presubmit, cl/832261606).
    
    Resolves golang/protobuf#1701
    
    Change-Id: Ieb4dbddd11f4a123ba01d3c10fed4d16bee0791a
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/720980
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Lasse Folger <lassefolger@google.com>
    stapelberg committed Nov 17, 2025
    Configuration menu
    Copy the full SHA
    9607398 View commit details
    Browse the repository at this point in the history

Commits on Nov 23, 2025

  1. cmd/protoc-gen-go: add missing annotations for few generated protobuf…

    … symbols.
    
    This change adds g.AnnotateSymbol calls to generate Kythe metadata for extension variables, oneof case constants, and oneof Which methods. See b/461219786 for more details.
    
    Change-Id: Id40e5492e7c32ec904f90c0ec1db7d8e781eaaed
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/723440
    Reviewed-by: Lasse Folger <lassefolger@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    nbeloglazov authored and lfolger committed Nov 23, 2025
    Configuration menu
    Copy the full SHA
    46f785e View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2025

  1. internal/testprotos/lazy: convert .proto files to editions

    This will be useful in a follow-up change to reproduce a bug.
    
    Change-Id: Ide5d174af24c054be75709b4ed77eb9956b411ec
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/727140
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Lasse Folger <lassefolger@google.com>
    stapelberg committed Dec 5, 2025
    Configuration menu
    Copy the full SHA
    ea388e2 View commit details
    Browse the repository at this point in the history

Commits on Dec 8, 2025

  1. types: regenerate using latest protobuf v33.2 release

    Change-Id: I6666a66f2ead3d53220e3ce941daa93b8408273f
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/727940
    Reviewed-by: Lasse Folger <lassefolger@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    stapelberg committed Dec 8, 2025
    Configuration menu
    Copy the full SHA
    aeaf00b View commit details
    Browse the repository at this point in the history
  2. all: add EDITION_UNSTABLE support

    The UNSTABLE edition serves as a sandbox for all features in-development.
    The --experimental_edition protoc flag is required to accept it.
    
    Google-Internally, see go/edition-unstable for more details.
    
    Originally authored by Rachel Goldfinger, who asked me to send the change.
    
    Change-Id: If3acc284f70b7690e837d4746202823880a13355
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/727960
    Reviewed-by: Lasse Folger <lassefolger@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    stapelberg committed Dec 8, 2025
    Configuration menu
    Copy the full SHA
    cb88647 View commit details
    Browse the repository at this point in the history

Commits on Dec 10, 2025

  1. reflect/protodesc: add support for edition unstable

    Authored by Rachel Goldfinger.
    
    Change-Id: I57d211412850cc8e58f7d905770e82d2570e50f3
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/728681
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Lasse Folger <lassefolger@google.com>
    stapelberg committed Dec 10, 2025
    Configuration menu
    Copy the full SHA
    b85b189 View commit details
    Browse the repository at this point in the history

Commits on Dec 11, 2025

  1. encoding/prototext: Support URL chars in type URLs in text-format.

    Change the text-format parser to allow for more characters and formats
    in the type URL prefixes of expanded Any protos. This follows a recent
    change to the text-format spec [1,2] and the Go implementation is now
    almost exactly implementing this spec (with some exceptions to ensure
    backwards compatibility).
    
    Note that we are also making the whitespace handling between [ and ]
    more lenient compared to the current implementation. This is also
    in line with the new spec.
    
    Refs:
    - [1] https://protobuf.dev/reference/protobuf/textformat-spec/#characters
    - [2] https://protobuf.dev/reference/protobuf/textformat-spec/#field-names
    - go/protobuf-improved-type-url-support
    
    Change-Id: I55055becec0248c1d161e776f1937eaaa4af2066
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/726780
    Reviewed-by: Michael Stapelberg <stapelberg@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Damien Neil <dneil@google.com>
    ferstlf authored and stapelberg committed Dec 11, 2025
    Configuration menu
    Copy the full SHA
    d509f92 View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2025

  1. internal/impl: check recursion limit in lazy decoding validation

    The recursion depth limit was introduced in https://go.dev/cl/385854,
    but without any tests.
    
    When I added a basic test, I noticed that lazily decoded messages
    and extensions circumvent the recursion limit:
    
    At validation time, the limit was not checked. Later, lazy unmarshaling
    (MessageInfo.unmarshalField) starts with the default recursion limit
    (10'000) by copying impl.lazyUnmarshalOptions.
    
    Before this commit, a 9999-deeply nested message could have an extension
    which contains another 9999 nested messages, and so on.
    
    I also noticed that maps did not count as a recursion (now also fixed).
    
    (Google-internally tested globally as cl/842145661)
    
    Change-Id: Ica036d8625225b21473de58ecd1afc8414eb6784
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/728680
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Lasse Folger <lassefolger@google.com>
    stapelberg committed Dec 12, 2025
    Configuration menu
    Copy the full SHA
    9197dd0 View commit details
    Browse the repository at this point in the history
  2. all: release v1.36.11

    Change-Id: I451fcbd61dc2be12f9df9cb8efd44d2649307b17
    Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/729640
    Reviewed-by: Lasse Folger <lassefolger@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    stapelberg committed Dec 12, 2025
    Configuration menu
    Copy the full SHA
    96a1791 View commit details
    Browse the repository at this point in the history
Loading