C++
- Add header search paths to Protobuf-C++.podspec (#10024)
- Fixed Visual Studio constinit errors (#10232)
- Fix #9947: make the ABI compatible between debug and non-debug builds (#10271)
UPB
- Allow empty package names (fixes behavior regression in 4.21.0)
- Fix a SEGV bug when comparing a non-materialized sub-message (#10208)
- Fix several bugs in descriptor mapping containers (eg. descriptor.services_by_name)
- for x in mapping now yields keys rather than values, to match Python conventions and the behavior of the old library.
- Lookup operations now correctly reject unhashable types as map keys.
- We implement repr() to use the same format as dict.
- Fix maps to use the ScalarMapContainer class when appropriate
- Fix bug when parsing an unknown value in a proto2 enum extension (protocolbuffers/upb#717)
PHP
- Add "readonly" as a keyword for PHP and add previous classnames to descriptor pool (#10041)
Python
- Make //:protobuf_python and //:well_known_types_py_pb2 public (#10118)
Bazel
- Add back a filegroup for :well_known_protos (#10061)