Draft for audit
Pre-release
Pre-release
[ACTION REQUIRED] Audit is required to determine if the following changes should be included in the release notes. Usually these were merged without Copybara.
For 22.0, this also includes changes predating RELEASE_NOTES tag.
C++
- Begin emitting semantic metadata for some C++ proto features. (2880fef)
Java
- Add "public" modifier to Kotlin generated code (9b37daf)
- Stop generating an override for getUnknownFields() the GeneratedMessage version (ce7a02c)
- Document cleanups that should be done in a not-too-distant breaking-change (5815aa3)
- Add template comment and package to previously empty generated kotlin proto files. (9dfe7e9)
- Add exemplar variants of the Java Any.is() and Any.unpack() methods. (60b7149)
- Use bit-field int values in buildPartial to skip work on unset groups of fields. (2326aef)
Kotlin
- Add template comment and package to previously empty generated kotlin proto files. (9dfe7e9)
Csharp
- Pre-emptively suppress target framework EOL warnings (e2ea242)
- Removed Java files from file_list.bzl and replace it with directory-based renames. (e71376e)
- Sync C# files to Piper (1792a32)
Objective-C
- [ObjC] Let Xcode 14 update the project settings (d0c1a63)
- [ObjC] Update generation to include the new closed enum information. (4a12247)
- [ObjC] Avoid warning from Xcode 14. (899c14a)
- [ObjC] Mark the syntax on FileDescriptor as deprecated. (c79832b)
- [ObjC] Add the concept of a closed enum. (7bb699b)
- [ObjC] Minor cleanups for the descriptor startup. (3a74266)
- [ObjC] Bring back the explicit getter for enumDescriptor. (47862bb)
- Enforce GPBFieldHasEnumDescriptor always being set. (7140f6f)
- Block direct creation of Descriptors. (38fb108)
- [ObjC] Remove some stale comments about proto3 and unknown fields. (d4e1327)
- Add exemplar variants of the Java Any.is() and Any.unpack() methods. (60b7149)
- Speed up the build a small bit. (2fda7af)
- ObjC Cleanups. (46d1145)
- Remove custom HasPreservingUnknownEnumSemantics method. (72b22ed)
Python
- Remove _SetType from python api_implementation.py (24743cd)
- Copybara import of the project: (21815fa)
- Copybara import of the project: (c1a42b3)
- Use has_presence instead of syntax check in text_format. (f6f7046)
- Added is_closed to EnumDescriptor in protobuf python (da9de8d)
- use FieldDescriptor.has_presence instead of file.syntax in python_message.py (9b725fb)
- Enable the Copybara sync for all files. (0ff2656)
- See also UPB changes below, which may affect Python.
PHP
- Update package.xml to include link to specific release notes. (35993fe)
- See also UPB changes below, which may affect PHP.
Ruby
- Internal change to syncing (glob the "compiler" dir) (42cc7c6)
- Enable the Copybara sync for all files. (0ff2656)
- See also UPB changes below, which may affect Ruby.
Other
- Update version.json to: 21.11-dev (06776db)
- Remove php 7.4 installation (4465c09)
- Prohibit homebrew from automatically updating packages (7e6c984)
- Updating changelog (74dae8f)
- Standardise Link-Format (4c8a128)
- Update third_party.md (4e00cf3)
- Copybara import of the project: (09f4901)
- proto2::Map improvements (d4adb43)
- Use ARM-optimized varint decoding functions with table-driven parser. (0e7d311)
- Copybara import of the project: (d70b5c5)
- Fix missing
google::protobuf::RepeatedPtrField<std::string>
issue in GCC (225b936) - Copybara import of the project: (f06f81f)
- Fix CODEOWNERS (e1b264e)
- Update auto-generation script to handle well-known types (f1998d9)
- Make CMake test_util and lite_test_util mutually exclusive (57a8846)
- Make the CMake targets for test_util and lite_test_util independent (7043b88)
- Update CMake file generation to avoid including Bazel-specific WKT paths (4ee1f52)
- Update cc_dist_library() to include transitive sources (b146519)
- Add a staleness test for the well-known types (f63f758)
- Remove an incorrect comment about the Python struct module. (9fe9adf)
- Removed the Mergeable check (e29fbd4)
- Add a debug-only check for depth_ match, to catch a problem that is difficult (dc8c980)
- Test for recursion depth earlier so we can return an appropriate error and keep (54cd586)
- Call ParseVarint with a pointer to the specific result instead of always passing in a uint64_t * when possible. (411cba1)
UPB
- Switch to cmake fetch instead of git submodules (protocolbuffers/upb@4069649)
- Add CMake+Bazel dependencies on utf8_range repo (protocolbuffers/upb@3e078f5)
- Delete vendored utf8_range (protocolbuffers/upb@c7456d1)
- Fix C compiler failure when there are fields names prefixed with accessor prefixes such as set_ and clear_. (protocolbuffers/upb@d76e286)
- Copybara import of the project: (protocolbuffers/upb@c4f1d1b)
- Enabled TAP testing for upb on Windows via Lexan. (protocolbuffers/upb@023c4da)
- create upb/hash/ (protocolbuffers/upb@b3cb3fb)
- create base/ subdir and expand :status build target to :base (protocolbuffers/upb@ff8e1b4)
- clean up the build targets for collections, mem, reflection (protocolbuffers/upb@6324713)
- generated code now uses the scalar get accessors (protocolbuffers/upb@33633fd)
- add defaults to the mini table scalar getter accessor functions (protocolbuffers/upb@0e76047)
- Use UPB_SETJMP macro (protocolbuffers/upb@721c284)
- upb: split out :status as a separate build target (protocolbuffers/upb@aec12a4)
- move lua/ up to the top level directory where python/ lives (protocolbuffers/upb@a77b966)
- Refactor out functions to get hasbit offset and mask. (protocolbuffers/upb@d4425d3)
- rename the upb_MiniTable subtypes to follow the upb style guide: (protocolbuffers/upb@75907f7)
- inline the trivial int conversion functions in the code generator (protocolbuffers/upb@cb7a519)
- move portability stuff into upb/port/ (protocolbuffers/upb@f630787)
- move message set enums into upb/wire/ (and use them) (protocolbuffers/upb@46699b7)
- change mini_table accessors test from the C encoder to the C++ encoder (protocolbuffers/upb@5f1ff7c)
- Build with incompatible_disallow_empty_glob (protocolbuffers/upb@7de6cf7)
- create collections/map_internal.h and collections/map_gencode_util.h (protocolbuffers/upb@fd040a8)
- Update diagnostics for GCC warning (protocolbuffers/upb@f345caf)
- Update config_setting visibility in support of --incompatible_config_setting_private_default_visibility. (protocolbuffers/upb@0f4fffe)
- C++ Code generator (protocolbuffers/upb@306123e)
- create collections/ subdir for all array and map code (protocolbuffers/upb@fd14316)
- Optimization: do not generate oneofs for proto3 optional fields. (protocolbuffers/upb@115b878)
- remove upb_MtDataEncoder from the public surface (protocolbuffers/upb@d9b6f13)
- create text/ subdir for all text-format code (protocolbuffers/upb@0bb4663)
- Pin Upb to C++ 17 (protocolbuffers/upb@9b8785e)
- create wire/ subdir for all wire-format code (protocolbuffers/upb@e137175)
- create mem/ subdir for all arena code (protocolbuffers/upb@f409c99)
- Make trivial change to CMakeLists.txt to test auto-generation (protocolbuffers/upb@4962764)
- split apart mini_table.c into a new subdir (protocolbuffers/upb@c033eff)
- implement mini descriptors for message sets (protocolbuffers/upb@5c64680)
- fix bug in mini descriptor map decoder (protocolbuffers/upb@cb5be72)
- Check in generated CMake files (protocolbuffers/upb@52be7c2)
- implement mini descriptors for maps (protocolbuffers/upb@20310e2)
- upb: fail if a message set contains any sub-fields (protocolbuffers/upb@6f68ba1)
- check for malformed map entries (protocolbuffers/upb@067c7aa)
- backport a fuzzer test patch from an earlier github branch (protocolbuffers/upb@a4f240c)
- add version/tag chars to the start of all mini descriptors (protocolbuffers/upb@36ce2fa)
- make upb_ExtensionRegistry_AddArray() and upb_ExtensionRegistry_Lookup() public (protocolbuffers/upb@df34b04)
- add upb_MtDataEncoder_EncodeExtension() (protocolbuffers/upb@4099846)
- Reserve C++20 keywords (protocolbuffers/upb@d861ff5)
- Add aspect hints for kotlin native compilation. (protocolbuffers/upb@be98a91)
- Add GitHub workflow for updating checked-in generated files (protocolbuffers/upb@4a9a7ca)
- lock down internal reflection (protocolbuffers/upb@85bf467)
- normalize upb_Message_New() (protocolbuffers/upb@41335a0)
- dead code elimination (protocolbuffers/upb@1a3803c)
- Add asserts for unlinked mini tables. (protocolbuffers/upb@50d36a6)
- set kUpb_EncodedValue_MaxField to its correct value (protocolbuffers/upb@85f7d2d)
- Import numpy_test in upb wrapper from protobuf (protocolbuffers/upb@c172bfb)
- Update workspace_deps.bzl protobuf main commit (protocolbuffers/upb@04363f7)
- Initialize mini table subs, so that upb_MiniTable_Build creates stable unlinked table. (protocolbuffers/upb@3faf958)
- kUpb_EncodedType_Enum -> kUpb_EncodedType_OpenEnum (protocolbuffers/upb@65946dc)
- Initialize mini table subs, so that upb_MiniTable_Build creates stable unlinked table. (protocolbuffers/upb@41686ad)
- Initialize mini table subs, so that upb_MiniTable_Build creates stable unlinked table. (protocolbuffers/upb@bc2022a)
- Added function for getting the type of a MiniTable field (protocolbuffers/upb@b33fd88)
- Removed kUpb_FieldRep_Pointer as a distinct FieldRep, saving a bit in the MiniTable (protocolbuffers/upb@30a28f3)
- Add upb_Message_DeleteUnknown API. (protocolbuffers/upb@aabb2b6)
- Remove redefinition of upb_MiniTable_Extension, upb_MiniTable. (protocolbuffers/upb@b49f992)
- Simplified extension table building slightly by avoiding direct mutation (protocolbuffers/upb@185d4f0)
- create reflection_internal library (protocolbuffers/upb@44916d7)
- add upb_EnumDef_IsClosed() (protocolbuffers/upb@52c1598)
- Removed obsolete exemption for closed enums (protocolbuffers/upb@5d0833f)
- A few more fixes for PHP and the 32-bit build (protocolbuffers/upb@32c6e9b)
- stop requiring extension fields to have a synthetic oneof (protocolbuffers/upb@0f585c6)
- Fixed a memory corruption bug for 32-bit builds (protocolbuffers/upb@5732824)
- split out the mapsorter functions into their own .c & .h (protocolbuffers/upb@259183b)
- move extension_registry declarations out of msg_internal.h (protocolbuffers/upb@787714f)
- Update documentation about upb status (protocolbuffers/upb@e79e3db)
- Fix a few minor things to unblock the Ruby sync (protocolbuffers/upb@82c6c48)
- Bugfix for when UPB_TREAT_PROTO2_ENUMS_LIKE_PROTO3 is being used (protocolbuffers/upb@128ac1c)
- Removed unused "paths" import. (protocolbuffers/upb@18446cf)
- pull the mini descriptor encoders into their proper .c files (protocolbuffers/upb@b8bec58)
- Fixed to add missing table targets. (protocolbuffers/upb@81e716d)
- Make staleness_test() macro usable in other Bazel workspaces (protocolbuffers/upb@4a9e1ba)
- Rename generated_file_staleness_test() to just staleness_test() (protocolbuffers/upb@7189539)
- Treat unlinked sub-messages in the MiniTable as unknown (protocolbuffers/upb@d5bd55c)
- move message/field modifiers functions out of mini_descriptor_encode.c (protocolbuffers/upb@1e3deb0)
- use mini descriptors to build message defs and extension defs (protocolbuffers/upb@efd06e4)
- Fully-qualify labels in the µpb repository. (protocolbuffers/upb@23048df)
- move (most of) the json code into its own subdir (protocolbuffers/upb@8cc3e07)
- make msan happy with the arena code (protocolbuffers/upb@6a625a6)
- Fix mini_table_accessors FindUnknown status. (protocolbuffers/upb@e76dc4a)
- fix some warnings when the compiler is being strict (protocolbuffers/upb@c718730)
- Fix upb proto libraryies for default strip_import_prefix. (protocolbuffers/upb@9e19bec)
- Readability improvements for decode.c: (protocolbuffers/upb@f44653b)
- Added a size overflow check for mini-table building (protocolbuffers/upb@ba511fd)
- Minor decoder refactor (protocolbuffers/upb@e55bfa2)
- Fixed fuzz bug in MiniDescriptor parsing for extensions. (protocolbuffers/upb@6795ec1)
- mini descriptor encode functions now populate a string view (protocolbuffers/upb@668cebb)
- Make upb backwards and forwards compatible with Bazel 4.x, 3.5.x and LTS (protocolbuffers/upb@04957b1)
- upb: use the new reflection headers (protocolbuffers/upb@edecfd5)
- simplify makejsonname() (protocolbuffers/upb@38d8430)
-
- All of reflection now lives in upb/reflection/ (protocolbuffers/upb@0076500)
- update googletest version (protocolbuffers/upb@830100a)
- Add upb_Arena_SpaceAllocated function (protocolbuffers/upb@2341741)
- Fixed Bazel 4.1.0 compatibility, and added a GitHub Action to verify. (protocolbuffers/upb@a8bc4ca)
- Fixed minor type in the docs. (protocolbuffers/upb@34495f8)
- Optimizes
upb_MiniTable_Enum
for large but dense enums. (protocolbuffers/upb@896e74c) - Fix public import header generation. (protocolbuffers/upb@467e2b5)
- fix the json parser to handle floats very near overflow (protocolbuffers/upb@4215bc8)
- remove unused #includes from reflection.h (protocolbuffers/upb@85534bb)
- Updated decoder internal symbols to new naming scheme. (protocolbuffers/upb@ba7603b)
- Fixed fuzz bug in upb. (protocolbuffers/upb@5a7644b)
- Removed unused code. (protocolbuffers/upb@5cb177e)
- Updated staleness test and amalgamator to work cross-repo. (protocolbuffers/upb@ccd88d5)
- Add a comment to remind ASAN users to compile interpreters with ASAN as well. (protocolbuffers/upb@8827a09)
- continue preparing def.c for the big split: (protocolbuffers/upb@111249d)
- Use Ubuntu 20.04 for a newer Python version (protocolbuffers/upb@552c1d1)
- Updating rules_python to 0.12.0 (protocolbuffers/upb@fa5e4cf)
- use _upb_DefBuilder instead of _upb_AddDexCtx (protocolbuffers/upb@b987ef6)
- rename some symtab functions to follow the upb style guide: (protocolbuffers/upb@02ef812)
- more misc tweaks to def.c: (protocolbuffers/upb@250321e)
- Fixed GitHub Actions tests for pull requests that come from other repos. (protocolbuffers/upb@682b519)
- Removed unused
_upb_DefPool_registerlayout()
function. (protocolbuffers/upb@15b2402) - add more constructors to def.c (protocolbuffers/upb@daac8dc)
- add some more accessor calls to def.c (protocolbuffers/upb@11aa037)
- Resolve field name/accessor name conflicts. (protocolbuffers/upb@52c9b98)
- try to be better about using accessors in def.c (protocolbuffers/upb@5b46a55)
- start replumbing def.c (protocolbuffers/upb@1135746)
- Add support for dashes in proto file names. (protocolbuffers/upb@4e979b8)
- Fix code generation for infinity default value on float/double fields. (protocolbuffers/upb@ce32d9d)
- remove upb_String from the public tokenizer api (protocolbuffers/upb@f3316e2)
- Remove patter that does not glob anything (protocolbuffers/upb@9a02d16)
- add upb_Status to the tokenizer (protocolbuffers/upb@0013c93)
- split out the json string-to-int functions for general use (protocolbuffers/upb@c67021f)
- simplify the tokenizer (protocolbuffers/upb@3311420)
- Updating python to 0.11.0 (protocolbuffers/upb@4135cd2)
- install rsync on Bazel CI before running tests (protocolbuffers/upb@0aa5a45)
- clean up tokenizer options and defaults (protocolbuffers/upb@922a858)
- first stab at a Tokenizer api (protocolbuffers/upb@6861966)
- Merge GetEnum into GetInt32. Rename SetEnum to SetEnumProto2 to be clear that upb only treats Proto2 enum as enum. Proto3 enums should use SetInt32. (protocolbuffers/upb@0c65313)
- Bump pinned protobuf version (protocolbuffers/upb@63a4a7d)
- properly format extension names in text_encode() (protocolbuffers/upb@3f4f7ab)
- Make upb numpy type checks consistent with pure python and cpp. (protocolbuffers/upb@79b735a)
- Update mini table API comment (protocolbuffers/upb@e09d6fc)
- Update python tests due to macos-10.15 deprecation. actions/runner-images#5583 (protocolbuffers/upb@33313a2)
- Small typo fix (now -> not) (protocolbuffers/upb@bf88f8b)
- Fixed a bug in MiniTable construction for extensions. #fuzzing (protocolbuffers/upb@fcb5ef3)
- Fixed bug when parsing an unknown value in a proto2 enum extension. #fuzzing (protocolbuffers/upb@ececc21)
- clean up the public api for mini descriptors (protocolbuffers/upb@24f567b)
- create _upb_EnumDef_MiniDescriptor() (protocolbuffers/upb@28bc460)
- Bumping protobuf dependency to newer commit (protocolbuffers/upb@17b6451)
- update upb_Encode() to use arena api internally (protocolbuffers/upb@eb66ab6)
- upb: upb_EnumDefs are now built using mini descriptors (protocolbuffers/upb@9b3e873)
- clean up the mini descriptor code: (protocolbuffers/upb@3c295ec)
- split out some unicode logic from the json decoder (protocolbuffers/upb@410143b)
- Update C++ generator. (protocolbuffers/upb@201a790)
- Prepare build for C++ generator. (protocolbuffers/upb@ff46379)
- first stab at a ZeroCopyStream api. (protocolbuffers/upb@1c13fd0)
- create and lock down upb/internal/array.h (protocolbuffers/upb@8c44f04)
- Move generator shared support code to common target. (protocolbuffers/upb@46e306b)
- Added fuzz tests for mini table building and binary format parsing/serialization. (protocolbuffers/upb@125db89)
- Add UPB_DEPRECATED macro to use for deprecated field code generation. (protocolbuffers/upb@d448340)
- Fix message clear not updating hasbit when message/group has presence. Add more tests. (protocolbuffers/upb@b6f862b)
- Mark arena getter const. (protocolbuffers/upb@da82d15)
- Update sample of using upb_MtDataEncoder (protocolbuffers/upb@49876f4)
- clean the fences for the headers: (protocolbuffers/upb@0c78048)
- lock down upb/internal/decode.h (protocolbuffers/upb@ca08ff5)
- rename internal/upb.h as internal/encode.h (protocolbuffers/upb@033859f)
- move table.c into upb/internal (protocolbuffers/upb@15596be)
- clean up the dependency graph some more (protocolbuffers/upb@7975945)
- rename the upb_Array 'len' field as 'size' (protocolbuffers/upb@1695cb2)
- split out upb_StringView from upb.h (protocolbuffers/upb@e153b52)
- Fix the dependency chain for internal/arena.h (protocolbuffers/upb@8d0d13f)
- rename the upb_Array 'size' field as 'capacity' (protocolbuffers/upb@83f4988)
- remove redundant declaration from generated code (protocolbuffers/upb@a6cbda7)
- split out the internal arena defs from internal/upb.h (protocolbuffers/upb@b174d9d)
- split out the alloc code from the arena code (protocolbuffers/upb@7b05f25)
- match file names to type names (protocolbuffers/upb@e4635f2)
- rename upb::SymbolTable as upb::DefPool (protocolbuffers/upb@97993b2)
- update benchmark.cc from v7 to v11 of the google ads proto (protocolbuffers/upb@88047d9)
- upb_Encode() now returns a status value (protocolbuffers/upb@65bde4e)
- The mini descriptor encoder now uses the internal api (upb_MessageDef, upb_FileDef, etc) instead of dealing directly with the proto fields. So much simpler and cleaner! (protocolbuffers/upb@65cd34d)
- First implementation of protoc-gen-upbdev plugin (protocolbuffers/upb@bb38fc9)
- add json encoder option to render enums as ints (protocolbuffers/upb@6e1aa9f)
- use constraints values in @platforms instead of @bazel_tools//platforms bazelbuild/bazel#8622 (protocolbuffers/upb@e5f2601)
- Fixed Python Tests by disabling the numpy test for now. (protocolbuffers/upb@4ffeaa6)
- Allow GetMessage API to be used for Groups. (protocolbuffers/upb@ba18b21)
- Fix GetMutableMessage not updating presence and storing new instance. (protocolbuffers/upb@b28d80a)
- strtable keys are no longer required to be NULL-terminated so update the comments (protocolbuffers/upb@c205f2f)
Python
- Enabled TAP testing for upb on Windows via Lexan. (protocolbuffers/upb@023c4da)
- create upb/hash/ (protocolbuffers/upb@b3cb3fb)
- rename the upb_MiniTable subtypes to follow the upb style guide: (protocolbuffers/upb@75907f7)
- move portability stuff into upb/port/ (protocolbuffers/upb@f630787)
- Added is_closed to EnumDescriptor in protobuf python upb (protocolbuffers/upb@7366156)
- create text/ subdir for all text-format code (protocolbuffers/upb@0bb4663)
- Fixes https://github.com/protocolbuffers/upb/issues/869 (protocolbuffers/upb@41017ef)
- Support local builds of upb's python wheel build. (protocolbuffers/upb@9e2d7f0)
- make upb_ExtensionRegistry_AddArray() and upb_ExtensionRegistry_Lookup() public (protocolbuffers/upb@df34b04)
- lock down internal reflection (protocolbuffers/upb@85bf467)
- normalize upb_Message_New() (protocolbuffers/upb@41335a0)
- Import numpy_test in upb wrapper from protobuf (protocolbuffers/upb@c172bfb)
- create reflection_internal library (protocolbuffers/upb@44916d7)
- silently succeed when adding the same serialized file in Python (protocolbuffers/upb@e779b9d)
- upb: use the new reflection headers (protocolbuffers/upb@edecfd5)
- remove unused #includes from reflection.h (protocolbuffers/upb@85534bb)
- Different message factories will return same message class for same descriptor in python. (protocolbuffers/upb@470f06c)
- Bump pinned protobuf version (protocolbuffers/upb@63a4a7d)
- Make upb numpy type checks consistent with pure python and cpp. (protocolbuffers/upb@79b735a)
- Bumping protobuf dependency to newer commit (protocolbuffers/upb@17b6451)
- upb: fix NULL pointer bug in Python FFI (protocolbuffers/upb@c2c6427)
- Move generator shared support code to common target. (protocolbuffers/upb@46e306b)
- Fixed Python+upb to use ScalarMapContainer when appropriate. (protocolbuffers/upb@16daf91)
- move table.c into upb/internal (protocolbuffers/upb@15596be)
- match file names to type names (protocolbuffers/upb@e4635f2)
- Remove duplicate function prototype (protocolbuffers/upb@254f27c)
- upb_Encode() now returns a status value (protocolbuffers/upb@65bde4e)
- Fixed Python Tests by disabling the numpy test for now. (protocolbuffers/upb@4ffeaa6)