gRPC v1.21.0 Release Notes

Release Date: 2019-05-21 // almost 5 years ago
  • 🚀 Note: gRPC Python pkgs for this release are not available due to the issue #19105. We will soon be releasing 1.21.1 patch to address this issue.

    This is the 1.21.0 release (gandalf) 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.

    👀 Note: gRPC Python packages are now marked as deprecated for Python 2.7. See the previous announcement here. Python 2.7 support will be removed on January 1, 2020.

    Core

    • Service Config Changes to set channel in transient failure on invalid service config. (#18946)
    • ➕ Add a backup poller to c-ares resolver to take better advantage of c-ares query timeout/retry logic. (#17688)
    • Pass WSA_FLAG_NO_HANDLE_INHERIT flag to the WSASocketA() to avoid handle leaking on the Windows in case of using CreateProcess() on the server. (#18060)
    • ➕ Add fallback-at-startup into xds. (#18665)
    • Retire the GRPC_ARENA_INIT_STRATEGY env variable. (#18797)
    • 🛠 Fix gevent segfault with C-Ares as DNS resolver. (#18547)
    • Explicitly call getsockname after accept for unix sockets to get the sun_path. (#18556)
    • 🏁 RBE Windows c-core build. (#18546)
    • Loosen the dependency on the googleapis-common-protos-types gem. (#18635)
    • pick_first: don't go into TRANSIENT_FAILURE upon empty update when in IDLE. (#18598)
    • Add guard to the tv_nsec field of gpr_now return value. (#18601)
    • Re-enable ALPN check in gRPC C core SSL stack. (#18563)

    C++

    • Global config variables migration. (#18931)
    • Make cc_grpc_library compatible with native proto_library and cc_proto_library rules. (#18955)
    • ➕ Add alarm in callback streaming test. (#18858)
    • 👉 Make C++ Channel Interceptors work for lame channels. (#18630)

    C

    • 👌 Support slice-by-slice deserialization (allow accessing payload as ReadOnlySequence when on netstandard2.0). (#18865)
    • ➕ Add VS integration for design time build of C# projects. (#18678)
    • Migrate interceptor types for server-side interceptors to Grpc.Core.Api. (#18914)
    • ➕ Add info about C# nightly nuget feed. (#18876)
    • Upload C# nightly nugets to Artifactory dev nuget feed. (#18871)
    • Migrate client API types to Grpc.Core.Api. (#18532)
    • 🚚 Make CallCredentials implementation agnostic (prepare for move to Grpc.Core.Api). (#18652)
    • ➕ Add BindServiceAttribute. (#18484)
    • Provide access to verify_peer_callback from C# (take two). (#18591)

    Node

    • ➕ Add cares glue for libuv event loop. (#18809)

    Objective-C

    • gRPC Objective-C Flow Control. (#17936)
    • ⚡️ Updated all ObjC examples to use the new api . (#18766)
    • 🛠 Fix v2 API dispatching to main queue. (#18765)
    • 🛠 Fix bug that default root certificates file cannot be found on mac. (#18719)
    • 0️⃣ Turn on CFStream by default on iOS. (#17599)

    Python

    • ➕ Add python deprecation notices. (#19081)
    • ➕ Add ability to strip module prefixes in Python gRPC protoc plugin. (#18808)
    • Propagate KeyboardInterrupt above completion queue. (#18783)
    • ➕ Add Python Compression Porcelain. (#18564)

    💎 Ruby

    • Add BadStatus#to_rpc_status. (#18752)