Releases: zhangskz/protobuf
Releases · zhangskz/protobuf
Draft for audit
[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 (htt...
Protocol Buffers v22.0-rc1_qa (Draft as of commit f3f069ce68305261d0306158e9c07eb0e9129366)
Protocol Buffers v22.0-rc1_qa (Draft as of commit f3f069ce68305261d0306158e9c07eb0e9129366)
Pre-release
Pre-release
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Main 202212161220 (protocolbuffers#11340) (protocolbuffers@1697e45)
- Add debug_redact field option to protobuf. (protocolbuffers@9238c48)
- Remove MOA logic for constructor/destructor path. (protocolbuffers@f7af94c)
- Protoc: accept capital X to indicate hex escape in string literals (protocolbuffers#10757)
- Gracefully handle weird placement of linebreaks around comments (protocolbuffers#10660)
- Open up visibility for some compiler internals (protocolbuffers#10608)
- Protoc: validate reserved names are identifiers (protocolbuffers#10586)
- Protoc: validate custom json_name configuration (protocolbuffers#10581)
- Protoc: fix consistency with parsing very large decimal numbers (protocolbuffers#10555)
- Use protoc version for --version (protocolbuffers#10386)
- Fix for grpc.tools protocolbuffers#17995 & protobuf protocolbuffers#7474 (handle UTF-8 paths in argumentfile) (protocolbuffers#10200)
- Print full path name of source .proto file on error
- Include proto message type in the annotation comments.
C++
- Remove MOA logic for constructor/destructor path. (protocolbuffers@f7af94c)
- No longer define no_threadlocal on OpenBSD (protocolbuffers#10610)
- CMake: Enable projects to set the C++ version (protocolbuffers#10464)
- Upgrade third_party/googletest submodule to current main branch (protocolbuffers#10393)
- Remove all autotools usage (protocolbuffers#10132)
- CMake: use add_compile_options instead of add_definitions for compile options (protocolbuffers#10293)
- Fix protocolbuffers#9947: make the ABI identical between debug and non-debug builds (protocolbuffers#10271)
- Allow for CMAKE_INSTALL_LIBDIR to be absolute (protocolbuffers#10090)
- Add header search paths to protobuf-c++ spec (protocolbuffers#10024)
- Cpp_generated_lib_linked support is removed in protoc
- Reduced .pb.o object file size slightly by explicitly instantiating
- Add C++20 keywords guarded by PROTOBUF_FUTURE_CPP20_KEYWORDS
- Fixed crash in ThreadLocalStorage for pre-C++17 compilers on 32-bit ARM.
- Clarified that JSON API non-OK statuses are not a stable API.
- Added a default implementation of MessageDifferencer::Reporter methods.
- Proto2::MapPair is now an alias to std::pair.
- Hide C++ RepeatedField::UnsafeArenaSwap
- Use table-driven parser for reflection based objects.
- Update Map's InternalSwap() to take a pointer to the other Map.
- Add ARM-optimized Varint decoding functions.
- Minor optimization for parsing groups
- Declare ReflectiveProtoHook class
- Reduce size of VarintParse code in protocol buffers, by calling the shared
- Avoid inlining some large heavily duplicated routines in repeated_ptr_field.h
- Add ReflectiveProtoHook to Reflection.
- Turns on table-driven parser for reflection based objects.
- Save code space by avoiding inlining of large-in-aggregate code-space MessageLite::~MessageLite destructor.
- Undefine the macro
linux
when compiling protobuf - Reduce memory consumption of MessageSet parsing.
- Save code space by avoiding inlining of large-in-aggregate code-space MessageLite::~MessageLite destructor.
- Breaking change: delete Arena::Init
- Make a PROTOBUF_POISON/UNPOISON to reduce noise in the source
- Put alignment functions in "arena_align.h"
- Split off
cleanup
arena functions into "arena_cleanup.h" - Fix signed / unsigned match in CHECK_EQ
- Kill Atomic<>. it's not pulling it's weight
- Move AllocationPolicy out of arena_impl, and unify arena_config for bazel
- Fix failure case in table-driven parser.
- Add a new JSON parser.
- Removed old JSON parsing code.
- Introduce the Printer::{SetRedactDebugString,SetRandomizeDebugString} private flags.
- Introduce global flags to control Printer::{SetRedactDebugString, SetRandomizeDebugString}.
- Proto3 string fields no longer trigger clang-tidy warning bugprone-branch-clone.
- Fix the API of DescriptorUpgrader::set_allow_unknown_dependencies to set to True always, and to populate into the DescriptorPool as well.
- Report line numbers consistently in text-format deprecated-field warnings.
- Reserve C++20 keywords
- Fixed C++ code generation for protos that use int32_t, uint32_t, int64_t, uint64_t, size_t as field names.
- Annotate generated C++ public aliases for enum types.
- Change default arena max block size from 8K to 32K.
Java
- Expect fail when serialize inf and nan for Value.number_value in json format. fixes protocolbuffers#11259 (protocolbuffers@ca1cb1b)
- Create a helper function that can make a mutable copy of any ProtobufList (protocolbuffers@5669606)
- Main 202212161220 (protocolbuffers#11340) (protocolbuffers@1697e45)
- Add debug_redact field option to protobuf. (protocolbuffers@9238c48)
- Remove unused package private class ProtobufLists. (protocolbuffers@b51c551)
- Mark UnmodifiableLazyStringList deprecated. UnmodifiableLazyStringList is unnecessary and will be removed in a future release. (protocolbuffers@9595cbb)
- Make emptyList public and mark the public EMPTY field as deprecated. (protocolbuffers@c658e27)
- Enable Text format parser to skip unknown short-formed repeated fields. (protocolbuffers@6dbd413)
- Expose internal setExtension method for Kotlin (protocolbuffers@33d1070)
- Mark default instance as immutable first to avoid race during static initialization of default instances. (protocolbuffers#10770)
- Add serialVersionUID to ByteString and subclasses (protocolbuffers#10718)
- Fix serialization warnings in generated code when compiling with Java 18 and above (protocolbuffers#10561)
- Fix Timestamps fromDate for negative 'exact second' java.sql.Timestamps (protocolbuffers#10321)
- Fix Timestamps.fromDate to correctly handle java.sql.Timestamps before unix epoch (protocolbuffers#10126)
- Performance improvement for repeated use of FieldMaskUtil#merge by caching
- Optimized Java proto serialization gencode for protos having many extension ranges with few fields in between.
- More thoroughly annotate public generated code in Java lite protocol buffers.
- Fixed Bug in proto3 java lite repeated enum fields. Failed to call copyOnWrite before modifying previously built message. Causes modification to already "built" messages that should be immutable.
- Fix Java reflection serialization of empty packed fields.
- Refactoring java full runtime to reuse sub-message builders and prepare to migrate parsing logic from parse constructor to builder.
- Fix TextFormat parser to build up recurring (but supposedly not repeated) sub-messages directly from text rather than building a new sub-message and merging the fully formed message into the existing field.
- Make message-type extensions merge from wire-format instead of building up instances and merging afterwards. This has much better performance.
- Change the Lite runtime to prefer merging from the wireformat into mutable messages rather than building up a new immutable object before merging. This way results in fewer allocations and copy operations.
- Move proto wireformat parsing functionality from the private "parsing constructor" to the Builder class.
- Refactoring java full runtime to reuse sub-message builders and prepare to migrate parsing logic from parse constructor to builder.
- Move proto wireformat parsing functionality from the private "parsing constructor" to the Builder class.
- Change the Lite runtime to prefer merging from the wireformat into mutable messages rather than building up a new immutable object before merging. This way results in fewer allocations and copy operations.
- Make message-type extensions merge from wire-format instead of building up instances and merging afterwards. This has much better performance.
- Fix TextFormat parser to build up recurring (but supposedly not repeated) sub-messages directly from text rather than building a new sub-message and merging the fully formed message into the existing field.
- Fix bug in nested builder caching logic where cleared sub-field builders would remain dirty after a clear and build in a parent layer. protocolbuffers#10624
- Performance test for TextFormat to verify fix for GHSA-h4h5-3hr4-j3g2
Kotlin
- Main 202212161220 (protocolbuffers#11340) (protocolbuffers@1697e45)
- Add debug_redact field option to protobuf. (protocolbuffers@9238c48)
- Expose internal setExtension method for Kotlin (protocolbuffers@33d1070)
- Add missing
public
modifier to Kotlin generated code (protocolbuffers#10616) - Add "public" modifier to Kotlin generated code (protocolbuffers#10599)
- Update rules_kotlin version (protocolbuffers#10212)
- Suppress deprecation warnings in Kotlin generated code.
- Kotlin generated code comments now use kdoc format instead of javadoc.
- Escape keywords in package names in proto generated code
- Add Kotlin enum int value getters and setters
Csharp
- Use forward slash instead of backslash in nuspec file (protocolbuffers#11449) (protocolbuffers@724250d)
- Main 202212161220 (protocolbuffers#11340) (protocolbuffers@1697e45...