Release v1.25.0
Core
Change RR to consider a subchannel in TF if it has failed since it was READY.
Fix a use after free in c-ares on Windows.
C++
Honor CARES_ROOT_DIR.
Make cmake grpc.pc depend on openssl too.
Create pkg-config files from CMake.
Add C++ wrapper for SPIFFE credentials v2.
Upgrade bazel to 0.29.1.
Python
Add experimental option to run unary-stream RPCs on a single Python thread.
[AIO] Minimal AsyncIO Server.
Switch to concrete classes in experimental asyncio.
Add manylinux2010_x86 wheels into artifacts.
Release 3.8 binary wheels.
Make grpc_testing's Servicer context abort method stop execution of the servicer handler.
Build Python wheels with tag manylinux2010.
Add experimental support for asyncio unary client.
1.24.3
Add strip_prefix to python protoc plugin and py_grpc_library.
Switch py_proto_library from using src to deps to conform with google3.
Expose local credentials on Python layer.
Make default vtable for pointer argument a constant.
Gracefully handle errors from Future object callbacks.
Gracefully handle exceptions raised by signal handlers on the main thread while unary RPCs are in flight.
Separate py_grpc_library and py_proto_library.
Add wait_for_termination method to grpc.Server.
Add Python Cancellation Example.
1.23.0:
Check call.trailing_metadata() for None before iterating it.
Add a sanity check for the Python release process.
Enforce a finite bound on the time gap between signal receipt and signal handler execution.
Python Compression Example.