This version includes the following non-breaking changes:
Compiler

   - Drop support for Bazel 5. (fff4905
   
<https://github.com/protocolbuffers/protobuf/commit/fff490558816802c5b3d51169f797046f369453f>
   )
   - Allow code generators to specify whether or not they support editions.
   (e2cec78
   
<https://github.com/protocolbuffers/protobuf/commit/e2cec78455769881b9e8c23babeb3fe8effe81fe>
   )
   - Release prototype of Protobuf Editions. (4f9e417
   
<https://github.com/protocolbuffers/protobuf/commit/4f9e41767a819abf8108bb29e4910fbc0f37dc6e>
   )
   - Compiler: Correct depfile generation when there are no outputs (a44fc2b
   
<https://github.com/protocolbuffers/protobuf/commit/a44fc2b063d7466d48e2aeba05f9c35654140d87>
   )
   - Add dllexport_decl for generated default instance. (#13085
   <https://github.com/protocolbuffers/protobuf/pull/13085>) (9d0961a
   
<https://github.com/protocolbuffers/protobuf/commit/9d0961afb712de0aa6f6fea681f4a7241faac6e2>
   )
   - In TSan mode, detect concurrent mutations of repeated/map fields. (
   d800c5f
   
<https://github.com/protocolbuffers/protobuf/commit/d800c5f08b184d261e6c47662035d554f109eb3b>
   )
   - Add a workaround for GCC constexpr bug (e15326b
   
<https://github.com/protocolbuffers/protobuf/commit/e15326ba807a49365b6c9f5958e969b5aa915f8c>
   )
   - Turn on the table-driven parser by default, as it is no longer
   experimental. (c3e2efe
   
<https://github.com/protocolbuffers/protobuf/commit/c3e2efe70bbdfba4dd1f5c570043688fcbe74497>
   )
   - Shrink code size of generated protocol buffer code via a few (97c3513
   
<https://github.com/protocolbuffers/protobuf/commit/97c351319ffa9715ed11a883c4adbaadf63a2fcc>
   )
   - Implement enforcement of target constraints (e3848c1
   
<https://github.com/protocolbuffers/protobuf/commit/e3848c19988e56a20fbd3fab5d181df6de575a69>
   )
   - Fix(libprotoc): export useful symbols from .so (44b4bcc
   
<https://github.com/protocolbuffers/protobuf/commit/44b4bcc9e08b91dfeeb608c9d7c815f7cf2e00de>
   )

C++

   - In OSS mode omit some extern template specializations. We have seen
   reports of compilers falling over due to the size of translation units. (
   2ed49c9
   
<https://github.com/protocolbuffers/protobuf/commit/2ed49c95f9abbdf35e741c8a4e85976142fa9ff8>
   )
   - Automated rollback of commit adb2c4b
   
