)]}'
{
  "log": [
    {
      "commit": "7f83aabb478ecdf2f0b5d396c0bed2bd039394bf",
      "tree": "3a4e9462a3e91bdbbe1e39b6a4033bad7f489ed8",
      "parents": [
        "23ac6d3d69de1243cdde8749f003f9af857c93b2"
      ],
      "author": {
        "name": "Samuel Benzaquen",
        "email": "sbenza@google.com",
        "time": "Tue Oct 20 13:37:23 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 13:42:09 2026 -0700"
      },
      "message": "Unify GenerateDestructorCode for split fields.\n\nUse $this_mutable_field$ consistently across singular and repeated fields in GenerateDestructorCode instead of special-casing split fields.\n\nPiperOrigin-RevId: 1003357855\n"
    },
    {
      "commit": "23ac6d3d69de1243cdde8749f003f9af857c93b2",
      "tree": "8fd19751a26e28c618c6f29e56ef20136b77592a",
      "parents": [
        "e1b5db64f9f3046b0833a6f3c1d0f7a488dd0acd"
      ],
      "author": {
        "name": "Anton Karpov",
        "email": "karpovantonme@gmail.com",
        "time": "Tue Oct 20 13:30:50 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 13:33:27 2026 -0700"
      },
      "message": "Ruby: name the argument from_native actually takes in MethodDescriptor (#29328)\n\n`MethodDescriptor::MethodDescriptorClass#from_native` documents its first argument as `service_def` and takes `method_def`. YARD binds by the name in that slot, so the tag documents an argument that is not there.\n\nThe description on the same line already reads \"MethodDef pointer to be wrapped\", and the 4 sibling `from_native` definitions in `ruby/lib/google/protobuf/ffi/` each name their own argument:\n\n| file | documented | takes |\n|---|---|---|\n| `enum_descriptor.rb:29` | `enum_def` | `enum_def` |\n| `descriptor.rb:34` | `msg_def` | `msg_def` |\n| `field_descriptor.rb:33` | `field_def` | `field_def` |\n| `file_descriptor.rb:39` | `file_def` | `file_def` |\n| `method_descriptor.rb:33` | `service_def` | `method_def` |\n\n`service_def` is a local computed inside the body, which is likely how it got there.\n\nDocumentation only, no behaviour change.\n\nHow I found it: a checker I wrote that compares each documented name against the signature under it. It read 46 of the 46 documented comments under `ruby/`, and this was the only one it had to say anything about.\n\nCloses #29328\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/protocolbuffers/protobuf/pull/29328 from karpovantonme:docs/param-name-in-method-descriptor 47b6be0f9de4067947feeed794704c98410c0e77\nPiperOrigin-RevId: 1003352783\n"
    },
    {
      "commit": "e1b5db64f9f3046b0833a6f3c1d0f7a488dd0acd",
      "tree": "3bb96cd13e603240a86a11202b3881b05be7a0ac",
      "parents": [
        "9e88d8e6da4bb9ff68d22928c5377e5aa4410a23"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Tue Oct 20 19:26:07 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Tue Oct 20 19:26:07 2026 +0000"
      },
      "message": "Auto-generate files after cl/1003294639\n"
    },
    {
      "commit": "9e88d8e6da4bb9ff68d22928c5377e5aa4410a23",
      "tree": "c769030e1dbd71c08e88242de5a48ed665546218",
      "parents": [
        "e0a9686f846a09aadaad44f2a636da446724a8b8"
      ],
      "author": {
        "name": "Samuel Benzaquen",
        "email": "sbenza@google.com",
        "time": "Tue Oct 20 12:13:05 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 12:17:56 2026 -0700"
      },
      "message": "Make the new this_field/this_mutable_field/from_field use the cached_split_ptr.\n\nThis improves efficiency, and makes the code more compatible with future\nsplit layouts.\n\nPiperOrigin-RevId: 1003294639\n"
    },
    {
      "commit": "e0a9686f846a09aadaad44f2a636da446724a8b8",
      "tree": "b99d7cbe32d2c765cb47e51bf315d4ccf688e144",
      "parents": [
        "5ba3e1203c809c0b3a290f86e9f3172cc5b7e626"
      ],
      "author": {
        "name": "Ada Zhang CA",
        "email": "adazhang@google.com",
        "time": "Tue Oct 20 12:08:50 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 12:13:15 2026 -0700"
      },
      "message": "Serialize non-canonical extensions to unknown bytes in upb_Message_DeepClone/DeepCopy.\n\nPiperOrigin-RevId: 1003291291\n"
    },
    {
      "commit": "5ba3e1203c809c0b3a290f86e9f3172cc5b7e626",
      "tree": "b6815f13d373f5ba013c4dbf3aa890efc2f7c5aa",
      "parents": [
        "8d6e0f2a344e7d8a30b9cfce25bc06859a5158b3"
      ],
      "author": {
        "name": "Karen Wu",
        "email": "karenwuz@google.com",
        "time": "Tue Oct 20 11:33:37 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 11:37:45 2026 -0700"
      },
      "message": "Fix typo in test matrix\n\nPiperOrigin-RevId: 1003262581\n"
    },
    {
      "commit": "8d6e0f2a344e7d8a30b9cfce25bc06859a5158b3",
      "tree": "15794648ded5a1614d572f683b766ebd1dc4de68",
      "parents": [
        "0bccc93d5baf62b78b4b62869c730873ad989e19"
      ],
      "author": {
        "name": "Samuel Benzaquen",
        "email": "sbenza@google.com",
        "time": "Tue Oct 20 11:24:10 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 11:27:44 2026 -0700"
      },
      "message": "Factor out MessageGenerator::GenerateMergeImplForField.\n\nPiperOrigin-RevId: 1003254069\n"
    },
    {
      "commit": "0bccc93d5baf62b78b4b62869c730873ad989e19",
      "tree": "8daf7dad6aeb7d1d8395ccb2350e2900f7dac7fe",
      "parents": [
        "4f0e290b10de49bc1ac3635f181762d5b6937d1e"
      ],
      "author": {
        "name": "Ding Qiuran",
        "email": "133388209+dynapx@users.noreply.github.com",
        "time": "Tue Oct 20 09:12:24 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 09:23:42 2026 -0700"
      },
      "message": "Check Python object allocation failures in upb bindings (#30614)\n\n## Summary\n\nHandle failed Python object allocations in several upb Python binding paths.\n\nThis change addresses cases where `PyType_GenericAlloc()` could return `NULL`\nbut the result was used immediately without validation. In an allocation\nfailure scenario, the code could dereference a NULL pointer and terminate the\nPython process instead of propagating the allocation failure as a Python\nexception.\n\n## Background\n\n`PyType_GenericAlloc()` is a Python C API allocation function. It may return\n`NULL` when object allocation fails, for example when the process is under\nmemory pressure. Callers must check the returned pointer before initializing\nthe object.\n\nThe affected code paths assigned fields to the result immediately after the\nallocation call. If allocation failed, these assignments could dereference\n`NULL`, causing a native crash and preventing the original `MemoryError` from\nbeing propagated normally.\n\n## Affected paths\n\n### Extension dictionary creation\n\nPyUpb_Message_GetExtensionDict\n  -\u003e PyUpb_ExtensionDict_New\n  -\u003e PyType_GenericAlloc\n  -\u003e ext_dict-\u003emsg\n\nIf allocation failed, `ext_dict` was `NULL` before `ext_dict-\u003emsg` was accessed.\n\n### Map iterator creation\n\nPython map iteration\n  -\u003e PyUpb_MapIterator_New\n  -\u003e PyType_GenericAlloc\n  -\u003e iter-\u003emap\n\nThe iterator constructor used the allocated object before checking whether\nallocation succeeded.\n\n### Message object creation\n\nPyUpb_RepeatedCompositeContainer_AppendNew\n  -\u003e PyUpb_Message_Get\n  -\u003e PyUpb_Descriptor_GetClass\n  -\u003e PyType_GenericAlloc\n\nThe message creation path now returns immediately when class lookup or object\nallocation fails. An invalid `Py_DECREF(NULL)` in the allocation failure path\nwas also removed.\n\n## Impact\n\nThese issues are most relevant under allocation failure or severe memory\npressure rather than during ordinary input processing. Without the checks, a\nfailed allocation could result in:\n\n- NULL pointer dereference;\n- termination of the Python interpreter;\n- loss of the original allocation error;\n- failure to propagate `MemoryError` through the normal Python API.\n\nThe practical impact is primarily process stability and availability. The\npatch does not change the behavior of successful object creation.\n\n## Changes\n\n- Check the result of `PyType_GenericAlloc()` in\n  `PyUpb_ExtensionDict_New`.\n- Check the result of `PyType_GenericAlloc()` in\n  `PyUpb_MapIterator_New`.\n- Preserve the normal error return from `PyUpb_Message_Get()` when class lookup\n  or object allocation fails.\n- Remove the invalid `Py_DECREF(NULL)` from the message allocation failure\n  path.\n\nRelated allocation checks in other Python binding constructors are already\npresent in the current upstream code and are not duplicated by this change.\n\n## Significance\n\nThese checks make allocation failure paths conform to the Python C API error\nhandling convention. They ensure that object construction either returns a\nvalid initialized object or returns `NULL` so that the active Python exception\ncan be propagated to the caller.\n\nThis is a defensive stability improvement for unusual but valid interpreter\nstates, including memory pressure and allocation-failure testing.\n\nCloses #30614\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/protocolbuffers/protobuf/pull/30614 from dynapx:python-allocation-error-handling 0112317d1cd4ab5e9f072e807cab6e1648ad3f38\nPiperOrigin-RevId: 1003153689\n"
    },
    {
      "commit": "4f0e290b10de49bc1ac3635f181762d5b6937d1e",
      "tree": "74c7013816a4b17d4d912c3005915a247ce030ec",
      "parents": [
        "6a40cd3517f72a01885452e2316b1889383f8fc2"
      ],
      "author": {
        "name": "Rachel Goldfinger",
        "email": "rgoldfinger@google.com",
        "time": "Tue Oct 20 07:57:01 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 07:59:18 2026 -0700"
      },
      "message": "Add .NET 10 test coverage and compatibility testing for C# Protobuf.\n\nPiperOrigin-RevId: 1003105362\n"
    },
    {
      "commit": "6a40cd3517f72a01885452e2316b1889383f8fc2",
      "tree": "62517670a30d8ebc5f72b0fe908970fa04cc56df",
      "parents": [
        "8bba504cae2a57279cc4ce6f42724505d738c49d"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Tue Oct 20 07:44:47 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 07:50:42 2026 -0700"
      },
      "message": "Implement available() in IterableByteBufferInputStream\n\nCodedInputStream.StreamDecoder behaves much better if remaining is implemented; without it it falls back to 4 KiB chunking (readRawBytesSlowPathRemainingChunks)\n\nPiperOrigin-RevId: 1003098302\n"
    },
    {
      "commit": "8bba504cae2a57279cc4ce6f42724505d738c49d",
      "tree": "4d52765ee59f4f8df19d907e06e6edeca2c3d8ff",
      "parents": [
        "4c1f89c49b9fa656ea336bb664e70082de4262a9"
      ],
      "author": {
        "name": "Manohar Paturi",
        "email": "186662190+ManoharPaturi@users.noreply.github.com",
        "time": "Mon Oct 19 23:48:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 23:50:32 2026 -0700"
      },
      "message": "Reject Duration strings carrying more than nanosecond precision (#30446)\n\nTimeUtil::FromString accepted fractional seconds with more than nine digits and silently produced a wrong Duration. The scaling step computes Pow(10, 9 - nanos_part.length()); when the fraction is longer than nine digits the exponent is negative, and Pow() treats a negative exponent as zero and returns 1. The unscaled digits are then handed to set_nanos, which truncates them to 32 bits, and IsDurationValid is happy with the result.\n\nConcretely, before the change:\n\n    TimeUtil::FromString(\"0.3294967297s\", \u0026d) -\u003e true, d \u003d { seconds: 0, nanos: -999999999 }\n    TimeUtil::FromString(\"1.0000000001s\", \u0026d) -\u003e true, d \u003d { seconds: 1, nanos: 1 }\n\nThe first case flips the sign of the parsed value outright, since 3294967297 truncated to int32 is -999999999. The second case silently moves a digit: 1.0000000001s becomes 1.000000001s. A caller that parses attacker supplied duration text gets a valid looking message with an arbitrary value.\n\nThe fix rejects any fraction longer than nine digits, the most a Duration can represent, matching the JSON mapping rule that caps fractional seconds at nine digits. Values with nine digits or fewer are unchanged.\n\nTesting: added assertions to DurationStringFormat in src/google/protobuf/util/time_util_test.cc. On unpatched main the five new FromString calls all return true (the EXPECT_FALSE lines fail); with the fix the full TimeUtilTest suite passes, 14 tests locally.\n\nCloses #30446\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/protocolbuffers/protobuf/pull/30446 from ManoharPaturi:fix-timeutil-duration-precision 7cd00b90a52fead245e8cc7dead270dba1b08887\nPiperOrigin-RevId: 1002869518\n"
    },
    {
      "commit": "4c1f89c49b9fa656ea336bb664e70082de4262a9",
      "tree": "d4e790974c10938d23fc0e111dc5aa5660cae9ba",
      "parents": [
        "b65d570ca1d74dc323fe03996c4e88b13214c1fd"
      ],
      "author": {
        "name": "Karen Wu",
        "email": "karenwuz@google.com",
        "time": "Mon Oct 19 17:11:11 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 17:14:35 2026 -0700"
      },
      "message": "Refactor PrintFieldComment in protoc to use io::Printer and Emit.\n\nPiperOrigin-RevId: 1002701946\n"
    },
    {
      "commit": "b65d570ca1d74dc323fe03996c4e88b13214c1fd",
      "tree": "0722f1374ed2be4e7a6dd41e4b9e202cf3e36c46",
      "parents": [
        "6fab1dc527d3952a310beb4d4438eff2fcf0af79"
      ],
      "author": {
        "name": "Joshua Haberman",
        "email": "haberman@google.com",
        "time": "Mon Oct 19 17:05:09 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 17:08:45 2026 -0700"
      },
      "message": "Regenerate the stale upb fasttable debug string golden file.\n\nPiperOrigin-RevId: 1002698725\n"
    },
    {
      "commit": "6fab1dc527d3952a310beb4d4438eff2fcf0af79",
      "tree": "80282285103730a1680a92d23aa5936974a82f60",
      "parents": [
        "ad2fa52bbe37b304279e38f4567f3eaadc62eb49"
      ],
      "author": {
        "name": "Mike Kruskal",
        "email": "mkruskal@google.com",
        "time": "Mon Oct 19 16:29:09 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 16:32:51 2026 -0700"
      },
      "message": "Rename the conformance TestManager to ResultLedger.\n\nA ledger is what it is: it tallies the outcomes of a conformance run\nagainst the failure list and writes the new list under --fix.  The next\nchange carves the read-only failure list out of it.  This one only\nrenames the class, its files and its accessors (test_manager() is now\nledger(), GetGlobalTestManager() GetGlobalResultLedger()), and restyles\nthe TODOs of the moved files while at it.\n\nPiperOrigin-RevId: 1002676778\n"
    },
    {
      "commit": "ad2fa52bbe37b304279e38f4567f3eaadc62eb49",
      "tree": "fe9ef54026d869f6950664f342b72c4f2fcfbcda",
      "parents": [
        "668c75d3bfb4102e23b71323b2c9ddc26bcfdf2b"
      ],
      "author": {
        "name": "Mike Kruskal",
        "email": "mkruskal@google.com",
        "time": "Mon Oct 19 16:25:08 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 16:28:29 2026 -0700"
      },
      "message": "Fix two JSON conformance tests that did not test what they claim.\n\nFloatFieldMinNegativeValue sent and expected 3.402823e+38, a copy of the\nFloatFieldMaxPositiveValue value, so the most negative finite float was\nnever exercised.  RepeatedFieldWrongElementTypeExpectingStringsGotMessage\nsent [\"1\", 2, \"3\", {\"a\": 4}], where the 2 is already a wrong element type\n(the case ExpectingStringsGotInt covers), so a parser that rejects ints\nbut accepts an object for a string field passed it for the wrong reason.\nUse -3.402823e+38 and \"2\" respectively.\n\nFailure lists match on the recorded failure message, so the one entry\nthat records a message for FloatFieldMinNegativeValue is updated to the\nnew value.\n\nPiperOrigin-RevId: 1002674327\n"
    },
    {
      "commit": "668c75d3bfb4102e23b71323b2c9ddc26bcfdf2b",
      "tree": "dc14265d638f30811ee8721acf31b4d8eee6792e",
      "parents": [
        "03456a2d489f2357e2706cffc01e67fff56263b1"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Mon Oct 19 16:01:41 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 16:12:38 2026 -0700"
      },
      "message": "Internal change\n\nPiperOrigin-RevId: 1002658967\n"
    },
    {
      "commit": "03456a2d489f2357e2706cffc01e67fff56263b1",
      "tree": "bfab32f9d0aedc7d3ad9cccf0c1e07ea473bb13c",
      "parents": [
        "2f5a3ba2e40a3ce909e11cde6b53697074e6814a"
      ],
      "author": {
        "name": "Runze Wang",
        "email": "runze@google.com",
        "time": "Mon Oct 19 15:58:06 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 16:01:33 2026 -0700"
      },
      "message": "Breaking change: Make the options returned by GetOptions() immutable in Python.\n\nThe options message returned by GetOptions() on descriptor objects is now frozen in all\nPython implementations (upb, C++, and pure Python). Modifying it, or any of its\nsub-messages, repeated fields, or maps, now raises\nFrozenInstanceError instead of emitting a warning.\n\nCallers that need a mutable copy should copy the options into\na new message first.\n\nhttps://protobuf.dev/news/2026-09-22/#immutable-getoptions\n\nPiperOrigin-RevId: 1002656748\n"
    },
    {
      "commit": "2f5a3ba2e40a3ce909e11cde6b53697074e6814a",
      "tree": "4e194e1aec27a5ee76d5ba28041ba97af6d19a11",
      "parents": [
        "b9b244618fbe3ab9faf2d467fc12fc440fb6d58f"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Mon Oct 19 14:33:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 14:38:10 2026 -0700"
      },
      "message": "Add GeneratedMessageLiteTest and UnknownFieldSetLiteTest to the Java test suites.\n\nPiperOrigin-RevId: 1002600286\n"
    },
    {
      "commit": "b9b244618fbe3ab9faf2d467fc12fc440fb6d58f",
      "tree": "42fa38de0300b9133e6cdeb5e7ec72ba0168dc00",
      "parents": [
        "a6d8103f21920c7f8df4e178db636099a91060cf"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Mon Oct 19 14:05:20 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 14:08:00 2026 -0700"
      },
      "message": "Optimize FieldMaskUtil and FieldMaskTree path splitting and leaf extraction in protobuf library.\n\nThis CL reduces path-splitting and tree-traversal overhead in FieldMaskUtil hot paths by iterating lazily over `absl::StrSplit` ranges (`SplitIterator` held in registers) instead of materializing intermediate `std::vector\u003cabsl::string_view\u003e` heap containers (`Splitter::ConvertToContainer`), and moving (`std::move`) terminal leaf path strings into `RepeatedPtrField` in `ForEachLeaf` / `MergeToFieldMask`.\n\nPiperOrigin-RevId: 1002579905\n"
    },
    {
      "commit": "a6d8103f21920c7f8df4e178db636099a91060cf",
      "tree": "c2c04b530e342a7aa3cc7df2705d4e84ef536814",
      "parents": [
        "564da255a5157725eea48b946a158ff19b2f2a0d"
      ],
      "author": {
        "name": "Runze Wang",
        "email": "runze@google.com",
        "time": "Mon Oct 19 13:38:00 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 13:41:01 2026 -0700"
      },
      "message": "Breaking change: Return NotImplemented when comparing descriptor containers with unrecognized types in the C++ and upb Python implementations.\n\nEquality comparisons (\u003d\u003d and !\u003d) between descriptor containers and objects of unrecognized types previously emitted a FutureWarning and treated the objects as unequal.\n\nThey now return NotImplemented, following standard Python comparison behaviour\nso that the reflected comparison on the other operand is attempted.\n\nhttps://protobuf.dev/news/2026-09-22/#return-notimplemented-for-unrecognized-types\n\nPiperOrigin-RevId: 1002560722\n"
    },
    {
      "commit": "564da255a5157725eea48b946a158ff19b2f2a0d",
      "tree": "3229e4204f0bb0a309dfcb29eb618055183b8807",
      "parents": [
        "ab564d2466a14f1926cb5c4e3a00603fdbe7cbf1"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Mon Oct 19 12:57:00 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 13:01:01 2026 -0700"
      },
      "message": "[ObjC] Emit C-function extensions in dedicated multi-source shards.\n\nAdds an `extensions_only` mode to `experimental_multi_source_generation`, requires `extension_generation_mode\u003dc_function` for multi-source generation, and places each C-function extension into its own `.pbobjc.m` shard in both `all` and `extensions_only` modes so unreferenced extensions can be dead-stripped by the linker.\n\nPiperOrigin-RevId: 1002532212\n"
    },
    {
      "commit": "ab564d2466a14f1926cb5c4e3a00603fdbe7cbf1",
      "tree": "95401b55205ed7740c8659542db574a542ecc819",
      "parents": [
        "0d04f69bcebcd3529ea6dc27605ffd20ffc61b79"
      ],
      "author": {
        "name": "Runze Wang",
        "email": "runze@google.com",
        "time": "Mon Oct 19 12:48:40 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 12:51:37 2026 -0700"
      },
      "message": "Breaking change: Raise IndexError for out-of-range indices in RepeatedContainer.pop() in Python upb implementation.\n\nPreviously, calling pop(index) on a repeated field with an index greater than\nor equal to the container\u0027s length emitted a FutureWarning and clamped the\nindex to the last element, removing and returning the last element instead. It\nnow raises IndexError, consistent with Python\u0027s native list.pop() behaviour and the\nPython protobuf pure-Python and C++ implementations.\n\nhttps://protobuf.dev/news/2026-09-22/#repeatedcontainerpop\n\nPiperOrigin-RevId: 1002527165\n"
    },
    {
      "commit": "0d04f69bcebcd3529ea6dc27605ffd20ffc61b79",
      "tree": "5e54d2e9b81c69a82cf14aac7155b0be11943869",
      "parents": [
        "7e527ef3704761524c6a8b52ed2212491ac69c84"
      ],
      "author": {
        "name": "Runze Wang",
        "email": "runze@google.com",
        "time": "Mon Oct 19 12:26:10 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 12:31:52 2026 -0700"
      },
      "message": "Breaking change: Enable NX (DEP) and ASLR for the Windows Python extension built with MinGW.\n\nThe upb-based Python extension for Windows is now\nlinked with -Wl,--dynamicbase and -Wl,--nxcompat (plus\n-Wl,--high-entropy-va on x86_64) when built with the MinGW toolchain, so the\nNX (DEP) and ASLR security features are enabled for the DLL.\n\nFixes #28688\n\nhttps://protobuf.dev/news/2026-09-22/#enable-nx-and-aslr\n\nPiperOrigin-RevId: 1002513467\n"
    },
    {
      "commit": "7e527ef3704761524c6a8b52ed2212491ac69c84",
      "tree": "366290b3f30aa01b33a515981315674d35c9e685",
      "parents": [
        "9d90af97c14e93079e86b68610c6962de5f94162"
      ],
      "author": {
        "name": "Samuel Benzaquen",
        "email": "sbenza@google.com",
        "time": "Mon Oct 19 12:24:07 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 12:27:28 2026 -0700"
      },
      "message": "Encapsulate `TcParser` split field access in typed field accessors.\n\nPiperOrigin-RevId: 1002512293\n"
    },
    {
      "commit": "9d90af97c14e93079e86b68610c6962de5f94162",
      "tree": "7a2b818d828006f5731c1980f5f98c8648d58bac",
      "parents": [
        "21cca7613ea893f44f2431f8dc138b12304021b6"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Mon Oct 19 12:02:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 12:04:56 2026 -0700"
      },
      "message": "[ObjC] Make experimental_multi_source_generation take a mode string.\n\nChanges the `experimental_multi_source_generation` generator option from a boolean to a mode string (`all`) so follow-up changes can add finer-grained sharding modes (such as sharding only extensions) alongside per-class sharding.\n\nPiperOrigin-RevId: 1002498401\n"
    },
    {
      "commit": "21cca7613ea893f44f2431f8dc138b12304021b6",
      "tree": "bd493d8060154d29108ed071cb86c79a98ccb588",
      "parents": [
        "dc33073afd16590f93468b18d1131a88e5709649"
      ],
      "author": {
        "name": "Ufuk Kayserilioglu",
        "email": "ufuk.kayserilioglu@shopify.com",
        "time": "Mon Oct 19 11:00:29 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 11:16:19 2026 -0700"
      },
      "message": "Ruby: define Google::Protobuf::VERSION in lib/google/protobuf/version.rb (#30762)\n\n### Motivation\n\nThe `google-protobuf` gem does not expose its version in Ruby code. The version is only a string literal in `ruby/google-protobuf.gemspec`. Most gems define a `VERSION` constant in `lib/\u003cgem\u003e/version.rb`, and the gemspec reads it from there. This lets applications and tools read the version at runtime with `Google::Protobuf::VERSION`.\n\n### Changes\n\n- Add `ruby/lib/google/protobuf/version.rb`, which defines `Google::Protobuf::VERSION`.\n- Make `ruby/google-protobuf.gemspec` read `s.version` from `Google::Protobuf::VERSION`.\n- Require `google/protobuf/version` at the end of `ruby/lib/google/protobuf.rb`, so the constant is available after `require \"google/protobuf\"`.\n- Add `//ruby/lib/google:protobuf/version.rb` to the `rb_bundle_fetch` sources in `WORKSPACE`, because the gemspec now requires the file.\n\n### Required change to the internal version update tool\n\n\u003e [!IMPORTANT]\n\u003e The internal version update tool (the `update_versions` library that makes the \"Updating version.json and repo version numbers\" commits) must change after this PR merges.\n\nThe tool currently writes the Ruby version into `ruby/google-protobuf.gemspec`. The legacy `update_version.py` (removed in #9983) used this pattern:\n\n```python\nRewriteTextFile(\u0027ruby/google-protobuf.gemspec\u0027,\n  lambda line : re.sub(\n    r\u0027^  s.version     \u003d \".*\"$\u0027,\n    \u0027  s.version     \u003d \"%s\"\u0027 % GetFullVersion(rc_suffix \u003d \u0027.rc.\u0027),\n    line))\n```\n\nAfter this PR, the gemspec does not contain a version literal, so that pattern matches nothing. The tool must write the version into `ruby/lib/google/protobuf/version.rb` instead, for example:\n\n```python\nRewriteTextFile(\u0027ruby/lib/google/protobuf/version.rb\u0027,\n  lambda line : re.sub(\n    r\u0027^    VERSION \u003d \".*\"$\u0027,\n    \u0027    VERSION \u003d \"%s\"\u0027 % GetFullVersion(rc_suffix \u003d \u0027.rc.\u0027),\n    line))\n```\n\nIf the tool does not change, the next version bump will leave `version.rb` at the old version without an error, and the gem will be published with the wrong version. `PROTOBUF_RUBY_VERSION` in `protobuf_version.bzl` still names the `.gem` file in the Bazel release rules, so the tool must continue to update both values.\n\nCloses #30762\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/protocolbuffers/protobuf/pull/30762 from Shopify:uk-add-version-file 36692bbd9ae1561d54622086f4c0e56ddb69fab1\nPiperOrigin-RevId: 1002455477\n"
    },
    {
      "commit": "dc33073afd16590f93468b18d1131a88e5709649",
      "tree": "1b0627a77849b035477abc6d0ac645609f5fcde5",
      "parents": [
        "1523d0ddb024a8121334298915860db24c4e3ced"
      ],
      "author": {
        "name": "Runze Wang",
        "email": "runze@google.com",
        "time": "Mon Oct 19 10:52:38 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 10:57:10 2026 -0700"
      },
      "message": "internal change\n\nPiperOrigin-RevId: 1002449807\n"
    },
    {
      "commit": "1523d0ddb024a8121334298915860db24c4e3ced",
      "tree": "f7a1238af9580fc5f5b55a12d0378fafa6190760",
      "parents": [
        "1d8382d5bdbd06af4e60e4d4e4d53241bfa5dbe8"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Mon Oct 19 10:12:39 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 10:32:51 2026 -0700"
      },
      "message": "Internal\n\nPiperOrigin-RevId: 1002421316\n"
    },
    {
      "commit": "1d8382d5bdbd06af4e60e4d4e4d53241bfa5dbe8",
      "tree": "44f0fb6b12a7804e0777f6c46515963f10d2d8ff",
      "parents": [
        "522b8d41d5d5cdc7ef581c913277aa309f9b7c6a"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Sun Oct 18 22:29:03 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Oct 18 22:31:23 2026 -0700"
      },
      "message": "Automated Code Change\n\nPiperOrigin-RevId: 1002088270\n"
    },
    {
      "commit": "522b8d41d5d5cdc7ef581c913277aa309f9b7c6a",
      "tree": "2abb4d282395de909cc4969886c7238081899337",
      "parents": [
        "687c2373612d9c7b379d7c93ab0765653512a231"
      ],
      "author": {
        "name": "Mike Kruskal",
        "email": "mkruskal@google.com",
        "time": "Sat Oct 17 15:29:24 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Oct 17 15:34:11 2026 -0700"
      },
      "message": "Add the main and an end-to-end test for gtest conformance suites.\n\ntest_environment_main installs the ConformanceEnvironment from the\ncommand-line flags (--testee_binary, --failure_list, --maximum_edition,\n--fix, ...) before RUN_ALL_TESTS(), so a conformance suite links it\ninstead of a generic gtest main. The sample suite and the integration\ntest run that binary as a real process and check the whole flow: passing\nand failing tests against a failure list, unseen expected failures in\nfull and partial runs, the --fix output, positional testee arguments and\nthe statistics in the XML report.\n\n--enforcement_level is a TestPriority flag, written as the priority\u0027s\nnumber: 0 enforces only P0, 1 (the default) P0 and P1.\nPiperOrigin-RevId: 1001586140\n"
    },
    {
      "commit": "687c2373612d9c7b379d7c93ab0765653512a231",
      "tree": "cdbfb04c54de6b8604235fb297db02007ea09309",
      "parents": [
        "7960788b21d416f43ea0d86725caa2da2fe77fe9"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Sat Oct 17 09:07:40 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Sat Oct 17 09:07:40 2026 +0000"
      },
      "message": "Auto-generate files after cl/1001380595\n"
    },
    {
      "commit": "7960788b21d416f43ea0d86725caa2da2fe77fe9",
      "tree": "aa57a3cdae86ef113d097ec277e964784fa92950",
      "parents": [
        "67af83971283cc19c043336f62f696f0790e1eec"
      ],
      "author": {
        "name": "Clayton Knittel",
        "email": "cknittel@google.com",
        "time": "Sat Oct 17 01:56:58 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Oct 17 01:59:14 2026 -0700"
      },
      "message": "Move InternalMetadata template definitions to dedicated source files\n\nMove `UnknownFieldSet`-related `InternalMetadata` template instantiations from `message.cc` into a new `metadata.cc` file, and introduce `metadata_lite.cc` for lite runtime definitions.\n\nThis is being done in preparation for an experimental change to `UnknownField`s, which will add more machinery to unknown fields that we\u0027ll want defined out-of-line. This is also better encapsulation, as the instantiations for these methods aren\u0027t in unrelated .cc files.\n\nPiperOrigin-RevId: 1001380595\n"
    },
    {
      "commit": "67af83971283cc19c043336f62f696f0790e1eec",
      "tree": "734d43ebc31d1fb145e4bc4cf0393b248e5c10b2",
      "parents": [
        "5a89c084a0c055b21804acd8eae5bfc8e5ba9e28"
      ],
      "author": {
        "name": "Clayton Knittel",
        "email": "cknittel@google.com",
        "time": "Sat Oct 17 01:00:09 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Oct 17 01:04:29 2026 -0700"
      },
      "message": "Fix clang-tidy warnings in `arena.h`.\n\nPiperOrigin-RevId: 1001361822\n"
    },
    {
      "commit": "5a89c084a0c055b21804acd8eae5bfc8e5ba9e28",
      "tree": "6cbc7d28dced51983d8c2fab277a42d72ef43cb3",
      "parents": [
        "ca495108a7bc4a41d1d3ae7496b3c61da31ada12"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Fri Oct 16 11:51:14 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 11:54:13 2026 -0700"
      },
      "message": "Internal change\n\nPiperOrigin-RevId: 1001001528\n"
    },
    {
      "commit": "ca495108a7bc4a41d1d3ae7496b3c61da31ada12",
      "tree": "035f138af4c5ff2f02d01878d1e5da7b52e71d55",
      "parents": [
        "4ac5e7412be51c92fe9e44ffb336e061bf743f20"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Fri Oct 16 11:16:10 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 11:19:22 2026 -0700"
      },
      "message": "Reject dependency and option_dependency containing null characters in C++ DescriptorPool\n\n`DescriptorBuilder::BuildFileImpl` validates that `FileDescriptorProto.name`,\n`package`, and symbol names do not contain embedded null characters (`\u0027\\0\u0027`),\nbut previously did not check `dependency` or `option_dependency`. As a result,\n`BuildFile` accepted `option_dependency` (and unknown/weak/lazy `dependency`)\nstrings with embedded null characters, creating placeholder `FileDescriptor`s\nwith null characters in their names or truncating/failing during lazy\ndependency initialization in `InternalDependenciesOnceInit`.\n\nPiperOrigin-RevId: 1000977826\n"
    },
    {
      "commit": "4ac5e7412be51c92fe9e44ffb336e061bf743f20",
      "tree": "ee54eae06a663409a45d7ad011bce6b522fc359f",
      "parents": [
        "9e6968fd01afa1d21e30fb0d9cf79df2611c0a85"
      ],
      "author": {
        "name": "Valeriy Avanesov",
        "email": "avanesov@google.com",
        "time": "Fri Oct 16 11:04:32 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 11:07:42 2026 -0700"
      },
      "message": "Convert CollectFields to take a projector instead of an equivalence operator.\n\nPiperOrigin-RevId: 1000969179\n"
    },
    {
      "commit": "9e6968fd01afa1d21e30fb0d9cf79df2611c0a85",
      "tree": "ae7ac783fc5a342daf451122bde23437d9109c43",
      "parents": [
        "9c75a05bb348f3b974f8e735dc5c840c4696dd85"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Fri Oct 16 10:43:03 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 10:46:17 2026 -0700"
      },
      "message": "Use direct array indexing in array-backed ByteString iterators.\n\n`ByteString.iterator()` previously returned an anonymous `AbstractByteIterator` whose outer reference held ByteString, calling `internalByteAt(currentPos)`.\n\nIn situations where JVM is not able to monomorphize this across `ByteString` subclasses, this may lead to real overhead in cases including going over the leaf iterators allocated inside `RopeByteString.iterator()`.\n\nPiperOrigin-RevId: 1000954635\n"
    },
    {
      "commit": "9c75a05bb348f3b974f8e735dc5c840c4696dd85",
      "tree": "46d2008f2705fde6e303dfa6acf45a18936fb2ab",
      "parents": [
        "b90d059b277c8178440dba0af83f97fb1a92b014"
      ],
      "author": {
        "name": "Valeriy Avanesov",
        "email": "avanesov@google.com",
        "time": "Fri Oct 16 10:10:15 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 10:16:37 2026 -0700"
      },
      "message": "Remove checks covering multiple batch-hasbit-checks.\n\nWe used to generate the checks like\n```\n if ((BatchCheckHasBit(has_bits[1], mask1) ||       // \u003c- this one\n      BatchCheckHasBit(has_bits[2], mask2))) {      // \u003c- this one\n  if (BatchCheckHasBit(has_bits[1], mask1)) { ... }\n  if (BatchCheckHasBit(has_bits[2], mask2)) { ... }\n}\n```\n\nI suppose they were added when the size of a batch was limited by 8. The current limit is 32. This CL eliminates these multi-batch checks without performance regression.\n\nPiperOrigin-RevId: 1000933241\n"
    },
    {
      "commit": "b90d059b277c8178440dba0af83f97fb1a92b014",
      "tree": "19cb23322ac85498133db4e37dcfe3304c91e258",
      "parents": [
        "197576d2c76b371af0a154c297956ee161657711"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Fri Oct 16 10:07:05 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 10:10:53 2026 -0700"
      },
      "message": "Make Python DescriptorPool.AddSerializedFile thread-safe under free-threading.\n\nPiperOrigin-RevId: 1000931290\n"
    },
    {
      "commit": "197576d2c76b371af0a154c297956ee161657711",
      "tree": "106959297da5d7890230dcaa099836fe48e1bad5",
      "parents": [
        "d8cd68cb822cd09cf2c94375ebe49db5f470ed57"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Fri Oct 16 16:26:02 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Fri Oct 16 16:26:31 2026 +0000"
      },
      "message": "Auto-generate files after cl/1000897067\n"
    },
    {
      "commit": "d8cd68cb822cd09cf2c94375ebe49db5f470ed57",
      "tree": "33730c1dd1ef40c9c0104ff567c397d84784e253",
      "parents": [
        "82f5e68ec41dcaa9210df98cbc196cc51ecc6f0c"
      ],
      "author": {
        "name": "Omer Mor",
        "email": "omermor@google.com",
        "time": "Fri Oct 16 09:18:31 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 09:21:13 2026 -0700"
      },
      "message": "Move DescriptorPool transient build state into stack-allocated BuildState.\n\n`pending_files_`, `known_bad_files_`, and `known_bad_symbols_` in `DescriptorPool::Tables` are only used while building descriptors or querying a fallback `DescriptorDatabase`. Moving them into `CheckpointData` (renamed to `BuildState`) and scoping `BuildState` on the stack of top-level entry points via `ScopedBuildState` shrinks `DescriptorPool::Tables` by 56 bytes and immediately releases all transient container backing buffers when the call finishes.\n\nPiperOrigin-RevId: 1000900978\n"
    },
    {
      "commit": "82f5e68ec41dcaa9210df98cbc196cc51ecc6f0c",
      "tree": "a22fad023f4e3543509e3c4848a2df6c1aa1ce35",
      "parents": [
        "584341ba6290f389c90ece4582e05e69b74ad1d3"
      ],
      "author": {
        "name": "Samuel Benzaquen",
        "email": "sbenza@google.com",
        "time": "Fri Oct 16 09:11:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 09:15:10 2026 -0700"
      },
      "message": "Codegen refactoring to simplify split layout changes.\n\nUse `$this_field$` and `$from_field$` in more places.\nExcept in Serialize functions, we must keep using `this_.$field_$` there because we interleave split and non-split fields to keep field order stable in the wire.\n\nCollapse the split-vs-!split codegen for repeated fields by making RawPtr forward some operations.\n\nPiperOrigin-RevId: 1000897067\n"
    },
    {
      "commit": "584341ba6290f389c90ece4582e05e69b74ad1d3",
      "tree": "449c56d5b8fcc6db60ceb6a3ac452d523a67b246",
      "parents": [
        "31893436119a953c17ee754060dd443e8b81d2a6"
      ],
      "author": {
        "name": "Samuel Benzaquen",
        "email": "sbenza@google.com",
        "time": "Fri Oct 16 08:17:41 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 08:23:23 2026 -0700"
      },
      "message": "Make Python DescriptorPool.AddSerializedFile thread-safe under free-threading.\n\nPiperOrigin-RevId: 1000867334\n"
    },
    {
      "commit": "31893436119a953c17ee754060dd443e8b81d2a6",
      "tree": "adabf1e3988df08c88695027a60774e841bdd51f",
      "parents": [
        "89b827405aed227b2cc9128088fcc4953fc936de"
      ],
      "author": {
        "name": "Charlie Beattie",
        "email": "cbeattie@google.com",
        "time": "Fri Oct 16 08:17:35 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 08:19:41 2026 -0700"
      },
      "message": "Python memoryview support for assigning to repeated fields.\n\nPiperOrigin-RevId: 1000867282\n"
    },
    {
      "commit": "89b827405aed227b2cc9128088fcc4953fc936de",
      "tree": "7c848e7915ea541c87a141ae7110ee9048c4d38e",
      "parents": [
        "53f69acd44df302a6cbda94fba0e2aa5ccbcdd6e"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Fri Oct 16 07:20:33 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 07:27:03 2026 -0700"
      },
      "message": "Fix double-offset calculation in BoundedByteString.equalsRange.\nThe code right now is adding this.offset twice so unless it\u0027s zero, we\u0027d end up comparing the bytes at 2 * this.offset.\n\nAdded tests to cover this use-case.\n\nPiperOrigin-RevId: 1000838699\n"
    },
    {
      "commit": "53f69acd44df302a6cbda94fba0e2aa5ccbcdd6e",
      "tree": "6597ff49a5c8e0e1c6dcaa572aa0d7e504e240be",
      "parents": [
        "164e3cbbfa127333df78004edc59cd2ff39eafee"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Fri Oct 16 09:19:59 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Fri Oct 16 09:19:59 2026 +0000"
      },
      "message": "Auto-generate files after cl/1000704772\n"
    },
    {
      "commit": "164e3cbbfa127333df78004edc59cd2ff39eafee",
      "tree": "974137c6119271dae9a1013522347b39fe81c774",
      "parents": [
        "09e117dd32fe50808be39913ef79ac82ed1f7cea"
      ],
      "author": {
        "name": "Valeriy Avanesov",
        "email": "avanesov@google.com",
        "time": "Fri Oct 16 02:05:13 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 16 02:09:11 2026 -0700"
      },
      "message": "Improve Clear codegen.\n\nThis:\n- eliminates the \"equivalence\" predicate passed to CollectFields, which wasn\u0027t transitive, commutative, maintained the state and wasn\u0027t an equivalence operator\n- unconditionally zeroes the zero-defaulted primitives (even if they\u0027re longer than 4 bytes)\n- avoid wrapping primitive-only chnks with BatchCheckHasBit\n- avoid BatchCheckHasBit checks with only one CheckHasBit in its body\nPiperOrigin-RevId: 1000704772\n"
    },
    {
      "commit": "09e117dd32fe50808be39913ef79ac82ed1f7cea",
      "tree": "8af9ab03cdc15bd4c8fa899e2a09534c6d443e6a",
      "parents": [
        "9935c448a143e4f8bf4773044df838b1eb3c4b5d"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Thu Oct 15 23:39:46 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 23:43:17 2026 -0700"
      },
      "message": "Remove dead `LargeJavaCodeExemptions` in `compiler/java/immutable/message_field.cc` and drop `large_java_code_exemption_list.cc` exclusion.\n\nPiperOrigin-RevId: 1000643040\n"
    },
    {
      "commit": "9935c448a143e4f8bf4773044df838b1eb3c4b5d",
      "tree": "aa20ed96022e3a1ab5286f4a5cf33d5744c1922a",
      "parents": [
        "36f766bf072f4efc354b2707909088f378d16834"
      ],
      "author": {
        "name": "Clayton Knittel",
        "email": "cknittel@google.com",
        "time": "Thu Oct 15 22:58:14 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 23:01:29 2026 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 1000626984\n"
    },
    {
      "commit": "36f766bf072f4efc354b2707909088f378d16834",
      "tree": "6f37f23e8349be2b774779287c35ff3391fccd7a",
      "parents": [
        "23922ae013d14d6306390dfa4b99d0243dbc7134"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Fri Oct 16 05:50:02 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Fri Oct 16 05:50:31 2026 +0000"
      },
      "message": "Auto-generate files after cl/1000617659\n"
    },
    {
      "commit": "23922ae013d14d6306390dfa4b99d0243dbc7134",
      "tree": "94748abf7a5cbc8d2cf9ef6c73e9e7b1d24b4d39",
      "parents": [
        "a19cce4fe0e6db8726c025fc3dae1967ea265fd0"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Thu Oct 15 22:47:11 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 22:49:47 2026 -0700"
      },
      "message": "Automated Code Change\n\nPiperOrigin-RevId: 1000621912\n"
    },
    {
      "commit": "a19cce4fe0e6db8726c025fc3dae1967ea265fd0",
      "tree": "c03d83e354f000145e90138f9bb06587635a3cf6",
      "parents": [
        "c1ffca9f0175672fe9abf27e80850b760b31987c"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Thu Oct 15 22:34:51 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 22:38:48 2026 -0700"
      },
      "message": "Shorten remaining verbose Protobuf BSD license headers to the 6-line abbreviated form that references LICENSE.\n\nPiperOrigin-RevId: 1000617659\n"
    },
    {
      "commit": "c1ffca9f0175672fe9abf27e80850b760b31987c",
      "tree": "b3caccf16f44e21c2d0dc23557d1740e10f8fd74",
      "parents": [
        "b3ea10d23edc1ccd16ac353cd8a0397d5f2cba93"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Thu Oct 15 23:13:32 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Thu Oct 15 23:13:32 2026 +0000"
      },
      "message": "Auto-generate files after cl/1000451860\n"
    },
    {
      "commit": "b3ea10d23edc1ccd16ac353cd8a0397d5f2cba93",
      "tree": "d235aaae74d520612a4641bc87619358722d3af3",
      "parents": [
        "0df3b9bccc73ca80b58e953a1dfa614a9a43511c"
      ],
      "author": {
        "name": "Clayton Knittel",
        "email": "cknittel@google.com",
        "time": "Thu Oct 15 16:00:44 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 16:03:13 2026 -0700"
      },
      "message": "Partition public and private methods in generated message code.\n\nWith this change, all public members are at the top of the generated class, and all private are at the bottom.\n\nPiperOrigin-RevId: 1000451860\n"
    },
    {
      "commit": "0df3b9bccc73ca80b58e953a1dfa614a9a43511c",
      "tree": "6fbe0c00f2494f03aba19a561752421f417431d9",
      "parents": [
        "d4467019d3f49cf3ff09244216c498f9bb65d805"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Thu Oct 15 21:26:25 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Thu Oct 15 21:26:25 2026 +0000"
      },
      "message": "Auto-generate files after cl/1000384592\n"
    },
    {
      "commit": "d4467019d3f49cf3ff09244216c498f9bb65d805",
      "tree": "927d76045abae2594d44aad3e4d8b131576b99c7",
      "parents": [
        "a75444f9f0c1a5d65a010bd9b6e0403de4f73828"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Thu Oct 15 14:14:01 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 14:17:46 2026 -0700"
      },
      "message": "Prevent signed integer overflow in _upb_WireReader_SkipGroup.\n\nWhen `upb_Message_FindUnknown2` is called with a `depth_limit` of `INT_MIN` on a message containing an unknown group field, `_upb_WireReader_SkipGroup` evaluates `--depth_limit \u003c 0`. Decrementing `INT_MIN` before the bounds check triggers signed integer overflow, wrapping around to `INT_MAX` when not compiled with UBSan and bypassing the recursion depth check.\n\nCheck `depth_limit \u003c\u003d 0` in `_upb_WireReader_SkipGroup` before decrementing `depth_limit`, and add a regression unit test for `upb_Message_FindUnknown2` with `INT_MIN` on an unknown group field.\n\nPiperOrigin-RevId: 1000384592\n"
    },
    {
      "commit": "a75444f9f0c1a5d65a010bd9b6e0403de4f73828",
      "tree": "50a885d65e9e187b35d91c005eaea24fd330e507",
      "parents": [
        "c74a69a0b9910e233831125d34422d8bb97820ec"
      ],
      "author": {
        "name": "Karen Wu",
        "email": "karenwuz@google.com",
        "time": "Thu Oct 15 13:03:12 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 13:07:17 2026 -0700"
      },
      "message": "Add release branch 37.x\n\nPiperOrigin-RevId: 1000335874\n"
    },
    {
      "commit": "c74a69a0b9910e233831125d34422d8bb97820ec",
      "tree": "7dfbe7c70e2af2763a0b5e13cf1826379e6ec4c8",
      "parents": [
        "df068afcb34df11adcde889076453fc681ee6314"
      ],
      "author": {
        "name": "Joshua Haberman",
        "email": "haberman@google.com",
        "time": "Thu Oct 15 12:45:00 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 12:47:05 2026 -0700"
      },
      "message": "Track MessageTree hierarchy and detachment across ContainerBase objects.\n\nAdd struct MessageTree with intrusive reference counting and a prev_tree chain to retain ancestor trees across detachment so concurrent callers that loaded GetTree() before detachment never encounter use-after-free. Add an atomic MessageTree* pointer to ContainerBase and maintain tree membership across CMessage, MapContainer, RepeatedCompositeContainer, and RepeatedScalarContainer construction, destruction, and submessage detachment/reparenting (UpdateSubtreeTree).\n\nIn this single-reference model, only root Python messages hold a reference count on MessageTree, eliminating refcount traffic when creating and traversing child messages and containers. Subtrees detach into a new MessageTree with a link to prev_tree.\n\nPiperOrigin-RevId: 1000324453\n"
    },
    {
      "commit": "df068afcb34df11adcde889076453fc681ee6314",
      "tree": "df5ffede5dad689ae85c30e299d31dc5ae257450",
      "parents": [
        "730b1e528c65b162ade8910997eb183965939f9c"
      ],
      "author": {
        "name": "Samuel Benzaquen",
        "email": "sbenza@google.com",
        "time": "Thu Oct 15 12:27:05 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 12:31:09 2026 -0700"
      },
      "message": "Add SimpleThreadSafeDescriptorDatabase for concurrent DescriptorDatabase access.\n\nProvides a thread-safe DescriptorDatabase implementation into which files can be inserted and queried concurrently across threads.\n\nPiperOrigin-RevId: 1000313366\n"
    },
    {
      "commit": "730b1e528c65b162ade8910997eb183965939f9c",
      "tree": "570d70e37b26dd89dcef4921d8e0656b5b5d0528",
      "parents": [
        "cac136ac31ed2270081546d2d00732e8e6f08303"
      ],
      "author": {
        "name": "Clayton Knittel",
        "email": "cknittel@google.com",
        "time": "Thu Oct 15 12:22:29 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 12:26:20 2026 -0700"
      },
      "message": "Fix clang-tidy warnings in arenastring.h.\n\nPiperOrigin-RevId: 1000310541\n"
    },
    {
      "commit": "cac136ac31ed2270081546d2d00732e8e6f08303",
      "tree": "3436f3f6fe6b131f4ce528665c4dd16f914dedba",
      "parents": [
        "5025e6c822c79f119ca0ca6cbc8cfbde21556897"
      ],
      "author": {
        "name": "Samuel Benzaquen",
        "email": "sbenza@google.com",
        "time": "Thu Oct 15 12:14:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 12:18:39 2026 -0700"
      },
      "message": "Make BuildFileErrorCollector thread-safe under free-threaded Python.\n\nPiperOrigin-RevId: 1000305679\n"
    },
    {
      "commit": "5025e6c822c79f119ca0ca6cbc8cfbde21556897",
      "tree": "cff6328dd568c3f1cf5f4f38a0b34be01e881960",
      "parents": [
        "6292fda5078e58d9ee7bf5f4107f4d67016c34f6"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Thu Oct 15 18:51:03 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Thu Oct 15 18:51:03 2026 +0000"
      },
      "message": "Auto-generate files after cl/1000281117\n"
    },
    {
      "commit": "6292fda5078e58d9ee7bf5f4107f4d67016c34f6",
      "tree": "2ccc76506f769d2bc9ab5943070db0a78f3d5ae6",
      "parents": [
        "393aac38aed3a988b7829359c5c2388f03abc44d"
      ],
      "author": {
        "name": "Ada Zhang",
        "email": "adazhang@google.com",
        "time": "Thu Oct 15 11:39:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 11:41:56 2026 -0700"
      },
      "message": "Harden canonical and non-canonical extension invariant checks in upb.\n\nPiperOrigin-RevId: 1000281117\n"
    },
    {
      "commit": "393aac38aed3a988b7829359c5c2388f03abc44d",
      "tree": "91b2f7f5797eb99394271e3cefa2865cec028fb8",
      "parents": [
        "f9ce188351fd85091187154836233b0df92ac44c"
      ],
      "author": {
        "name": "Lukasz Towarek",
        "email": "lukasz.towarek@gmail.com",
        "time": "Thu Oct 15 11:07:49 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 11:10:35 2026 -0700"
      },
      "message": "Make the arena\u0027s 8-byte block alignment requirement explicit (#28011)\n\nThe arena requires 8-byte aligned blocks throughout: `ArenaAlignDefault::align`\nis 8, `kBlockHeaderSize`/`kSerialArenaSize`/`kAllocPolicySize` are all multiples\nof 8, and `TaggedAllocationPolicyPtr` borrows the low bits of the\n`AllocationPolicy*` it stores. Today that comes from what `operator new`\nreturns rather than from anything the arena states.\n\nThe existing checks are weaker than the requirement. `InitializeWithPolicy`\nvalidates the stored policy pointer with `\u0026 3` — 4-byte alignment — for a\npointer that needs 8, so a misaligned policy passes it.\n`ArenaOptions::initial_block` is a `char*` with no documented alignment\nrequirement and only a debug `DCHECK` in `FirstBlock`.\n\n* `alignas(8)` on `AllocationPolicy`, so `alignof` is the same on 32- and\n  64-bit and the checks below have one yardstick\n* `static_assert` that `operator new` guarantees at least\n  `ArenaAlignDefault::align`, so a platform that cannot meet it fails to build\n* DCHECK in `AllocateMemory` that the block an allocator returns is aligned,\n  which also covers a user-supplied `block_alloc`\n* replace the hardcoded `\u0026 3` masks in `InitializeWithPolicy` with `alignof`\n  and accessors on the tagged pointer\n* derive `kTagsMask` from the flags that exist, so adding a fourth flag fails\n  to compile instead of `get()` silently clearing bit 3\n* document the requirement on `ArenaOptions::initial_block` and `block_alloc`\n\nThe runtime check is a DCHECK.\n\nCloses #28011\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/protocolbuffers/protobuf/pull/28011 from ltowarek:alignment a76f97d8c016ef9d42f309e0eccafe9bb79426bd\nPiperOrigin-RevId: 1000258210\n"
    },
    {
      "commit": "f9ce188351fd85091187154836233b0df92ac44c",
      "tree": "16238865b61ae40236c6bfc71e91b91cd02e5a27",
      "parents": [
        "c277a14b024547156c9af3160e2f0d18755b63b2"
      ],
      "author": {
        "name": "Zachary Anker",
        "email": "zach.anker@gmail.com",
        "time": "Thu Oct 15 10:55:55 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 10:59:29 2026 -0700"
      },
      "message": "Ruby: initialize descriptor_pool in FieldDescriptor_alloc (#30138)\n\nSmall segfault fix when using `.allocate` on field descriptors, since it bypasses `initialize` we don\u0027t have `descriptor_pool` setup and `FieldDescriptor_mark` would hand garbage to GC.\n\nIncludes an associated regression fix.\n\nCloses #30138\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/protocolbuffers/protobuf/pull/30138 from zanker:zanker/ruby-gc-safety-fixes ca4ad704c937e54bdf4c319aa1452eaae51b4183\nPiperOrigin-RevId: 1000249042\n"
    },
    {
      "commit": "c277a14b024547156c9af3160e2f0d18755b63b2",
      "tree": "650f14953dea91a1f71588529e4edb30e7ca7e40",
      "parents": [
        "b7eb1a2feaa9c27928e918517207e58e382b83ce"
      ],
      "author": {
        "name": "Samuel Benzaquen",
        "email": "sbenza@google.com",
        "time": "Thu Oct 15 10:09:21 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 10:11:40 2026 -0700"
      },
      "message": "Remove unused initialization and copy methods from FieldGeneratorBase.\n\n`GenerateAggregateInitializer` and `GenerateCopyAggregateInitializer` have no remaining callers after migrating message construction to member initializers. `GenerateCopyConstructorCode` was only called from `GenerateMergeFrom` for POD fields (`SingularPrimitive` and `SingularEnum`), where its implementation is identical to `GenerateMergingCode`.\n\nCall `GenerateMergingCode` unconditionally in `GenerateMergeFrom` and remove `IsPOD`, `GenerateCopyConstructorCode`, `GenerateAggregateInitializer`, and `GenerateCopyAggregateInitializer` across `FieldGeneratorBase`, `FieldGenerator`, and all field generators.\n\nPiperOrigin-RevId: 1000216254\n"
    },
    {
      "commit": "b7eb1a2feaa9c27928e918517207e58e382b83ce",
      "tree": "75965f99d05aea5cb038ab146b6418391e8e74b3",
      "parents": [
        "686bbc5ab8e66d0d3eacfa86427d38fccfabe90f"
      ],
      "author": {
        "name": "Chris Kennelly CA",
        "email": "ckennelly@google.com",
        "time": "Thu Oct 15 07:27:22 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 07:31:41 2026 -0700"
      },
      "message": "Remove null-termination padding from `DescriptorNames`.\n\nPreviously, `DescriptorNames` appended a trailing `\\0` byte after each stored name (`name()`, `full_name()`, `lowercase_name()`, `camelcase_name()`, and `json_name()`) as a temporary compatibility measure after migrating descriptor name accessors from `const std::string\u0026` to `absl::string_view`. Remove the extra `\\0` bytes and adjust offsets and allocation size limits accordingly.\n\nPiperOrigin-RevId: 1000122291\n"
    },
    {
      "commit": "686bbc5ab8e66d0d3eacfa86427d38fccfabe90f",
      "tree": "6cb971e60573285a12b8989ec06b9078e25d4580",
      "parents": [
        "50ce00672cee2e7370c2299b4a83dc5984b09240"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Thu Oct 15 01:05:57 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 15 01:10:39 2026 -0700"
      },
      "message": "Prevent unnecessary copy of type name in message metaclass.\n\nExtract `name` with `U` (`PyObject *`) instead of `s` (`const char *`) in `PyArg_ParseTupleAndKeywords` to prevent copying `name` with `s` (`const char *`) instead of `O` (`PyObject *`) in `Py_BuildValue` during `tp_new` of the message metaclass.\n\nPiperOrigin-RevId: 999940362\n"
    },
    {
      "commit": "50ce00672cee2e7370c2299b4a83dc5984b09240",
      "tree": "0c7e03e744e361a6429b9c9970c113a491ab855b",
      "parents": [
        "5d1ef38993a8f5c8335da2efa16c9d2b1ec55eb8"
      ],
      "author": {
        "name": "karenwuz",
        "email": "karenwuz@google.com",
        "time": "Wed Oct 14 23:20:13 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 23:25:39 2026 -0700"
      },
      "message": "Updating version.json and repo version numbers to: 38.0-dev (#30696)\n\nNOTE: This should be reviewed and imported via Copybara per the normal PR review process.\n\nCloses #30696\n\nPiperOrigin-RevId: 999888564\n"
    },
    {
      "commit": "5d1ef38993a8f5c8335da2efa16c9d2b1ec55eb8",
      "tree": "132a13991cb08e4b91ff15ea3c1ed38a1a4b38e8",
      "parents": [
        "3e7b040569311adde5b5d6bcddd1aa3d4f547de2"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Wed Oct 14 20:07:15 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 20:10:58 2026 -0700"
      },
      "message": "Two Windows-specific fixes for protobuf.\n\nUndefine Windows `FAR` macro in protobuf headers and specify explicit pointer return types in `ArenaPtrCmpBase::Unpack`.\n\nOn Windows, `\u003cwindef.h\u003e` defines `FAR` as an empty macro, which collides with generated C++ protobuf enum values and identifiers named `FAR`. Push and undefine `FAR` in os_macros_undef.inc and restore it in os_macros_restore.inc alongside `NEAR`.\n\nAdditionally, specify `T*` instead of deduced `auto` on the `PROTOBUF_NULLABLE` / `PROTOBUF_NONNULL` `ArenaPtrCmpBase::Unpack` overloads in arena.h to avoid a Clang Microsoft C++ ABI name-mangler segfault when mangling dependent trailing-return-type `operator\u003d\u003d` instantiations on Windows.\n\nPiperOrigin-RevId: 999805821\n"
    },
    {
      "commit": "3e7b040569311adde5b5d6bcddd1aa3d4f547de2",
      "tree": "ec11b1470d50411b03f3eeb6a54a55fa10a14abd",
      "parents": [
        "66c43f9931f20a40897a406455e0f591c619b62c"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Thu Oct 15 03:06:58 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Thu Oct 15 03:06:58 2026 +0000"
      },
      "message": "Auto-generate files after cl/999800168\n"
    },
    {
      "commit": "66c43f9931f20a40897a406455e0f591c619b62c",
      "tree": "1cb3bdebdd19d0bb580b76d62d006673f3faba0f",
      "parents": [
        "9b38c456f3f0c0f934d08230f339772e1f9ff9aa"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Wed Oct 14 19:55:03 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 20:00:12 2026 -0700"
      },
      "message": "Shrink upb_MiniTableExtension by removing sub member\n\nRemove the `sub` union member from `struct upb_MiniTableExtension` so\nthat extensions without sub-messages or closed enums do not pay for\nunused sub storage. When an extension has a sub, it is stored in trailing\n`upb_MiniTableSubInternal` storage directly after the\n`upb_MiniTableExtension`, described by the new internal\n`upb_MiniTableExtensionWithSub` type.\n\nDetails:\n\n*   The MiniDescriptor decoder computes the trailing sub offset\n    (`submsg_ofs`) for the target platform\u0027s pointer size. The minitable\n    generator emits it via `UPB_SIZE(ofs32, ofs64)`, so 32-bit builds get the\n    correct offset. The decoder writes the sub only when building for the\n    native platform.\n*   The minitable generator declares `\u003cext\u003e_obj` as either\n    `upb_MiniTableExtensionWithSub` or a bare `upb_MiniTableExtension`, and\n    emits a `UPB_STATIC_ASSERT` that the sub\u0027s offset in\n    `upb_MiniTableExtensionWithSub` matches `submsg_ofs` on every platform.\n*   Add `_upb_MiniTableField_Sub()`, which locates a field\u0027s sub from\n    `submsg_ofs`, and use it everywhere that calculation was duplicated\n    (MiniTable sub getters, extension sub setters, `upb_MiniTable_SetSub*()`,\n    and the MiniDescriptor decoder).\n*   Add `_upb_MiniTableField_HasSub()` for the \"sub-message or closed enum\"\n    check used to decide whether a field has a sub.\n*   `upb_FieldDef` builds extension MiniTables with\n    `_upb_MiniTableExtension_Build()` instead of duplicating the\n    \"has sub\" logic and the allocation size.\n\nPiperOrigin-RevId: 999800168\n"
    },
    {
      "commit": "9b38c456f3f0c0f934d08230f339772e1f9ff9aa",
      "tree": "6b6faabdeb21592aa1ce5155fbda3c8e40cdb96a",
      "parents": [
        "8d6d0a890e42e2de5e6d658a70de59d439bec8cc"
      ],
      "author": {
        "name": "Joshua Haberman",
        "email": "haberman@google.com",
        "time": "Wed Oct 14 17:03:41 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 17:06:59 2026 -0700"
      },
      "message": "Added concurrency primitives for memory safe concurrency in free threaded Python.\n\nPython code should avoid triggering data races, but these primitives will help us guarantee that even if a program is buggy and invokes a data race, we will fail with an error rather than allow the program to SEGV or corrupt memory.\n\nThese primitives will impose some overhead even in well-behaved programs.  The worst case is if two threads are sharing a proto read-only and both threads are frequently reading the proto fields.  Our read locks will cause contention on the access guard, even though no data race is present.  Our plan for mitigating this is to introduce truly immutable types, which will be able to share safely without any locking at all.\n\nPiperOrigin-RevId: 999721561\n"
    },
    {
      "commit": "8d6d0a890e42e2de5e6d658a70de59d439bec8cc",
      "tree": "5c4656951e927f1452be9585e36b194244c04c8c",
      "parents": [
        "7e6778eb2e5b7828b000557ec93c76515f5ee91d"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Wed Oct 14 23:26:59 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Wed Oct 14 23:26:59 2026 +0000"
      },
      "message": "Auto-generate files after cl/999693970\n"
    },
    {
      "commit": "7e6778eb2e5b7828b000557ec93c76515f5ee91d",
      "tree": "5fe3cd72974e103a16f1f7e1955b8f400090357b",
      "parents": [
        "a7a7e58ad11bba521e72343e77b9afc6a30a068a"
      ],
      "author": {
        "name": "Clayton Knittel",
        "email": "cknittel@google.com",
        "time": "Wed Oct 14 16:15:32 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 16:18:42 2026 -0700"
      },
      "message": "Pass the parent message to string field `SetAllocated` and `Release`.\n\nUpdates `ArenaStringPtr` and `InlinedStringField` to take a `const MessageLite\u0026` instead of `Arena*` in `SetAllocated`, `InitAllocated`, and `Release` methods. This reduces bloat in inlined setter code in callers, and in some cases delays loading the arena pointer unless it is needed.\n\nPiperOrigin-RevId: 999693970\n"
    },
    {
      "commit": "a7a7e58ad11bba521e72343e77b9afc6a30a068a",
      "tree": "ae1fb38171d31d14cc84f4a8b4de6c6c18f01386",
      "parents": [
        "cb9f0729019143b8ef74f8cc101b4a021e62b2fb"
      ],
      "author": {
        "name": "Samuel Benzaquen",
        "email": "sbenza@google.com",
        "time": "Wed Oct 14 15:49:06 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 15:51:55 2026 -0700"
      },
      "message": "Clean up the LazyField refactor experiment.\n\nIt is fully released now.\n\nPiperOrigin-RevId: 999676567\n"
    },
    {
      "commit": "cb9f0729019143b8ef74f8cc101b4a021e62b2fb",
      "tree": "641ae791ca43c162fa703563f97e1f70c7518818",
      "parents": [
        "c99c82402344dc15b62123dbeee27fbe98556102"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Wed Oct 14 15:26:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 15:30:17 2026 -0700"
      },
      "message": "Use GetResolvedSourceFeatureExtension in SupportUnknownEnumValue.\n\nPiperOrigin-RevId: 999662262\n"
    },
    {
      "commit": "c99c82402344dc15b62123dbeee27fbe98556102",
      "tree": "72e17ee443dd110025e7e0d33c86c03c42a56ba2",
      "parents": [
        "9a89cb242d7937f461563e4479c1d610d1c89b10"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Wed Oct 14 14:48:26 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 14:52:18 2026 -0700"
      },
      "message": "Fix unused variable warnings\n\nRemoving `_LIBCPP_DISABLE_UNUSED_STRUCT_WARNINGS` from libc++ enables\n`[[gnu::__warn_unused__]]` on standard library types (such as\n`std::string`), surfacing `-Wunused-variable` warnings in\n`//third_party/protobuf`. See [upstream LLVM commit](https://github.com/llvm/llvm-project/commit/ab8b037ef7b398aa864959a69f328fa69b567f74) for reference.\n\n- Remove unreferenced `std::string` declarations (`ext_scope` in\n  `gen_extensions.cc` and `default_value` in `extension.cc`) whose\n  initializers have no side effects.\n- Annotate `class_name`, `mini_table_name`, and `crate_name` with\n  `[[maybe_unused]]` where their initializers invoke helper functions.\n\nPiperOrigin-RevId: 999636704\n"
    },
    {
      "commit": "9a89cb242d7937f461563e4479c1d610d1c89b10",
      "tree": "2de880c24a2de58147ae07f299b4e745373783d7",
      "parents": [
        "a9549da1beedf8713eae42f45583fb7c53c7ddda"
      ],
      "author": {
        "name": "Samuel Benzaquen",
        "email": "sbenza@google.com",
        "time": "Wed Oct 14 13:35:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 13:39:36 2026 -0700"
      },
      "message": "ci(objectivec): Warm up CoreSimulatorService before running iOS Xcode tests\n\nOn freshly started macos-15 runners, CoreSimulatorService can take longer than\nXcode 16\u0027s ~1 minute timeout to start, causing `xcodebuild` to fail with\n\"Unable to find a device matching the provided destination specifier\". Run\n`xcrun simctl list devices available` before `xcodebuild` on iOS to block until\nCoreSimulatorService is ready (see\nhttps://github.com/actions/runner-images/issues/12777).\n\nPiperOrigin-RevId: 999586157\n"
    },
    {
      "commit": "a9549da1beedf8713eae42f45583fb7c53c7ddda",
      "tree": "865db1673ae2a208f2f3631b0fa73cd0ea0ffe75",
      "parents": [
        "87852d6063537736bc096d3b3dd7edfd64368c22"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Wed Oct 14 13:18:13 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 13:21:42 2026 -0700"
      },
      "message": "Add RepeatedMut::truncate and RepeatedMut::resize to Rust Protobuf.\n\nAllow callers to shorten or resize repeated fields in place, matching Vec::truncate and Vec::resize.\n\nPiperOrigin-RevId: 999573912\n"
    },
    {
      "commit": "87852d6063537736bc096d3b3dd7edfd64368c22",
      "tree": "67fe817e07a0fbe9ac8de93217a458400d66f650",
      "parents": [
        "ad1feecd7c923e4d81deb313f446283055f4e0a7"
      ],
      "author": {
        "name": "carlos-al",
        "email": "carlos.antolin.lucas@gmail.com",
        "time": "Wed Oct 14 12:16:45 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 12:24:29 2026 -0700"
      },
      "message": "fix: [C++] prevent out-of-bounds writes in Cord map entries (#29171)\n\n## Summary\n\n  This PR fixes an out-of-bounds write when parsing Cord-enabled bytes values in compiler-generated C++ map entries.\n\n  ## Analysis\n\n  A file-level Cord feature could propagate to a synthetic map-entry value even though its generated member uses string-backed `ArenaStringPtr` storage.\n\n  The generated parse table consequently described the 8-byte member as a 16-byte Cord. Parsing an inline Cord could write eight bytes beyond the 40-byte map-entry object and corrupt adjacent memory.\n\n  ## The Fix\n\n  Normalize synthetic map-entry fields to their physical string representation during descriptor processing.\n\n  For compatibility with previously generated code, also normalize stale Cord metadata when parsing a synthetic map-entry value.\n\n  ## Testing\n\n  - Added regression coverage for current generated metadata\n  - Added heap and Arena coverage for previously generated stale metadata\n  - Confirmed that removing the parser defense triggers an ASan-detected invalid access\n  - Confirmed that the fixed tests pass under GCC ASan\n  - Ran  `bazel test //src/google/protobuf:all`, which selected relevant C++ test suite: 55 tests passed\n\nCloses #29171\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/protocolbuffers/protobuf/pull/29171 from carlos-al:fix/cord-map-entry-representation-main 49aa96b686637209178164832317978ce8744881\nPiperOrigin-RevId: 999533082\n"
    },
    {
      "commit": "ad1feecd7c923e4d81deb313f446283055f4e0a7",
      "tree": "d8558347eea36d9813df2bdee831f9243888ee4a",
      "parents": [
        "54fc8996c29c65fe9c8d6cb571ff9d2704090d75"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Wed Oct 14 19:19:30 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Wed Oct 14 19:19:30 2026 +0000"
      },
      "message": "Auto-generate files after PR #27712\n"
    },
    {
      "commit": "54fc8996c29c65fe9c8d6cb571ff9d2704090d75",
      "tree": "968f274938d3678376b1314aeb9cf4b2c05edc0d",
      "parents": [
        "08163c7a32f5afd7ae69aad96e87fa328adf09ae"
      ],
      "author": {
        "name": "Anthony Hurtado",
        "email": "amhurtado@pm.me",
        "time": "Wed Oct 14 12:03:24 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 12:10:22 2026 -0700"
      },
      "message": "Fix integer truncation and missing NULL checks in upb (#27712)\n\n## Summary\n\nFour hardening fixes for upb internals found during security audit:\n\n1. **compare_unknown.c:122-126 — integer truncation + missing NULL check**: `oldsize` and `newsize` are declared as `int` but hold `size_t * sizeof(...)` products. On 64-bit systems, these truncate to 32 bits, causing incorrect `upb_grealloc` arguments at large field counts (~89.5M unknown fields). Also adds missing NULL check after `upb_grealloc`, using the existing `upb_UnknownFields_OutOfMemory()` longjmp handler.\n\n2. **map_sorter.h/map_sorter.c — same integer truncation pattern**: `_upb_mapsorter` struct fields (`size`, `cap`) and `_upb_sortedmap` fields (`start`, `pos`, `end`) are `int` despite `_upb_Map_Size()` returning `size_t`. Same truncation overflow as #1.\n\n3. **copy.c:41 — missing NULL check before memcpy**: `upb_Clone_StringView` calls `upb_Arena_Malloc` then `memcpy` without checking for NULL. The parallel code path in `upb_Clone_MessageValue` (same file, line 67-69) correctly checks.\n\n4. **array.h:83 — missing overflow check in array allocation**: `_upb_Array_NewMaybeAllowSlow` computes `init_capacity \u003c\u003c elem_size_lg2` without overflow guard. The parallel `_upb_Array_Realloc` (`array.c:169-180`) uses `upb_ShlOverflow()`. The combined check `init_capacity \u003e (SIZE_MAX - array_size) \u003e\u003e elem_size_lg2` guards against both shift overflow and the subsequent addition overflow.\n\n## Test plan\n\n- [x] Add `ManyFieldsSortReallocation` test for compare_unknown.c sort buffer reallocation\n- [x] Add `ManyFieldsNotEqual` test verifying differing values detected after sorting\n- [x] Add `NewOverflowCapacityReturnsNull` test for array.h overflow guard\n- [ ] Existing unit tests pass\n\n🔒 Found during security audit of upb internals\n\nCloses #27712\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/protocolbuffers/protobuf/pull/27712 from jortles:fix-upb-integer-null-hardening 6cbc9ae985655bde93ba4c3d09d14537d77e4142\nPiperOrigin-RevId: 999523263\n"
    },
    {
      "commit": "08163c7a32f5afd7ae69aad96e87fa328adf09ae",
      "tree": "200d7dc5fc9171ab6c85cff88782cc0b842964e5",
      "parents": [
        "cffaebb8dfdc42c30e4889996747da9af59bf3f3"
      ],
      "author": {
        "name": "Daksh Mamodiya",
        "email": "mamodiyadaksh41@gmail.com",
        "time": "Wed Oct 14 09:51:34 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 09:54:59 2026 -0700"
      },
      "message": "[CMake] Quote COMMENT in protobuf_generate() (#30159)\n\nThis is hardening, rather than a fix. protobuf_generate() passes its status message to add_custom_command(COMMENT …) unquoted, so any ; in it splits COMMENT into several arguments. That\u0027s a configure error for consumers with a CMake 3.31+ minimum (CMP0175). That fix seems to have joined the option lists, which covers today\u0027s message.\n\nThis quotes the argument from future robustness pov. There\u0027s no change for current inputs: the generated build files are identical with and without it.\n\nI am following up for CMake\u0027s FindProtobuf copy of this function in (https://gitlab.kitware.com/cmake/cmake/-/merge_requests/12556).\n\nCloses #30159\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/protocolbuffers/protobuf/pull/30159 from 15daksh-2003:cmake-quote-generate-comment 14e69001a1a3f4eb639351990b84df1d2e0ec938\nPiperOrigin-RevId: 999435931\n"
    },
    {
      "commit": "cffaebb8dfdc42c30e4889996747da9af59bf3f3",
      "tree": "29e6a469727eae7aa0a71b19bfad6c9cef6d6b24",
      "parents": [
        "92ac212d9b89b2186c42df3c8cd534a2641bf2ea"
      ],
      "author": {
        "name": "Karen Wu",
        "email": "karenwuz@google.com",
        "time": "Wed Oct 14 09:10:06 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 09:14:33 2026 -0700"
      },
      "message": "Remove deprecation suppression after clean up\n\n#test-continuous\n\nPiperOrigin-RevId: 999411984\n"
    },
    {
      "commit": "92ac212d9b89b2186c42df3c8cd534a2641bf2ea",
      "tree": "4e111c674156ef4db8a19f4871fcfed0758bb843",
      "parents": [
        "cd68a2eab18e9646bf746182fa3b858c6d9caa7e"
      ],
      "author": {
        "name": "Samuel Benzaquen",
        "email": "sbenza@google.com",
        "time": "Wed Oct 14 08:53:03 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 08:57:03 2026 -0700"
      },
      "message": "Internal change\n\nPiperOrigin-RevId: 999402146\n"
    },
    {
      "commit": "cd68a2eab18e9646bf746182fa3b858c6d9caa7e",
      "tree": "c6935b5deb2e8271eb279ff30e27787a0cbbc031",
      "parents": [
        "369cb767b2b87574318a8a52080b7148964a0877"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Wed Oct 14 14:00:30 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Wed Oct 14 14:00:30 2026 +0000"
      },
      "message": "Auto-generate files after cl/999333744\n"
    },
    {
      "commit": "369cb767b2b87574318a8a52080b7148964a0877",
      "tree": "a9271128944e8d35c7b9543f03036140c7dd663f",
      "parents": [
        "946c91bae5788ba72ec3c2cfae2de2e46ea8c6eb"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Wed Oct 14 06:42:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 06:49:19 2026 -0700"
      },
      "message": "Open-source C++ `compiler/cpp/helpers_unittest.cc`\n\nAdd the BSD license header to `compiler/cpp/helpers_unittest.cc`, guard tests that depend on internal-only lazy/profile/verification features, export helper symbols in `compiler/cpp/helpers.h` with `PROTOC_EXPORT` for CMake shared-library test builds, and add the `helpers_unittest` `cc_test` target to `compiler/cpp/BUILD.bazel`.\n\nPiperOrigin-RevId: 999333744\n"
    },
    {
      "commit": "946c91bae5788ba72ec3c2cfae2de2e46ea8c6eb",
      "tree": "9ec7efa0193ed66643e4ecf9a01dd98a67b3cb78",
      "parents": [
        "650ce9f29bd8d4497a0105ca30521360e337164c"
      ],
      "author": {
        "name": "Seif Kandil",
        "email": "74428638+k0T0z@users.noreply.github.com",
        "time": "Wed Oct 14 00:50:08 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 14 00:56:25 2026 -0700"
      },
      "message": "Fix ZLIB_LIBRARIES to ZLIB_LIBRARY in README (#30612)\n\nCloses #30612\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/protocolbuffers/protobuf/pull/30612 from k0T0z:correct-cmake-zlib-library-var-name 2c85c6bf3ab3ef1e756e5ebcf0f991ba5afe9e52\nPiperOrigin-RevId: 999181307\n"
    },
    {
      "commit": "650ce9f29bd8d4497a0105ca30521360e337164c",
      "tree": "6654559e30042bc631ffaf5fbe2531546841e324",
      "parents": [
        "aaeabdf422e73eb7c00f57c42ee4dd3ffa8b8a80"
      ],
      "author": {
        "name": "Runze Wang",
        "email": "runze@google.com",
        "time": "Tue Oct 13 17:19:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 17:26:45 2026 -0700"
      },
      "message": "internal change\n\nPiperOrigin-RevId: 998993134\n"
    },
    {
      "commit": "aaeabdf422e73eb7c00f57c42ee4dd3ffa8b8a80",
      "tree": "1cf6bbc1d3c14c893fe0b22739b4b83f60c3c5b1",
      "parents": [
        "f32a8215dd2908c9f947301dd377f7130545878f"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Wed Oct 14 00:20:32 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Wed Oct 14 00:21:11 2026 +0000"
      },
      "message": "Auto-generate files after cl/998985319\n"
    },
    {
      "commit": "f32a8215dd2908c9f947301dd377f7130545878f",
      "tree": "b21d57cb5a0515868b211524f4fd3174f0535cd4",
      "parents": [
        "439de6a925515c1c64c87fff6632c79e94f783f7"
      ],
      "author": {
        "name": "Runze Wang",
        "email": "runze@google.com",
        "time": "Tue Oct 13 17:05:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 17:13:43 2026 -0700"
      },
      "message": "Import descriptor_pb2 in upb\u0027s DescriptorPool.AddSerializedFile().\n\nFixes https://github.com/protocolbuffers/protobuf/issues/30519\n\nPiperOrigin-RevId: 998985608\n"
    },
    {
      "commit": "439de6a925515c1c64c87fff6632c79e94f783f7",
      "tree": "7cf4a8448548b4e6a671a091dc93d49715e81fcc",
      "parents": [
        "b6084c2763f1fc99261e4a50bc24579fd9ecc7e0"
      ],
      "author": {
        "name": "Clayton Knittel",
        "email": "cknittel@google.com",
        "time": "Tue Oct 13 17:05:20 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 17:08:40 2026 -0700"
      },
      "message": "Pass the parent message to internal string field mutators.\n\nRefactor `ArenaStringPtr`, `InlinedStringField`, and `MicroString` APIs (such as `Set`, `Mutable`, `MutableNoCopy`, and `ClearToDefault`) as well as parsing helpers to accept a `const MessageLite\u0026` rather than an `Arena*`.\n\nPiperOrigin-RevId: 998985319\n"
    },
    {
      "commit": "b6084c2763f1fc99261e4a50bc24579fd9ecc7e0",
      "tree": "c5326ad4bba1c929bba270e08a03a63cc40b205a",
      "parents": [
        "c89344cc9ccc154ed0cccdf71baf88ffc04631aa"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Tue Oct 13 16:19:39 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 16:23:32 2026 -0700"
      },
      "message": "Propagate allocation failures in PHP protobuf C extension.\n\nPiperOrigin-RevId: 998960402\n"
    },
    {
      "commit": "c89344cc9ccc154ed0cccdf71baf88ffc04631aa",
      "tree": "b8ff218982213fe70d678aaa3eefd28ec0dc9988",
      "parents": [
        "69700f9ed448394f5299375a5dda105968b4b70c"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Tue Oct 13 15:47:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 15:49:33 2026 -0700"
      },
      "message": "Release DescriptorPool checkpoint scratch buffers after BuildFile.\n\nCheckpoint bookkeeping is only needed while a file is being built; resetting it when the outermost checkpoint finishes avoids retaining peak build-time scratch capacity for the lifetime of the `DescriptorPool`.\n\nPiperOrigin-RevId: 998941838\n"
    },
    {
      "commit": "69700f9ed448394f5299375a5dda105968b4b70c",
      "tree": "1710372216111ebdcae60b1135485c8ab75005f0",
      "parents": [
        "2a3334473e83771b84272793b60af9678f64c1d3"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Tue Oct 13 22:22:41 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Tue Oct 13 22:22:41 2026 +0000"
      },
      "message": "Auto-generate files after cl/998917610\n"
    },
    {
      "commit": "2a3334473e83771b84272793b60af9678f64c1d3",
      "tree": "33d50019d20d5a3762f11f164d24cecc062e4e41",
      "parents": [
        "2f21136f4ea05813a4e2cffd4ab6337a5a09cecb"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-github-bot@google.com",
        "time": "Tue Oct 13 15:07:41 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 15:12:53 2026 -0700"
      },
      "message": "Avoid PLT calls to the library memcpy() for field, map and array element copies\n\nBefore/after (android_arm64, -c opt, fasttable):\n\nupb_Array_Set, before (17 instructions):\n```armasm\n  sub   sp, sp, #0x20\n  stp   x3, x30, [sp, #0x8]\n  ldr   x9, [x0]\n  mov   w8, #0x1\n  str   x2, [sp]\n  ands  x10, x9, #0x3\n  and   x9, x9, #0xfffffffffffffff8\n  cinc  x10, x10, ne\n  lsl   x11, x1, x10\n  lsl   w8, w8, w10\n  mov   x1, sp\n  add   x0, x9, x11\n  mov   x2, x8\n  bl    memcpy@plt\n  ldr   x30, [sp, #0x10]\n  add   sp, sp, #0x20\n  ret\n```\nafter (no call, no stack frame):\n```armasm\n  ldr   x8, [x0]\n  ands  x9, x8, #0x3\n  and   x8, x8, #0xfffffffffffffff8\n  cinc  x9, x9, ne\n  lsl   x10, x1, x9\n  cmp   x9, #0x2\n  add   x8, x8, x10\n  b.gt  1f\n  cbnz  x9, 2f\n  strb  w2, [x8]\n  ret\n1:cmp   x9, #0x3\n  b.ne  3f\n  str   x2, [x8]\n  ret\n2:str   w2, [x8]\n  ret\n3:stp   x2, x3, [x8]\n  ret\n```\nPiperOrigin-RevId: 998917610\n"
    },
    {
      "commit": "2f21136f4ea05813a4e2cffd4ab6337a5a09cecb",
      "tree": "56db2ff2a0e14d7e09f16883e1c97f0e5e6f7864",
      "parents": [
        "8ee94ba2180d5c63f66b198f337389b404b723d3"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Tue Oct 13 20:18:57 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Tue Oct 13 20:18:57 2026 +0000"
      },
      "message": "Auto-generate files after cl/998839760\n"
    },
    {
      "commit": "8ee94ba2180d5c63f66b198f337389b404b723d3",
      "tree": "3587ac1de083d7669c289a41e4d8dba79e604e8d",
      "parents": [
        "3928d96cec7be2e2e635eb2280f3e967bdbb8f5d"
      ],
      "author": {
        "name": "Clayton Knittel",
        "email": "cknittel@google.com",
        "time": "Tue Oct 13 13:06:13 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 13 13:09:08 2026 -0700"
      },
      "message": "Move private field accessor helpers to the bottom of the generated message class.\n\nPiperOrigin-RevId: 998839760\n"
    },
    {
      "commit": "3928d96cec7be2e2e635eb2280f3e967bdbb8f5d",
      "tree": "4ba8d320094497f032be5e3c32eb1c79a944087d",
      "parents": [
        "4b324dca914a21de6155a30695efb1304f4f2ddc"
      ],
      "author": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Tue Oct 13 19:20:18 2026 +0000"
      },
      "committer": {
        "name": "Protobuf Team Bot",
        "email": "protobuf-team-bot@google.com",
        "time": "Tue Oct 13 19:20:49 2026 +0000"
      },
      "message": "Auto-generate files after cl/998798017\n"
    }
  ],
  "next": "4b324dca914a21de6155a30695efb1304f4f2ddc"
}
