Releases: grpc/grpc-go
protoc-gen-go-grpc v1.0.0
Background
This is the first major release of the protoc plugin for generating grpc stubs from the grpc-go repo. The previous version was part of the protoc-gen-go tool at https://github.com/golang/protobuf. With the migration of that tool to https://google.golang.org/protobuf, grpc support was removed and shifted to this repo.
Incompatible change
There is one backward-compatibility breaking change in this version of the tool, which can be disabled with a flag at generation time. The Unimplemented<Service>Server struct is now required to be embedded in implementations of the generated <Service>Server interface. This requirement guarantees that backward-compatibility is maintained by the generated code when new methods are added to a service, which is, itself, a backward-compatible operation.
To disable this behavior, which is recommended only for producing code compatible with earlier generated code, set the flag require_unimplemented_servers=false. For more details, please see the binary's README.md
Release 1.32.0
Release 1.31.1
- eds: fix priority timeout failure when EDS removes all priorities (#3839)
Release 1.30.1
- eds: fix priority timeout failure when EDS removes all priorities (#3840)
Release 1.31.0
API Changes
- balancer: remove deprecated type aliases (#3742)
New Features
- The following new xDS functionalities are added in this release (xDS features supported in a given release are documented here):
- service config: add default method config support (#3684)
- Special Thanks: @amenzhinsky
- credentials/sts: PerRPCCreds Implementation (#3696)
- credentials: check and expose SPIFFE ID (#3626)
- protoc-gen-go-grpc: support for proto3 field presence (#3752)
Bug Fixes
- client: set auth header to localhost for unix target (#3730)
Documentation
- doc: mark CustomCodec as deprecated (#3698)
- examples: cleanup README.md (#3738)
- doc: fix references to status methods (#3702)
- Special Thanks: @evanlimanto
Release 1.30.0
API Changes
- This release adds an xDS URI scheme called
xds. This is the stable version of the schemexds-experimentalthat was introduced in v1.28.0.xds-experimentalscheme will be removed in subsequent releases so you must switch toxdsscheme instead.xdsscheme is a client side implementation of xDSv2 APIs. This allows a gRPC client written in Go 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. - balancer: move Balancer and Picker to V2; delete legacy API (#3180, #3431)
- Replace
balancer.Balancerandbalancer.Pickerwith theV2BalancerandV2Pickerversions. - Remove
balancer.ClientConn.UpdateBalancerState. - Remove the original balancer plugin API, based on
grpc.Balancer, and all related functionality. - Remove the deprecated
namingpackage.
- Replace
Behavior Changes
- grpclb, dns: pass balancer addresses via resolver.State (#3614)
New Features
- balancer: support hierarchical paths in addresses (#3494)
- client: option to surface connection errors to callers (#3430)
- Special Thanks: @sethp-nr
- credentials: pass address attributes from balancer to creds handshaker. (#3548)
- credentials: local creds implementation (#3517)
- advancedtls: add fine-grained verification levels in XXXOptions (#3454)
- xds: handle weighted cluster as route action (#3613)
- xds: add weighted_target balancer (#3541)
Performance Improvements
- transport: move append of header and data down to http2 write loop to save garbage (#3568)
- Special Thanks: @bboreham
- server.go: use worker goroutines for fewer stack allocations (#3204)
- Special Thanks: @adtac
Bug Fixes
- stream: fix calloption.After() race in finish (#3672)
- retry: prevent per-RPC creds error from being transparently retried (#3677, #3691)
- cache: callback without cache's mutex (#3603)
- client: properly check GRPC_GO_IGNORE_TXT_ERRORS environment variable (#3532)
- Special Thanks: @t33m
- balancergroup: fix connectivity state (#3585)
- xds: use google default creds (#3673)
- xds: accept either "" or "/" as the prefix for the default route (#3535)
- xds: reject RDS response containing match with case-sensitive false (#3592)
Documentation
Release 1.29.1
- status: remove Error method accidentally added to *Status (#3561)
Release 1.29.0
New Features
Bug Fixes
- xds: update nonce even if the ACK/NACK is not sent on wire (#3497)
- xds: add temporary logging to LRS (#3490)
- wrr: make random wrr thread safe (#3470)
- transport: fix handling of header metadata in serverHandler (#3484)
- Special Thanks: @misberner
- balancer: change roundrobin to accept empty address list (#3491)
- stats: set response compression codec on stats.InHeader and stats.OutHeader (#3390)
- Special Thanks: @MatthewDolan
Documentation
Release 1.28.1
Release 1.28.0
New Features
- This release adds an experimental client side implementation of xDSv2 APIs. This allows a gRPC client written in Go 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 and cluster route action is supported. More features will be added in future.
- grpclb: support explicit fallback signal (#3351)
- interceptor: new APIs for chaining server interceptors. (#3336)
- Special Thanks: @tukeJonny
- stats: add client side user agent to outgoing header (#3331)
- Special Thanks: @piotrkowalczuk
API Changes
- credentials: deprecate ProtocolInfo.SecurityVersion (#3372)
Bug Fixes
- interop: Build grpclb_fallback/client.go only for linux. (#3375)
- internal: Update service_config.pb.go (#3365)
- internal: Move parseTarget function into internal package and export it. (#3368)
- balancer/base: keep bad SubConns in TransientFailure until Ready (#3366)
- balancer/base: consider an empty address list an error (#3361)
Dependencies
- protobuf: update protoc-gen-go version and generated code (#3345)