<https://github.com/protocolbuffers/protobuf/commit/adb2c4b415c35cda3e4394384ec579ea8dd8ec92>.
   (9f2d7ea
   
<https://github.com/protocolbuffers/protobuf/commit/9f2d7ea773217cac09630eef63d91e22b1b00d60>
   )
   - Fix building shared libraries on MinGW-w64 (#13240
   <https://github.com/protocolbuffers/protobuf/pull/13240>) (c2f07bb
   
<https://github.com/protocolbuffers/protobuf/commit/c2f07bb80f5273f5ba8f3e1c25d124f47e3f5430>
   )
   - Enable TSan validation to detect when a mutable accessor of a message
   is called concurrently with another accessor on the same message, which is
   a data race. (0275e51
   
<https://github.com/protocolbuffers/protobuf/commit/0275e516229daca19d29b5915ec78fe19e317e43>
   )
   - Release prototype of Protobuf Editions. (4f9e417
   
<https://github.com/protocolbuffers/protobuf/commit/4f9e41767a819abf8108bb29e4910fbc0f37dc6e>
   )
   - Enable TSan validation to detect when a mutable accessor of a message
   is called concurrently with another accessor on the same message, which is
   a data race. (e2eae81
   
<https://github.com/protocolbuffers/protobuf/commit/e2eae81b973c6944f3062fc21929368467e0ddb3>
   )
   - Fix case of locality optimizer being wrong for split repeated fields
   and add a check that the optimized order has the same size as the
   unoptimized order. (76a327e
   
<https://github.com/protocolbuffers/protobuf/commit/76a327e1e1f02e2f8027d4dd02950711435ea461>
   )
   - Enable TSan validation to detect when a mutable accessor of a message
   is called concurrently with another accessor on the same message, which is
   a data race. (80dbc50
   
<https://github.com/protocolbuffers/protobuf/commit/80dbc50118c0ef5d38da727d1cf903408ea21b41>
   )
   - Mark single arg ctor explicit in DynamicMessageFactory. (8fe88a5
   
<https://github.com/protocolbuffers/protobuf/commit/8fe88a5a07578dd5bd3aa648e8c2f95a22407094>
   )
   - Enable TSan validation to detect when a mutable accessor of a message
   is called concurrently with another accessor on the same message, which is
   a data race. (6d79d13
   
<https://github.com/protocolbuffers/protobuf/commit/6d79d13e478d677e7bdc1587d3442a070d5205cd>
   )
   - Let ParseRepeatedStringOnce call AllocateFromStringBlock(). (bcf3e36
   
<https://github.com/protocolbuffers/protobuf/commit/bcf3e36a48c573a81d6359a61275f477a7b57c2d>
   )
   - Check next tag in MpRepeatedMessage. (9e1cf6f
   
<https://github.com/protocolbuffers/protobuf/commit/9e1cf6fe9c762ddd21bcea5039cdbf1f7b509eea>
   )
   - When parsing repeated primitives, append to a tmp array on stack. (
   adb2c4b
   
<https://github.com/protocolbuffers/protobuf/commit/adb2c4b415c35cda3e4394384ec579ea8dd8ec92>
   )
   - Add dllexport_decl for generated default instance. (#13085
   <https://github.com/protocolbuffers/protobuf/pull/13085>) (9d0961a
   
<https://github.com/protocolbuffers/protobuf/commit/9d0961afb712de0aa6f6fea681f4a7241faac6e2>
   )
   - TextFormat::ParseFieldValueFromString now takes absl::string_view as
   input instead of const std::string & (5411fc6
   
<https://github.com/protocolbuffers/protobuf/commit/5411fc66796d9e14d39b7ba0385eee5ffde875dc>
   )
   - In TSan mode, detect concurrent mutations of repeated/map fields. (
   d800c5f
   
<https://github.com/protocolbuffers/protobuf/commit/d800c5f08b184d261e6c47662035d554f109eb3b>
   )
   - Use the same ABI for static and shared libraries on non-Windows
   platforms (#12983
   <https://github.com/protocolbuffers/protobuf/pull/12983>) (4329fde
   
<https://github.com/protocolbuffers/protobuf/commit/4329fde9cf3fab7d1b3a9abe0fbeee1ad8a8b111>
   )
   - Replace ColdChunkSkipper with iterator-based approach. (ad677f3
   
<https://github.com/protocolbuffers/protobuf/commit/ad677f3215de203695ade78a25f79fa61010f770>
   )
   - Check invalid type_id after casting it to uint32_t. (d890126
   
<https://github.com/protocolbuffers/protobuf/commit/d8901265c75387851b7b66624b5bcc5bafa9bad9>
   )
   - Strengthen assertions on reflection methods. (eb5e9e0
   
<https://github.com/protocolbuffers/protobuf/commit/eb5e9e01d9831e9fae48bc6f688114f53cccabc5>
   )
   - Add assertions to reflection methods. (5866e45
   
<https://github.com/protocolbuffers/protobuf/commit/5866e4575c7e43cfcabb98efd6f36b4ba5c4bb30>
   )
   - Fail to parse message sets if type_id is zero. (bc1b1f6
   
<https://github.com/protocolbuffers/protobuf/commit/bc1b1f6e53e9844ed42c796c7246d51aef65ed65>
   )
   - Enable the use of [SU]Int32Size and EnumSize templates for AArch64 (
   #11102 <https://github.com/protocolbuffers/protobuf/pull/11102>) (e285d3e
   
<https://github.com/protocolbuffers/protobuf/commit/e285d3e307512f24576b56d18cb5a5b655e2f393>
   )
   - Add a workaround for GCC constexpr bug (e15326b
   
<https://github.com/protocolbuffers/protobuf/commit/e15326ba807a49365b6c9f5958e969b5aa915f8c>
   )
   - Add ABSL_ATTRIBUTE_LIFETIME_BOUND attribute on Map, RepeatedField and
   RepeatedPtrField. (7b7ba2d
   
<https://github.com/protocolbuffers/protobuf/commit/7b7ba2df67199a2c95b21ce6eec9e6d62b71cc60>
   )
   - Turn on the table-driven parser by default, as it is no longer
   experimental. (c3e2efe
   
<https://github.com/protocolbuffers/protobuf/commit/c3e2efe70bbdfba4dd1f5c570043688fcbe74497>
   )
   - Fix: avoid warnings on MSVC (#12697
   <https://github.com/protocolbuffers/protobuf/pull/12697>) (4fcf2c0
   
<https://github.com/protocolbuffers/protobuf/commit/4fcf2c0a0968c88c60570da8fa6d7a18371c4b4b>
   )
   - Fix: avoid warnings on Windows (#12701
   <https://github.com/protocolbuffers/protobuf/pull/12701>) (f9108c2
   
<https://github.com/protocolbuffers/protobuf/commit/f9108c2dd0921db50bb78e3fc6f0833186f8cf64>
   )
   - Shrink code size of generated protocol buffer code via a few (97c3513
   
<https://github.com/protocolbuffers/protobuf/commit/97c351319ffa9715ed11a883c4adbaadf63a2fcc>
   )
   - Fix(libprotoc): export useful symbols from .so (#12619
   <https://github.com/protocolbuffers/protobuf/pull/12619>) (b1ae4fa
   
<https://github.com/protocolbuffers/protobuf/commit/b1ae4fa87a95ee3650a6ad4192176d845e03da52>
   )
   - Forbid embedded nulls in json_name. (b478a29
   
<https://github.com/protocolbuffers/protobuf/commit/b478a29bf0945d5b141992885ac9cfde45c66697>
   )
   - Implement option retention for C# (5f64444
   
