Python * Fix broken enum ranges (11171) * Stop requiring extension fields to have a sythetic oneof (11091) * Python runtime 4.21.10 not works generated code can not load valid proto. (11171)
Java * Use bit-field int values in buildPartial to skip work on unset groups of fields. (10960) * Mark nested builder as clean after clear is called (10984) UPB * Fix UPB_LIKELY() for 32-bit Windows builds; update protobuf_deps to point to the current upb 21.x (11028) Other * Add public modifiers to kotlin code (11068)
21.9
C++ * Update zlib to 1.2.13 (10819)
Python * Target MacOS 10.9 to fix 10799 (10807)
Ruby * Replace libc strdup usage with internal impl to restore musl compat (10818)
21.8
Other * Fix for grpc.tools 17995 & protobuf 7474 (handle UTF-8 paths in argumentfile) (10721)
C++ * 21.x No longer define no_threadlocal on OpenBSD (10743)
Java * Mark default instance as immutable first to avoid race during static initialization of default instances (10771)
Ruby * Auto capitalize enums name in Ruby (10454) (10763)
21.7
Java * 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. * This release addresses a [Security Advisory for Java users](https://github.com/protocolbuffers/protobuf/security/advisories/GHSA-h4h5-3hr4-j3g2)