This is the 1.18.0 release (goose) of gRPC Core.
Please see the notes for the previous releases here: https://github.com/grpc/grpc/releases. Please consult https://grpc.io/ for all information regarding this product.
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
- Use 32 bit nanopb fields. (#17249)
- Put most c-ares logs under a tracer. (#17495)
- Avoid SRV and TXT lookups for localhost. (#17470)
- Fix bug in subchannel backoff reset code. (#17391)
- Change pick_first to immediately select the first subchannel in READY state. (#17383)
- Cancel c-ares queries after a timeout to avoid getting stuck. (#17354)
- Add gRPC release schedule document. (#17306)
- Preparation for the new background poller 'epollbg'. (#17244)
C++
- Allow interceptor creators to return nullptr. (#17544)
C#
Python
- Servers are no longer guaranteed to automatically shutdown when garbage collected. Applications must explicitly invoke
grpc.Server.stop()
to shutdown the server and release its resources. This aligns server behavior with thegrpc.Channel.close()
semantics introduced in v1.12.0. - Add python API to retrieve library version. (#17580)
- Add Watch method to health check service. (#17597)
- Refactor server deallocation. (#17444)
- Add grpcio-status extension package. (#17490)
- Add gRPC Python Example: Metadata. (#17485)
- New abort with grpc.Status API. (#17481)
- Update urllib3 to avoid security vulnerability. (#17476)
- Add License to Python tarball. (#17411)
- Revert "Strip manylinux1 binary wheels". (#17412)
- Surface exceptions from Cython to Python as much as possible. (#16971)
- Add
logging.basicConfig()
for example servers. (#17322) - Channelz Python wrapper implementation. (#17266)
- Fix Python blocking interceptors facing RpcError. (#17317)
- Raise the exception while credential initialization. (#17281)