<https://github.com/protocolbuffers/protobuf/commit/5f64444e7b19421c25ae12d3c69acbab3a70a1bb>
   )
   - Implement enforcement of target constraints (e3848c1
   
<https://github.com/protocolbuffers/protobuf/commit/e3848c19988e56a20fbd3fab5d181df6de575a69>
   )
   - Make RepeatedField and RepeatedPtrField be destructor skippable for
   proto arenas. (e4168df
   
<https://github.com/protocolbuffers/protobuf/commit/e4168df564be12984ae836e5e870e634733f42a3>
   )
   - Update MessageDifferencer to conditionally force comparing additional
   fields while doing PARTIAL comparison (compare fields which are not
   repeated, have no presence and are set to their default value). (748f57f
   
<https://github.com/protocolbuffers/protobuf/commit/748f57f2b67c56e050b660ffbafb9f3a5795c28a>
   )
   - CMake: Use the correct jsoncpp target name in static builds (#12733
   <https://github.com/protocolbuffers/protobuf/pull/12733>) (d372fcd
   
<https://github.com/protocolbuffers/protobuf/commit/d372fcded6390d396d116ee984c000983beecabc>
   )
   - Fix: missing -DPROTOBUF_USE_DLLS in pkg-config (#12700
   <https://github.com/protocolbuffers/protobuf/pull/12700>) (f86008a
   
<https://github.com/protocolbuffers/protobuf/commit/f86008a548c80021bc6e72de0f992a87d68e7ce4>
   )
   - Avoid using string(JOIN..., which requires cmake 3.12 (adee0a5
   
<https://github.com/protocolbuffers/protobuf/commit/adee0a59f914e8bc2982b716afef2ff3b72f67a5>
   )

Java

   - Put a 4k limit on preallocation to prevent OOM from malformed inputs. (
   173adca
   
<https://github.com/protocolbuffers/protobuf/commit/173adca21659bfd06ae23f07d48129e7633d1f2e>
   )
   - Mark OneofDescriptor.isSynthetic() deprecated. (b6b86e2
   
<https://github.com/protocolbuffers/protobuf/commit/b6b86e21fb67e22b762b7230427bce00ee8c9fec>
   )
   - Use ProtobufArrayList for repeated bytes field. Presize primitive
   arrays for fixed-length primitives. (b0b926a
   
<https://github.com/protocolbuffers/protobuf/commit/b0b926a141e261ab1e4d41715c1d51cc31db46dd>
   )
   - Add protobuf-kotlin into protobuf-bom (#12936
   <https://github.com/protocolbuffers/protobuf/pull/12936>) (943b696
   
<https://github.com/protocolbuffers/protobuf/commit/943b696094631cf263c6d9f92811c7a3419ef17c>
   )
   - Handle clear for Java proto3 optionals (synthetic oneofs) using field
   descriptor instead of clear method. (a534902
   
<https://github.com/protocolbuffers/protobuf/commit/a5349027e3f0d7503bcab55240f18ec657e2dad7>
   )
   - Deps: Update Guava to 32.0.0 (#12953
   <https://github.com/protocolbuffers/protobuf/pull/12953>) (cd615a8
   
<https://github.com/protocolbuffers/protobuf/commit/cd615a8c6596de1fc35874561b53d26597c0b65a>
   )
   - Migrate repeated numeric fields to use bit field to track presence
   instead of using it to indicate the field mutability to potentially skip
   work on the field during build operations. (f0de774
   
<https://github.com/protocolbuffers/protobuf/commit/f0de774705b43e120c43a545033ed29728351bdc>
   )
   - Automated rollback of commit 3e188b7
   
<https://github.com/protocolbuffers/protobuf/commit/3e188b7c04cfdaec134cb59831f009c1ce1d7f12>.
   (a1b3ff0
   
<https://github.com/protocolbuffers/protobuf/commit/a1b3ff0ddb33b3535bf415474d2f1a561883a81f>
   )

Csharp

   - [C#] Replace regex that validates descriptor names (#12174
   <https://github.com/protocolbuffers/protobuf/pull/12174>) (cfb702a
   
<https://github.com/protocolbuffers/protobuf/commit/cfb702a0788f57b6f321cd7a039701f0f53a19c2>
   )
   - Implement option retention for C# (5f64444
   
<https://github.com/protocolbuffers/protobuf/commit/5f64444e7b19421c25ae12d3c69acbab3a70a1bb>
   )

