2022-03-25 version 3.20.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
C++
- Add option to use external GTest in CMake (#8736)
- cmake: Set correct sonames for libprotobuf-lite.so and libprotoc.so (#8635) (#9529)
Java
- Revert "Standardize on Array copyOf" (#9400)
- Resolve more java field accessor name conflicts (#8198)
Python
- Pin multibuild scripts to get manylinux1 wheels back (#9216)
- Dropped support for Python < 3.7 (#9480)
PHP
- fix: [PHP] add missing reserved classnames (#9458)
Ruby
- Dropped Ruby 2.3 and 2.4 support for CI and releases. (#9311)
- [Ruby] Message.decode/encode: Add max_recursion_depth option (#9218)
- Ruby: rename max_recursion_depth to recursion_limit (#9486)
- Fix conversion of singleton classes in Ruby (#9342)
- Suppress warning for intentional circular require (#9556)
- [Ruby] allow encode json options to be an object that responds to to_hash (#9513)
Other
- [C#] Fix trim warnings (#9182)
- Add protoc-gen-go-svc to options.md (#9280)
- Fixes NullReferenceException when accessing FieldDescriptor.IsPacked (#9430)
- Add ToProto() method to all C# descriptor classes (#9426)
- Add cmake option
protobuf_INSTALL
to not install files (#7123) - [CMake] Allow custom plugin options e.g. to generate mocks (#9105)
- Add an option to preserve proto names in JsonFormatter (#6307)
- Add test scope to kotlin-test for protobuf-kotlin-lite (#9518)
- Add prefix_to_proto_package_mappings_path ObjC option. (#9498)
- [ObjC] Rename
proto_package_to_prefix_mappings_path
topackage_to_prefix_mappings_path
. (#9552) - cmake: Use linker version scripts (#9545)
- Add a generation option to control use of forward declarations in headers. (#9568)
- [C#] fix parse failure for extensions with large field numbers (#9591)