gRPC v1.30.0 Release Notes

Release Date: 2020-06-23 // almost 4 years ago
  • This is the 1.30.0 release (gradius) 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

    • This release adds an xDS URI scheme called xds. This is the stable version of the scheme xds-experimental that was introduced in v1.28.0. xds-experimental scheme will be removed in subsequent releases so you must switch to xds scheme instead. xds scheme is a client side implementation of xDSv2 APIs. This allows a gRPC client written in C++, Python, Ruby, PHP and C# to receive configuration from an xDSv2 API compatible server and use that configuration to load balance RPCs. In this release, only the virtual host matching, default path (โ€œโ€ or โ€œ/โ€) matching and cluster route action are supported. The features supported in a given release are documented here.
    • โœ‚ Remove unnamed typedef structs in src/core. (#23082)
    • ๐Ÿ‘Œ Support xDS via both xds and xds-experimental URI schemes. (#23105)
    • ๐Ÿ›  Fix sorting of gRPCLB addresses when resolved via DNS. (#23086)
    • ๐Ÿ‘Œ Support local creds in grpc_cli. (#23037)
    • โž• Add some additional delay when sending pings without there being activity on receive side. (#22932)
    • Added GRPC_TSAN_SUPPRESSED and GRPC_ASAN_SUPPRESSED. (#22325)
    • Fail decompression when the gzip trailer is missing. (#22929)
    • Include source address in tcp posix async connect errors. (#22802)
    • ๐Ÿ›  Fix #19094 and #21947 - Fix HTTP status conversion inconsistencies. (#22901)
    • Add GRPC_ARG_HTTP_PROXY channel argument. (#20866)
    • Include the query type and name in all c-ares DNS error messages. (#22865)
    • ๐Ÿ”€ Include the destination address in synchronous TCP connect errors. (#22868)
    • ๐Ÿ‘‰ Use aligned calculation to determine transport stream from call data. (#22730)
    • ๐Ÿ›  Fixing bug with END_STREAM if header has continuations. (#22626)
    • Fail writes when End of stream has been received. (#22668)

    C++

    • ๐Ÿ›  Fix missing include for std::string. (#23032)
    • Don't override cmake cxx standard when already set by the user. (#22976)
    • Grpc.Tools: Fix cpp paths in tools to match actual codegen. (#22113)
    • TlsCredentialsOption API optimization. (#22873)
    • ๐Ÿ›  Fixed MinGW 7.3.0 shared library compile and link issues. (#21720)
    • ๐Ÿ›  Fix interceptor batch method FailHijackedRecvMessage for async APIs. (#22746)

    C

    • Reintroduce "C# expose C-core's debug error string in Status struct". (#23148)
    • ๐Ÿ›  Fix C++ cleanup in Grpc.Tools. (#22895)
    • C# expose C-core's debug error string in Status struct. (#22891)
    • ๐Ÿ›  Fix properties in Grpc.Tools. (#22896)
    • C#: add SkipGrpcNativeLibs flag (in Grpc.Core.targets). (#22894)
    • โž• Add helper methods for getting metadata values. (#22743)

    Objective-C

    • objc: add autogenerated header to generated files. (#22871)
    • Moved GRPCTypes into its own grpc_objc_library. (#22913)

    PHP

    • PHP xDS Interop Client. (#23056)
    • PHP: Fix crash in subprocess after fork(). (#22774)

    Python

    • โž• Add Aio stream stream client interceptor support. (#23092)
    • ๐Ÿ‘ [Aio] Add AsyncIO support for Channelz. (#22667)
    • Stop memory leak when Python channel is deallocated without invoking "close". (#22855)
    • ๐Ÿ”ฆ Expose ALTS client/server credentials in Python API. (#22638)
    • [Aio] Stream Unary client interceptor. (#22821)
    • ๐Ÿ”€ [Aio] Make sync handlers runnable in AsyncIO server. (#22812)
    • ๐Ÿ‘ [Aio] Add AsyncIO support to grpcio-status. (#22688)
    • [Aio] Implement the Unary Stream client interceptor. (#22713)

    ๐Ÿ’Ž Ruby

    • ๐Ÿ›  Fix Ruby 2.7 compatibility in GenericService.underscore. (#20417)
    • Ruby: surface recv_status_op.error_string and into BadStatus exceptions. (#22876)
    • ๐Ÿ›  Fix to use immutable string literal. (#20867)
    • ๐Ÿ›  Fix YARD annotation of GRPC::ClientInterceptor. (#22734)
    • ๐Ÿ’Ž Convert hash to keyword arguments for ruby 2.7. (#22915)
    • ๐Ÿ›  Fix generating method output with nested resource. (#22594)