Objective-C

   - Release prototype of Protobuf Editions. (4f9e417
   
<https://github.com/protocolbuffers/protobuf/commit/4f9e41767a819abf8108bb29e4910fbc0f37dc6e>
   )
   - Check invalid type_id after casting it to uint32_t. (d890126
   
<https://github.com/protocolbuffers/protobuf/commit/d8901265c75387851b7b66624b5bcc5bafa9bad9>
   )
   - Fix jruby encoding in new thread (#12919
   <https://github.com/protocolbuffers/protobuf/pull/12919>) (6609bea
   
<https://github.com/protocolbuffers/protobuf/commit/6609bea792af9624f460dad0213bb47fd1ccf623>
   )
   - Add assertions to reflection methods. (5866e45
   
<https://github.com/protocolbuffers/protobuf/commit/5866e4575c7e43cfcabb98efd6f36b4ba5c4bb30>
   )
   - [C#] Replace regex that validates descriptor names (#12174
   <https://github.com/protocolbuffers/protobuf/pull/12174>) (cfb702a
   
<https://github.com/protocolbuffers/protobuf/commit/cfb702a0788f57b6f321cd7a039701f0f53a19c2>
   )

Python

   - Raise warinings when extend repeated field with none iterable in OSS.
   OSS will raise errors soon (96ca7d9
   
<https://github.com/protocolbuffers/protobuf/commit/96ca7d96daf6694341843350a162d9940e7552d3>
   )
   - Remove RegisterExtension in message class (3560e23
   
<https://github.com/protocolbuffers/protobuf/commit/3560e2381efc3e01e67cc895383d270cd5492e13>
   )
   - Removed message._extensions_by_number (86fc32c
   
<https://github.com/protocolbuffers/protobuf/commit/86fc32cedc7aa01798938d5f860094fc21874b93>
   )
   - Removed message._extensions_by_name (e737c81
   
<https://github.com/protocolbuffers/protobuf/commit/e737c8108a72d26e706f6eb5cbc814736a9d2389>
   )
   - Remove RegisterExtension() in python generated code (e5a7a2e
   
<https://github.com/protocolbuffers/protobuf/commit/e5a7a2eba79f697e2c2823dfbb95659088f994a6>
   )
   - Deprecated APIs that add non top descriptors to pool will be removed
   soon (3f5d844
   
<https://github.com/protocolbuffers/protobuf/commit/3f5d844d9068de034df8db49a3c91f9100bd192d>
   )

Python C-Extension (Default)

   - Remove RegisterExtension in message class (protocolbuffers/upb@cbacdf1
   
<https://github.com/protocolbuffers/upb/commit/cbacdf152a04abc7e849b68ba6c4eaeb3c3669e3>
   )
   - *See also UPB changes below, which may affect Python C-Extension
   (Default).*

PHP

   - Adding provide to php composer.json (#13141
   <https://github.com/protocolbuffers/protobuf/pull/13141>) (d603b41
   
<https://github.com/protocolbuffers/protobuf/commit/d603b4199e42d18a6ed433f47bdf8e5042900588>
   )
   - Require PHP version >=8.0, Ruby >=2.7, and Python >=3.8 (a5516ca
   
<https://github.com/protocolbuffers/protobuf/commit/a5516ca6cc5e8034344879d1da83c946cff17ccf>
   )
   - Enable building PHP extension on Windows (#13097
   <https://github.com/protocolbuffers/protobuf/pull/13097>) (4d9bbac
   
<https://github.com/protocolbuffers/protobuf/commit/4d9bbac167a651db960c4d334fa1c47ecd5130e2>
   )
   - Add support for option retention in PHP (ba348e2
   
<https://github.com/protocolbuffers/protobuf/commit/ba348e2b3bf30f3d6f6c356020ac6999ddcf13b0>
   )

PHP C-Extension

   - Release prototype of Protobuf Editions. (4f9e417
   
<https://github.com/protocolbuffers/protobuf/commit/4f9e41767a819abf8108bb29e4910fbc0f37dc6e>
   )
   - Enable building PHP extension on Windows (#13097
   <https://github.com/protocolbuffers/protobuf/pull/13097>) (4d9bbac
   
<https://github.com/protocolbuffers/protobuf/commit/4d9bbac167a651db960c4d334fa1c47ecd5130e2>
   )
   - Remove RegisterExtension in message class (3560e23
   
<https://github.com/protocolbuffers/protobuf/commit/3560e2381efc3e01e67cc895383d270cd5492e13>
   )
   - *See also UPB changes below, which may affect PHP C-Extension.*

Ruby

   - Update ruby gemspec required ruby version to >=2.7 (14ea2cb
   
<https://github.com/protocolbuffers/protobuf/commit/14ea2cb2966f6ede44b91d5594d46d8ea45b64ef>
   )
   - Refactor the object cache to better account for race conditions (#13204
   <https://github.com/protocolbuffers/protobuf/pull/13204>) (a01d047
   
<https://github.com/protocolbuffers/protobuf/commit/a01d047456783b46a4ca675eee881de110a88799>
   )
   - Fix jruby encoding in new thread (#12919
   <https://github.com/protocolbuffers/protobuf/pull/12919>) (6609bea
   
<https://github.com/protocolbuffers/protobuf/commit/6609bea792af9624f460dad0213bb47fd1ccf623>
   )
   - Implement option retention for Ruby (d96032d
   
<https://github.com/protocolbuffers/protobuf/commit/d96032d1a501d8d8ee2f581d0a9597d631797c5f>
   )

Ruby C-Extension

   - Refactor the object cache to better account for race conditions (#13204
   <https://github.com/protocolbuffers/protobuf/pull/13204>) (a01d047
   
<https://github.com/protocolbuffers/protobuf/commit/a01d047456783b46a4ca675eee881de110a88799>
   )
   - Release prototype of Protobuf Editions. (4f9e417
   
<https://github.com/protocolbuffers/protobuf/commit/4f9e41767a819abf8108bb29e4910fbc0f37dc6e>
   )
   - Remove RegisterExtension in message class (3560e23
   
<https://github.com/protocolbuffers/protobuf/commit/3560e2381efc3e01e67cc895383d270cd5492e13>
   )
   - *See also UPB changes below, which may affect Ruby C-Extension.*

UPB (Python/PHP/Ruby C-Extension)

   - Fix upb_MiniTableField_CType() to work correctly for enums & strings. (
   protocolbuffers/upb@532b4d0
   
<https://github.com/protocolbuffers/upb/commit/532b4d0671c806f3f590fb0313b8fc73bd460c6d>
   )
   - Fixed a bug in upb_Map_Delete() that caused crashes in map.delete(k)
   for Ruby when string-keyed maps were in use. (protocolbuffers/upb@14bad4a
   
<https://github.com/protocolbuffers/upb/commit/14bad4a5bfd8ff8fced91010edac7dd3747a7bd7>
   )

Other

   - Drop Bazel 4 support and add Bazel 6 (4031712
   
<https://github.com/protocolbuffers/protobuf/commit/4031712c34084f8c2bb4904e49e8a0d723ea8578>
   )
   - Bump Abseil submodule to 20230125.3 (#12660
   <https://github.com/protocolbuffers/protobuf/pull/12660>) (2a3ce31
   
<https://github.com/protocolbuffers/protobuf/commit/2a3ce310843056fce9159af643c4785a0f8c85e2>
   )
   - Added a conformance test for embedded nulls in JSON strings. (37dfe80
   
<https://github.com/protocolbuffers/protobuf/commit/37dfe806f84617390e9779fc237a0a77f5a50d6d>
   )


You can view the release on [GitHub](
https://github.com/protocolbuffers/protobuf/tree/v24.0).

If you experience any issues with the release, please [file a
bug](https://github.com/protocolbuffers/protobuf/issues/new/choose) or post
on [the Protocol
Buffers forum](https://groups.google.com/g/protobuf).

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/protobuf/CABV2wQVQnTkNT_COXp6%2Bk9fvgCSh721_vyjjHURXbRaL8DPqxg%40mail.gmail.com.

Reply via email to