grpc/grpc-go
### [`v1.43.0`](https://togithub.com/grpc/grpc-go/releases/v1.43.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.42.0...v1.43.0)
### API Changes
- grpc: stabilize `WithConnectParams` `DialOption` ([#4915](https://togithub.com/grpc/grpc-go/issues/4915))
- Special Thanks: [@hypnoglow](https://togithub.com/hypnoglow)
### Behavior Changes
- status: support wrapped errors in `FromContextError` ([#4977](https://togithub.com/grpc/grpc-go/issues/4977))
- Special Thanks: [@bestbeforetoday](https://togithub.com/bestbeforetoday)
- config: remove the environment variable to disable retry support ([#4922](https://togithub.com/grpc/grpc-go/issues/4922))
### New Features
- balancer: new field `Authority` in `BuildOptions` for server name to use in the authentication handshake with a remote load balancer ([#4969](https://togithub.com/grpc/grpc-go/issues/4969))
### Bug Fixes
- xds/resolver: fix possible `ClientConn` leak upon resolver initialization failure ([#4900](https://togithub.com/grpc/grpc-go/issues/4900))
- client: fix `nil` panic in rare race conditions with the pick first LB policy ([#4971](https://togithub.com/grpc/grpc-go/issues/4971))
- xds: improve RPC error messages when xDS connection errors occur ([#5032](https://togithub.com/grpc/grpc-go/issues/5032), [#5054](https://togithub.com/grpc/grpc-go/issues/5054))
- transport: do not create stream object in the face of illegal stream IDs ([#4873](https://togithub.com/grpc/grpc-go/issues/4873))
- Special Thanks: [@uds5501](https://togithub.com/uds5501)
### Documentation
- client: clarify errors to indicate whether compressed or uncompressed messages exceeded size limits ([#4918](https://togithub.com/grpc/grpc-go/issues/4918))
- Special Thanks: [@uds5501](https://togithub.com/uds5501)
### [`v1.42.0`](https://togithub.com/grpc/grpc-go/releases/v1.42.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.41.1...v1.42.0)
### Behavior Changes
- grpc: Dial("unix://relative-path") no longer works ([#4817](https://togithub.com/grpc/grpc-go/issues/4817))
- use "unix://absolute-path" or "unix:relative-path" instead in accordance with [our documentation](https://togithub.com/grpc/grpc/blob/master/doc/naming.md#name-syntax)
- xds/csds: use new field `GenericXdsConfig` instead of `PerXdsConfig` ([#4898](https://togithub.com/grpc/grpc-go/issues/4898))
### New Features
- grpc: support `grpc.WithAuthority` when secure credentials are used ([#4817](https://togithub.com/grpc/grpc-go/issues/4817))
- creds/google: add NewDefaultCredentialsWithOptions() to support custom per-RPC creds ([#4767](https://togithub.com/grpc/grpc-go/issues/4767), [#4830](https://togithub.com/grpc/grpc-go/issues/4830))
- authz: create file watcher interceptor for gRPC SDK API ([#4760](https://togithub.com/grpc/grpc-go/issues/4760))
- attributes: add `Equal` method ([#4855](https://togithub.com/grpc/grpc-go/issues/4855))
- resolver: add `AddressMap` and `State.BalancerAttributes` ([#4855](https://togithub.com/grpc/grpc-go/issues/4855))
- resolver: Add `URL` field to `Target` to store parsed dial target ([#4817](https://togithub.com/grpc/grpc-go/issues/4817))
- grpclb: add a `target_name` field to lb config to specify target when used as a child policy ([#4847](https://togithub.com/grpc/grpc-go/issues/4847))
- grpclog: support formatting log output as JSON ([#4854](https://togithub.com/grpc/grpc-go/issues/4854))
### Bug Fixes
- server: add missing conn.Close if the connection dies before reading the HTTP/2 preface ([#4837](https://togithub.com/grpc/grpc-go/issues/4837))
- grpclb: recover if addresses are received after an empty server list was received previously ([#4879](https://togithub.com/grpc/grpc-go/issues/4879))
- authz: support empty principals and fix rbac authenticated matcher ([#4883](https://togithub.com/grpc/grpc-go/issues/4883))
- xds/rds: NACK the RDS response if it contains unknown cluster specifier ([#4788](https://togithub.com/grpc/grpc-go/issues/4788))
- xds/priority: do not switch to low priority when high priority is in Idle (e.g. ringhash) ([#4889](https://togithub.com/grpc/grpc-go/issues/4889))
### Documentation
- grpc: stabilize WithDefaultServiceConfig and improve godoc ([#4888](https://togithub.com/grpc/grpc-go/issues/4888))
- status: clarify FromError docstring ([#4880](https://togithub.com/grpc/grpc-go/issues/4880))
- examples: add example illustrating the use of unix abstract sockets ([#4848](https://togithub.com/grpc/grpc-go/issues/4848))
- examples: update load balancing example to use loadBalancingConfig ([#4887](https://togithub.com/grpc/grpc-go/issues/4887))
- doc: promote WithDisableRetry to stable; clarify retry is enabled by default ([#4901](https://togithub.com/grpc/grpc-go/issues/4901))
### API Changes
- credentials: Mark `TransportCredentials.OverrideServerName` method as deprecated ([#4817](https://togithub.com/grpc/grpc-go/issues/4817))
### [`v1.41.1`](https://togithub.com/grpc/grpc-go/releases/v1.41.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.41.0...v1.41.1)
- creds/google: add NewDefaultCredentialsWithOptions() to support custom per-RPC creds ([#4767](https://togithub.com/grpc/grpc-go/issues/4767), [#4830](https://togithub.com/grpc/grpc-go/issues/4830))
- pickfirst: check b.sc before calling Connect ([#4971](https://togithub.com/grpc/grpc-go/issues/4971))
### [`v1.41.0`](https://togithub.com/grpc/grpc-go/releases/v1.41.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.40.1...v1.41.0)
### API Changes
- xds: Promote xds server and creds APIs to stable ([#4753](https://togithub.com/grpc/grpc-go/issues/4753))
- balancer: add `ExitIdle` interface to instruct the balancer to attempt to leave the IDLE state by connecting SubConns if appropriate. ([#4673](https://togithub.com/grpc/grpc-go/issues/4673))
- **NOTICE:** This method will be *required by the `Balancer` interface* in the future
### Behavior Changes
- xds: update xdsclient to keep valid resources from the response even if it has invalid responses and is NACK'ed (see [gRFC 260](https://togithub.com/grpc/proposal/pull/260)) ([#4743](https://togithub.com/grpc/grpc-go/issues/4743))
- balancer: SubConns no longer automatically reconnect after READY; instead they transition to IDLE on connection loss ([#4613](https://togithub.com/grpc/grpc-go/issues/4613))
### New Features
- xds: add support for RINGHASH lb-policy and affinity ([#4741](https://togithub.com/grpc/grpc-go/issues/4741))
- xds: add support for retry policy in VirtualHosts and Routes ([#4738](https://togithub.com/grpc/grpc-go/issues/4738))
- stats: support stats for all retry attempts; support transparent retry ([#4749](https://togithub.com/grpc/grpc-go/issues/4749))
- authz: create interceptors for gRPC security policy API ([#4664](https://togithub.com/grpc/grpc-go/issues/4664))
### Bug Fixes
- transport: fix race in transport stream accessing s.recvCompress ([#4641](https://togithub.com/grpc/grpc-go/issues/4641))
- client: fix transparent retries when per-RPC credentials are in use ([#4785](https://togithub.com/grpc/grpc-go/issues/4785))
- server: fix bug that net.Conn is leaked if the connection is closed (io.EOF) immediately with no traffic ([#4633](https://togithub.com/grpc/grpc-go/issues/4633))
- oauth: Allow access to Google API regional endpoints via Google Default Credentials ([#4713](https://togithub.com/grpc/grpc-go/issues/4713))
### [`v1.40.1`](https://togithub.com/grpc/grpc-go/releases/v1.40.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.40.0...v1.40.1)
- creds/google: add NewDefaultCredentialsWithOptions() to support custom per-RPC creds ([#4767](https://togithub.com/grpc/grpc-go/issues/4767), [#4830](https://togithub.com/grpc/grpc-go/issues/4830))
### [`v1.40.0`](https://togithub.com/grpc/grpc-go/releases/v1.40.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.39.1...v1.40.0)
### Behavior Changes
- balancer: client channel no longer connects to idle subchannels that are returned by the pickers; LB policy should call SubConn.Connect instead. ([#4579](https://togithub.com/grpc/grpc-go/issues/4579))
- This change is in line with existing documentation stating the balancer must call Connect on idle SubConns in order for them to connect, and is preparation for an upcoming change that transitions SubConns to the idle state when connections are lost. See https://pkg.go.dev/google.golang.org/grpc/balancer#SubConn for more details.
### Bug Fixes
- transport: fail RPCs without HTTP status 200 (OK), according to the gRPC spec ([#4474](https://togithub.com/grpc/grpc-go/issues/4474))
- Special Thanks: [@JNProtzman](https://togithub.com/JNProtzman)
- binarylog: fail the `Write()` method if proto marshaling fails ([#4582](https://togithub.com/grpc/grpc-go/issues/4582))
- Special Thanks: [@Jille](https://togithub.com/Jille)
- binarylog: exit the flusher goroutine upon closing the `bufferedSink` ([#4583](https://togithub.com/grpc/grpc-go/issues/4583))
- Special Thanks: [@Jille](https://togithub.com/Jille)
### New Features
- metadata: add Delete method to MD to encapsulate lowercasing ([#4549](https://togithub.com/grpc/grpc-go/issues/4549))
- Special Thanks: [@konradreiche](https://togithub.com/konradreiche)
- xds/cds: support logical DNS cluster and aggregated cluster ([#4594](https://togithub.com/grpc/grpc-go/issues/4594))
- stats: add stats.Begin.IsClientStream and IsServerStream to indicate the type of RPC invoked ([#4533](https://togithub.com/grpc/grpc-go/issues/4533))
- Special Thanks: [@leviska](https://togithub.com/leviska)
### Performance Improvements
- server: improve performance when multiple interceptors are used ([#4524](https://togithub.com/grpc/grpc-go/issues/4524))
- Special Thanks: [@amenzhinsky](https://togithub.com/amenzhinsky)
### [`v1.39.1`](https://togithub.com/grpc/grpc-go/releases/v1.39.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.39.0...v1.39.1)
- server: fix bug that net.Conn is leaked if the connection is closed (io.EOF) immediately with no traffic ([#4642](https://togithub.com/grpc/grpc-go/issues/4642))
- transport: fix race in transport stream accessing s.recvCompress ([#4627](https://togithub.com/grpc/grpc-go/issues/4627))
### [`v1.39.0`](https://togithub.com/grpc/grpc-go/releases/v1.39.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.38.1...v1.39.0)
### Behavior Changes
- csds: return empty response if xds client is not set ([#4505](https://togithub.com/grpc/grpc-go/issues/4505))
- metadata: convert keys to lowercase in FromContext() ([#4416](https://togithub.com/grpc/grpc-go/issues/4416))
### New Features
- xds: add GetServiceInfo to GRPCServer ([#4507](https://togithub.com/grpc/grpc-go/issues/4507))
- Special Thanks: [@amenzhinsky](https://togithub.com/amenzhinsky)
- xds: add test-only injection of xds config to client and server ([#4476](https://togithub.com/grpc/grpc-go/issues/4476))
- server: allow PreparedMsgs to work for server streams ([#3480](https://togithub.com/grpc/grpc-go/issues/3480))
- Special Thanks: [@eafzali](https://togithub.com/eafzali)
### Performance Improvements
- transport: remove decodeState from client & server to reduce allocations ([#4423](https://togithub.com/grpc/grpc-go/issues/4423))
- Special Thanks: [@JNProtzman](https://togithub.com/JNProtzman)
### Bug Fixes
- server: return UNIMPLEMENTED on receipt of malformed method name ([#4464](https://togithub.com/grpc/grpc-go/issues/4464))
- xds/rds: use 100 as default weighted cluster totalWeight instead of 0 ([#4439](https://togithub.com/grpc/grpc-go/issues/4439))
- Special Thanks: [@alpha-baby](https://togithub.com/alpha-baby)
- transport: unblock read throttling when controlbuf exits ([#4447](https://togithub.com/grpc/grpc-go/issues/4447))
- client: fix status code to return Unavailable for servers shutting down instead of Unknown ([#4561](https://togithub.com/grpc/grpc-go/issues/4561))
### Documentation
- doc: fix broken benchmark dashboard link in README.md ([#4503](https://togithub.com/grpc/grpc-go/issues/4503))
- Special Thanks: [@laststem](https://togithub.com/laststem)
- example: improve hello world server with starting msg ([#4468](https://togithub.com/grpc/grpc-go/issues/4468))
- Special Thanks: [@dkkb](https://togithub.com/dkkb)
- client: Clarify that WaitForReady will block for CONNECTING channels ([#4477](https://togithub.com/grpc/grpc-go/issues/4477))
- Special Thanks: [@evanj](https://togithub.com/evanj)
### [`v1.38.1`](https://togithub.com/grpc/grpc-go/releases/v1.38.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.38.0...v1.38.1)
internal/transport: do not mask ConnectionError ([#4561](https://togithub.com/grpc/grpc-go/issues/4561))
### [`v1.38.0`](https://togithub.com/grpc/grpc-go/releases/v1.38.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.37.1...v1.38.0)
### API Changes
- reflection: accept interface instead of grpc.Server struct in Register() ([#4340](https://togithub.com/grpc/grpc-go/issues/4340))
- resolver: add error return value from ClientConn.UpdateState ([#4270](https://togithub.com/grpc/grpc-go/issues/4270))
### Behavior Changes
- client: do not poll name resolver when errors or bad updates are reported ([#4270](https://togithub.com/grpc/grpc-go/issues/4270))
- transport: InTapHandle may return RPC status errors; no longer RST_STREAMs ([#4365](https://togithub.com/grpc/grpc-go/issues/4365))
### New Features
- client: propagate connection error causes to RPC status ([#4311](https://togithub.com/grpc/grpc-go/issues/4311), [#4316](https://togithub.com/grpc/grpc-go/issues/4316))
- xds: support inline RDS resource from LDS response ([#4299](https://togithub.com/grpc/grpc-go/issues/4299))
- xds: server side support is now experimentally available
- server: add ForceServerCodec() to set a custom encoding.Codec on the server ([#4205](https://togithub.com/grpc/grpc-go/issues/4205))
- Special Thanks: [@ash2k](https://togithub.com/ash2k)
### Performance Improvements
- metadata: reduce memory footprint in FromOutgoingContext ([#4360](https://togithub.com/grpc/grpc-go/issues/4360))
- Special Thanks: [@irfansharif](https://togithub.com/irfansharif)
### Bug Fixes
- xds/balancergroup: fix rare memory leak after closing ClientConn ([#4308](https://togithub.com/grpc/grpc-go/issues/4308))
### Documentation
- examples: update xds examples for PSM security ([#4256](https://togithub.com/grpc/grpc-go/issues/4256))
- grpc: improve docs on StreamDesc ([#4397](https://togithub.com/grpc/grpc-go/issues/4397))
### [`v1.37.1`](https://togithub.com/grpc/grpc-go/releases/v1.37.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.37.0...v1.37.1)
- client: fix rare panic when shutting down client while receiving the first name resolver update ([#4398](https://togithub.com/grpc/grpc-go/issues/4398))
- client: fix leaked addrConn struct when addresses are updated ([#4347](https://togithub.com/grpc/grpc-go/issues/4347))
- xds/resolver: prevent panic when two LDS updates are receives without RDS in between ([#4327](https://togithub.com/grpc/grpc-go/issues/4327))
### [`v1.37.0`](https://togithub.com/grpc/grpc-go/releases/v1.37.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.36.1...v1.37.0)
### API Changes
- balancer: Add UpdateAddresses() to balancer.ClientConn interface ([#4215](https://togithub.com/grpc/grpc-go/issues/4215))
- **NOTICE**: balancer.SubConn.UpdateAddresses() is now deprecated and will be **REMOVED** in gRPC-Go 1.39
### Behavior Changes
- balancer/base: keep address attributes for pickers ([#4253](https://togithub.com/grpc/grpc-go/issues/4253))
- Special Thanks: [@longXboy](https://togithub.com/longXboy)
### New Features
- xds: add support for csds ([#4226](https://togithub.com/grpc/grpc-go/issues/4226), [#4217](https://togithub.com/grpc/grpc-go/issues/4217), [#4243](https://togithub.com/grpc/grpc-go/issues/4243))
- admin: create admin package for conveniently registering standard admin services ([#4274](https://togithub.com/grpc/grpc-go/issues/4274))
- xds: add support for HTTP filters (gRFC A39) ([#4206](https://togithub.com/grpc/grpc-go/issues/4206), [#4221](https://togithub.com/grpc/grpc-go/issues/4221))
- xds: implement fault injection HTTP filter (A33) ([#4236](https://togithub.com/grpc/grpc-go/issues/4236))
- xds: enable timeout, circuit breaking, and fault injection by default ([#4286](https://togithub.com/grpc/grpc-go/issues/4286))
- xds: implement a priority based load balancer ([#4070](https://togithub.com/grpc/grpc-go/issues/4070))
- xds/creds: support all SAN matchers on client-side ([#4246](https://togithub.com/grpc/grpc-go/issues/4246))
### Bug Fixes
- xds: add env var protection for client-side security ([#4247](https://togithub.com/grpc/grpc-go/issues/4247))
- circuit breaking: update picker inline when there's a counter update ([#4212](https://togithub.com/grpc/grpc-go/issues/4212))
- server: fail RPCs without POST HTTP method ([#4241](https://togithub.com/grpc/grpc-go/issues/4241))
### [`v1.36.1`](https://togithub.com/grpc/grpc-go/releases/v1.36.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.36.0...v1.36.1)
- xds: add env var protection for client-side security ([#4247](https://togithub.com/grpc/grpc-go/issues/4247))
### [`v1.36.0`](https://togithub.com/grpc/grpc-go/releases/v1.36.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.35.1...v1.36.0)
### New Features
- xds bootstrap: support config content in env variable ([#4153](https://togithub.com/grpc/grpc-go/issues/4153))
### Bug Fixes
- encoding/proto: do not panic when types do not match ([#4218](https://togithub.com/grpc/grpc-go/issues/4218))
### Documentation
- status: document nil error handling of FromError ([#4196](https://togithub.com/grpc/grpc-go/issues/4196))
- Special Thanks: [@gauravgahlot](https://togithub.com/gauravgahlot)
### [`v1.35.1`](https://togithub.com/grpc/grpc-go/releases/v1.35.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.35.0...v1.35.1)
- encoding/proto: do not panic when types do not match ([#4218](https://togithub.com/grpc/grpc-go/issues/4218))
- xds: add env var protection for client-side security ([#4247](https://togithub.com/grpc/grpc-go/issues/4247))
### [`v1.35.0`](https://togithub.com/grpc/grpc-go/releases/v1.35.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.34.2...v1.35.0)
### Behavior Changes
- roundrobin: strip attributes from addresses ([#4024](https://togithub.com/grpc/grpc-go/issues/4024))
- balancer: set RPC metadata in address attributes, instead of Metadata field ([#4041](https://togithub.com/grpc/grpc-go/issues/4041))
### New Features
- support unix-abstract schema ([#4079](https://togithub.com/grpc/grpc-go/issues/4079))
- Special Thanks: [@resec](https://togithub.com/resec)
- xds: implement experimental RouteAction timeout support ([#4116](https://togithub.com/grpc/grpc-go/issues/4116))
- xds: Implement experimental circuit breaking support. ([#4050](https://togithub.com/grpc/grpc-go/issues/4050))
### Bug Fixes
- xds: `server_features` should be a child of `xds_servers` and not a sibling ([#4087](https://togithub.com/grpc/grpc-go/issues/4087))
- xds: NACK more invalid RDS responses ([#4120](https://togithub.com/grpc/grpc-go/issues/4120))
### [`v1.34.2`](https://togithub.com/grpc/grpc-go/releases/v1.34.2)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.34.1...v1.34.2)
- encoding/proto: do not panic when types do not match ([#4218](https://togithub.com/grpc/grpc-go/issues/4218))
- xds: add env var protection for client-side security ([#4247](https://togithub.com/grpc/grpc-go/issues/4247))
### [`v1.34.1`](https://togithub.com/grpc/grpc-go/releases/v1.34.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.34.0...v1.34.1)
- xds client: Updated v3 type for http connection manager ([#4137](https://togithub.com/grpc/grpc-go/issues/4137))
- lrs: use JSON for locality's String representation ([#4135](https://togithub.com/grpc/grpc-go/issues/4135))
- eds/lrs: handle nil when LRS is disabled ([#4086](https://togithub.com/grpc/grpc-go/issues/4086))
- client: fix "unix" scheme handling for some corner cases ([#4021](https://togithub.com/grpc/grpc-go/issues/4021))
### [`v1.34.0`](https://togithub.com/grpc/grpc-go/releases/v1.34.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.33.3...v1.34.0)
### New Features
- client: implement support for "unix" resolver scheme ([#3890](https://togithub.com/grpc/grpc-go/issues/3890))
- rds: allow case_insensitive path matching ([#3997](https://togithub.com/grpc/grpc-go/issues/3997))
- credentials/insecure: implement insecure credentials. ([#3964](https://togithub.com/grpc/grpc-go/issues/3964))
- lrs: handle multiple clusters in LRS stream ([#3935](https://togithub.com/grpc/grpc-go/issues/3935))
### Performance Improvements
- encoding/proto: simplify & optimize proto codec ([#3958](https://togithub.com/grpc/grpc-go/issues/3958))
### Bug Fixes
- internal/transport: fix a bug causing -bin metadata to be incorrectly encoded ([#3985](https://togithub.com/grpc/grpc-go/issues/3985))
- Special Thanks: [@dntj](https://togithub.com/dntj)
- grpclb: consider IDLE SubConns as connecting ([#4031](https://togithub.com/grpc/grpc-go/issues/4031))
- grpclb: send custom user-agent ([#4011](https://togithub.com/grpc/grpc-go/issues/4011))
- client: use "localhost:port" as authority if target is ":port" ([#4017](https://togithub.com/grpc/grpc-go/issues/4017))
- credentials: fix PerRPCCredentials w/RequireTransportSecurity and security levels ([#3995](https://togithub.com/grpc/grpc-go/issues/3995))
### Documentation
- Documentation: fix outgoing metadata example code ([#3979](https://togithub.com/grpc/grpc-go/issues/3979))
- Special Thanks: [@aaronjheng](https://togithub.com/aaronjheng)
- Remove experimental comment from client interceptors ([#3948](https://togithub.com/grpc/grpc-go/issues/3948))
- Special Thanks: [@hypnoglow](https://togithub.com/hypnoglow)
- Documentation: update keepalive.md to add why ([#3993](https://togithub.com/grpc/grpc-go/issues/3993))
### [`v1.33.3`](https://togithub.com/grpc/grpc-go/releases/v1.33.3)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.33.2...v1.33.3)
- xds client: Updated v3 type for http connection manager ([#4137](https://togithub.com/grpc/grpc-go/issues/4137))
- lrs: use JSON for locality's String representation ([#4135](https://togithub.com/grpc/grpc-go/issues/4135))
- eds/lrs: handle nil when LRS is disabled ([#4086](https://togithub.com/grpc/grpc-go/issues/4086))
### [`v1.33.2`](https://togithub.com/grpc/grpc-go/releases/v1.33.2)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.33.1...v1.33.2)
- protobuf: update all generated code to google.golang.org/protobuf ([#3932](https://togithub.com/grpc/grpc-go/issues/3932))
- xdsclient: populate error details for NACK ([#3975](https://togithub.com/grpc/grpc-go/issues/3975))
- internal/credentials: fix a bug and add one more helper function SPIFFEIDFromCert ([#3929](https://togithub.com/grpc/grpc-go/issues/3929))
### [`v1.33.1`](https://togithub.com/grpc/grpc-go/releases/v1.33.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.32.0...v1.33.1)
### API Changes
- connectivity: remove unused, experimental Reporter interface ([#3875](https://togithub.com/grpc/grpc-go/issues/3875))
### New Features
- xds bootstrap: support insecure and make Creds required ([#3881](https://togithub.com/grpc/grpc-go/issues/3881))
- xds: add bootstrap support for certificate providers. ([#3901](https://togithub.com/grpc/grpc-go/issues/3901))
- lrs: add a layer for clusters in load store ([#3880](https://togithub.com/grpc/grpc-go/issues/3880))
- credentials/xds: implementation of client-side xDS credentials. ([#3888](https://togithub.com/grpc/grpc-go/issues/3888))
### Bug Fixes
- http2\_client: fix reader segfault on PROTOCOL_ERRORs ([#3926](https://togithub.com/grpc/grpc-go/issues/3926))
- Special Thanks: [@sorah](https://togithub.com/sorah)
- internal/transport: handle h2 errcode on header decoding ([#3872](https://togithub.com/grpc/grpc-go/issues/3872))
- Special Thanks: [@tz70s](https://togithub.com/tz70s)
- xds: exit from run() goroutine when resolver is closed. ([#3882](https://togithub.com/grpc/grpc-go/issues/3882))
- credentials/alts: ClientAuthorizationCheck to case-fold compare of peer SA ([#3792](https://togithub.com/grpc/grpc-go/issues/3792))
- Special Thanks: [@AntonNep](https://togithub.com/AntonNep)
- service reflection: include transitive closure for a file ([#3851](https://togithub.com/grpc/grpc-go/issues/3851))
- stats: include message header in stats.InPayload.WireLength ([#3886](https://togithub.com/grpc/grpc-go/issues/3886))
- Special Thanks: [@xstephen95x](https://togithub.com/xstephen95x)
- binarylog: export Sink ([#3879](https://togithub.com/grpc/grpc-go/issues/3879))
- service reflection: include transitive closure for a file ([#3851](https://togithub.com/grpc/grpc-go/issues/3851))
### [`v1.32.0`](https://togithub.com/grpc/grpc-go/releases/v1.32.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.31.1...v1.32.0)
### Dependencies
- Remove Go 1.9 support; assume go1.12 build tag ([#3767](https://togithub.com/grpc/grpc-go/issues/3767))
### New Features
- grpc: add ServiceRegistrar interface; bump up support package version. ([#3816](https://togithub.com/grpc/grpc-go/issues/3816); [#3818](https://togithub.com/grpc/grpc-go/issues/3818))
- xds: add LRS balancing policy ([#3799](https://togithub.com/grpc/grpc-go/issues/3799))
### Bug Fixes
- server: prevent hang in Go HTTP transport in some error cases ([#3833](https://togithub.com/grpc/grpc-go/issues/3833))
- server: respond correctly to client headers with END_STREAM flag set ([#3803](https://togithub.com/grpc/grpc-go/issues/3803))
- eds: fix priority timeout failure when EDS removes all priorities ([#3830](https://togithub.com/grpc/grpc-go/issues/3830))
### [`v1.31.1`](https://togithub.com/grpc/grpc-go/releases/v1.31.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.31.0...v1.31.1)
- eds: fix priority timeout failure when EDS removes all priorities ([#3839](https://togithub.com/grpc/grpc-go/issues/3839))
### [`v1.31.0`](https://togithub.com/grpc/grpc-go/releases/v1.31.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.30.1...v1.31.0)
### API Changes
- balancer: remove deprecated type aliases ([#3742](https://togithub.com/grpc/grpc-go/issues/3742))
### New Features
- The following new xDS functionalities are added in this release (xDS features supported in a given release are documented [here](https://togithub.com/grpc/grpc/blob/master/doc/grpc_xds_features.md)):
- Requests matching based on [path](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route_components.proto#route-routematch) (prefix, full path and safe regex) and [headers](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route_components.proto#route-headermatcher)
- Requests routing to multiple clusters based on [weights](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route_components.proto#route-weightedcluster)
- service config: add default method config support ([#3684](https://togithub.com/grpc/grpc-go/issues/3684))
- Special Thanks: [@amenzhinsky](https://togithub.com/amenzhinsky)
- credentials/sts: PerRPCCreds Implementation ([#3696](https://togithub.com/grpc/grpc-go/issues/3696))
- credentials: check and expose SPIFFE ID ([#3626](https://togithub.com/grpc/grpc-go/issues/3626))
- protoc-gen-go-grpc: support for proto3 field presence ([#3752](https://togithub.com/grpc/grpc-go/issues/3752))
### Bug Fixes
- client: set auth header to localhost for unix target ([#3730](https://togithub.com/grpc/grpc-go/issues/3730))
### Documentation
- doc: mark CustomCodec as deprecated ([#3698](https://togithub.com/grpc/grpc-go/issues/3698))
- examples: cleanup README.md ([#3738](https://togithub.com/grpc/grpc-go/issues/3738))
- doc: fix references to status methods ([#3702](https://togithub.com/grpc/grpc-go/issues/3702))
- Special Thanks: [@evanlimanto](https://togithub.com/evanlimanto)
### [`v1.30.1`](https://togithub.com/grpc/grpc-go/releases/v1.30.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.30.0...v1.30.1)
- eds: fix priority timeout failure when EDS removes all priorities ([#3840](https://togithub.com/grpc/grpc-go/issues/3840))
### [`v1.30.0`](https://togithub.com/grpc/grpc-go/releases/v1.30.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.29.1...v1.30.0)
### API Changes
- 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](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api) 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](https://togithub.com/grpc/grpc/blob/master/doc/grpc_xds_features.md).
- balancer: move Balancer and Picker to V2; delete legacy API ([#3180](https://togithub.com/grpc/grpc-go/issues/3180), [#3431](https://togithub.com/grpc/grpc-go/issues/3431))
- Replace `balancer.Balancer` and `balancer.Picker` with the `V2Balancer` and `V2Picker` versions.
- Remove `balancer.ClientConn.UpdateBalancerState`.
- Remove the original balancer plugin API, based on `grpc.Balancer`, and all related functionality.
- Remove the deprecated `naming` package.
### Behavior Changes
- grpclb, dns: pass balancer addresses via resolver.State ([#3614](https://togithub.com/grpc/grpc-go/issues/3614))
### New Features
- balancer: support hierarchical paths in addresses ([#3494](https://togithub.com/grpc/grpc-go/issues/3494))
- client: option to surface connection errors to callers ([#3430](https://togithub.com/grpc/grpc-go/issues/3430))
- Special Thanks: [@sethp-nr](https://togithub.com/sethp-nr)
- credentials: pass address attributes from balancer to creds handshaker. ([#3548](https://togithub.com/grpc/grpc-go/issues/3548))
- credentials: local creds implementation ([#3517](https://togithub.com/grpc/grpc-go/issues/3517))
- advancedtls: add fine-grained verification levels in XXXOptions ([#3454](https://togithub.com/grpc/grpc-go/issues/3454))
- xds: handle weighted cluster as route action ([#3613](https://togithub.com/grpc/grpc-go/issues/3613))
- xds: add weighted_target balancer ([#3541](https://togithub.com/grpc/grpc-go/issues/3541))
### Performance Improvements
- transport: move append of header and data down to http2 write loop to save garbage ([#3568](https://togithub.com/grpc/grpc-go/issues/3568))
- Special Thanks: [@bboreham](https://togithub.com/bboreham)
- server.go: use worker goroutines for fewer stack allocations ([#3204](https://togithub.com/grpc/grpc-go/issues/3204))
- Special Thanks: [@adtac](https://togithub.com/adtac)
### Bug Fixes
- stream: fix calloption.After() race in finish ([#3672](https://togithub.com/grpc/grpc-go/issues/3672))
- retry: prevent per-RPC creds error from being transparently retried ([#3677](https://togithub.com/grpc/grpc-go/issues/3677), [#3691](https://togithub.com/grpc/grpc-go/issues/3691))
- cache: callback without cache's mutex ([#3603](https://togithub.com/grpc/grpc-go/issues/3603))
- client: properly check GRPC_GO_IGNORE_TXT_ERRORS environment variable ([#3532](https://togithub.com/grpc/grpc-go/issues/3532))
- Special Thanks: [@t33m](https://togithub.com/t33m)
- balancergroup: fix connectivity state ([#3585](https://togithub.com/grpc/grpc-go/issues/3585))
- xds: use google default creds ([#3673](https://togithub.com/grpc/grpc-go/issues/3673))
- xds: accept either "" or "/" as the prefix for the default route ([#3535](https://togithub.com/grpc/grpc-go/issues/3535))
- xds: reject RDS response containing match with case-sensitive false ([#3592](https://togithub.com/grpc/grpc-go/issues/3592))
### Documentation
- examples: add go.mod to make examples a separate module ([#3546](https://togithub.com/grpc/grpc-go/issues/3546))
- doc: update README for supported Go versions and travis for tests ([#3516](https://togithub.com/grpc/grpc-go/issues/3516))
### [`v1.29.1`](https://togithub.com/grpc/grpc-go/releases/v1.29.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.29.0...v1.29.1)
- status: remove Error method accidentally added to \*Status ([#3561](https://togithub.com/grpc/grpc-go/issues/3561))
### [`v1.29.0`](https://togithub.com/grpc/grpc-go/releases/v1.29.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.28.1...v1.29.0)
### New Features
- client: add a WithNoProxy dialoption ([#3411](https://togithub.com/grpc/grpc-go/issues/3411))
- Special Thanks: [@pdbogen](https://togithub.com/pdbogen)
### Bug Fixes
- xds: update nonce even if the ACK/NACK is not sent on wire ([#3497](https://togithub.com/grpc/grpc-go/issues/3497))
- xds: add temporary logging to LRS ([#3490](https://togithub.com/grpc/grpc-go/issues/3490))
- wrr: make random wrr thread safe ([#3470](https://togithub.com/grpc/grpc-go/issues/3470))
- transport: fix handling of header metadata in serverHandler ([#3484](https://togithub.com/grpc/grpc-go/issues/3484))
- Special Thanks: [@misberner](https://togithub.com/misberner)
- balancer: change roundrobin to accept empty address list ([#3491](https://togithub.com/grpc/grpc-go/issues/3491))
- stats: set response compression codec on stats.InHeader and stats.OutHeader ([#3390](https://togithub.com/grpc/grpc-go/issues/3390))
- Special Thanks: [@MatthewDolan](https://togithub.com/MatthewDolan)
### Documentation
- credentials: Update doc strings for NewClientTLSFromCert et. al. ([#3508](https://togithub.com/grpc/grpc-go/issues/3508))
- examples: add example to show how to use the health service ([#3381](https://togithub.com/grpc/grpc-go/issues/3381))
- Special Thanks: [@mjpitz](https://togithub.com/mjpitz)
### [`v1.28.1`](https://togithub.com/grpc/grpc-go/releases/v1.28.1)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.28.0...v1.28.1)
- xds: update nonce even if the ACK/NACK is not sent on wire ([#3497](https://togithub.com/grpc/grpc-go/issues/3497))
- balancer: change roundrobin to accept empty address list ([#3491](https://togithub.com/grpc/grpc-go/issues/3491))
- xds: add logging to LRS ([#3490](https://togithub.com/grpc/grpc-go/issues/3490))
### [`v1.28.0`](https://togithub.com/grpc/grpc-go/releases/v1.28.0)
[Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.27.1...v1.28.0)
### New Features
- This release adds an experimental client side implementation of [xDSv2](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api) 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](https://togithub.com/grpc/grpc-go/issues/3351))
- interceptor: new APIs for chaining server interceptors. ([#3336](https://togithub.com/grpc/grpc-go/issues/3336))
- Special Thanks: [@tukeJonny](https://togithub.com/tukeJonny)
- stats: add client side user agent to outgoing header ([#3331](https://togithub.com/grpc/grpc-go/issues/3331))
- Special Thanks: [@piotrkowalczuk](https://togithub.com/piotrkowalczuk)
### API Changes
- credentials: deprecate ProtocolInfo.SecurityVersion ([#3372](https://togithub.com/grpc/grpc-go/issues/3372))
### Bug Fixes
- interop: Build grpclb_fallback/client.go only for linux. ([#3375](https://togithub.com/grpc/grpc-go/issues/3375))
- internal: Update service_config.pb.go ([#3365](https://togithub.com/grpc/grpc-go/issues/3365))
- internal: Move parseTarget function into internal package and export it. ([#3368](https://togithub.com/grpc/grpc-go/issues/3368))
- balancer/base: keep bad SubConns in TransientFailure until Ready ([#3366](https://togithub.com/grpc/grpc-go/issues/3366))
- balancer/base: consider an empty address list an error ([#3361](https://togithub.com/grpc/grpc-go/issues/3361))
### Dependencies
- protobuf: update protoc-gen-go version and generated code ([#3345](https://togithub.com/grpc/grpc-go/issues/3345))
Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, click this checkbox.
This PR contains the following updates:
v1.27.1
->v1.43.0
Release Notes
grpc/grpc-go
### [`v1.43.0`](https://togithub.com/grpc/grpc-go/releases/v1.43.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.42.0...v1.43.0) ### API Changes - grpc: stabilize `WithConnectParams` `DialOption` ([#4915](https://togithub.com/grpc/grpc-go/issues/4915)) - Special Thanks: [@hypnoglow](https://togithub.com/hypnoglow) ### Behavior Changes - status: support wrapped errors in `FromContextError` ([#4977](https://togithub.com/grpc/grpc-go/issues/4977)) - Special Thanks: [@bestbeforetoday](https://togithub.com/bestbeforetoday) - config: remove the environment variable to disable retry support ([#4922](https://togithub.com/grpc/grpc-go/issues/4922)) ### New Features - balancer: new field `Authority` in `BuildOptions` for server name to use in the authentication handshake with a remote load balancer ([#4969](https://togithub.com/grpc/grpc-go/issues/4969)) ### Bug Fixes - xds/resolver: fix possible `ClientConn` leak upon resolver initialization failure ([#4900](https://togithub.com/grpc/grpc-go/issues/4900)) - client: fix `nil` panic in rare race conditions with the pick first LB policy ([#4971](https://togithub.com/grpc/grpc-go/issues/4971)) - xds: improve RPC error messages when xDS connection errors occur ([#5032](https://togithub.com/grpc/grpc-go/issues/5032), [#5054](https://togithub.com/grpc/grpc-go/issues/5054)) - transport: do not create stream object in the face of illegal stream IDs ([#4873](https://togithub.com/grpc/grpc-go/issues/4873)) - Special Thanks: [@uds5501](https://togithub.com/uds5501) ### Documentation - client: clarify errors to indicate whether compressed or uncompressed messages exceeded size limits ([#4918](https://togithub.com/grpc/grpc-go/issues/4918)) - Special Thanks: [@uds5501](https://togithub.com/uds5501) ### [`v1.42.0`](https://togithub.com/grpc/grpc-go/releases/v1.42.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.41.1...v1.42.0) ### Behavior Changes - grpc: Dial("unix://relative-path") no longer works ([#4817](https://togithub.com/grpc/grpc-go/issues/4817)) - use "unix://absolute-path" or "unix:relative-path" instead in accordance with [our documentation](https://togithub.com/grpc/grpc/blob/master/doc/naming.md#name-syntax) - xds/csds: use new field `GenericXdsConfig` instead of `PerXdsConfig` ([#4898](https://togithub.com/grpc/grpc-go/issues/4898)) ### New Features - grpc: support `grpc.WithAuthority` when secure credentials are used ([#4817](https://togithub.com/grpc/grpc-go/issues/4817)) - creds/google: add NewDefaultCredentialsWithOptions() to support custom per-RPC creds ([#4767](https://togithub.com/grpc/grpc-go/issues/4767), [#4830](https://togithub.com/grpc/grpc-go/issues/4830)) - authz: create file watcher interceptor for gRPC SDK API ([#4760](https://togithub.com/grpc/grpc-go/issues/4760)) - attributes: add `Equal` method ([#4855](https://togithub.com/grpc/grpc-go/issues/4855)) - resolver: add `AddressMap` and `State.BalancerAttributes` ([#4855](https://togithub.com/grpc/grpc-go/issues/4855)) - resolver: Add `URL` field to `Target` to store parsed dial target ([#4817](https://togithub.com/grpc/grpc-go/issues/4817)) - grpclb: add a `target_name` field to lb config to specify target when used as a child policy ([#4847](https://togithub.com/grpc/grpc-go/issues/4847)) - grpclog: support formatting log output as JSON ([#4854](https://togithub.com/grpc/grpc-go/issues/4854)) ### Bug Fixes - server: add missing conn.Close if the connection dies before reading the HTTP/2 preface ([#4837](https://togithub.com/grpc/grpc-go/issues/4837)) - grpclb: recover if addresses are received after an empty server list was received previously ([#4879](https://togithub.com/grpc/grpc-go/issues/4879)) - authz: support empty principals and fix rbac authenticated matcher ([#4883](https://togithub.com/grpc/grpc-go/issues/4883)) - xds/rds: NACK the RDS response if it contains unknown cluster specifier ([#4788](https://togithub.com/grpc/grpc-go/issues/4788)) - xds/priority: do not switch to low priority when high priority is in Idle (e.g. ringhash) ([#4889](https://togithub.com/grpc/grpc-go/issues/4889)) ### Documentation - grpc: stabilize WithDefaultServiceConfig and improve godoc ([#4888](https://togithub.com/grpc/grpc-go/issues/4888)) - status: clarify FromError docstring ([#4880](https://togithub.com/grpc/grpc-go/issues/4880)) - examples: add example illustrating the use of unix abstract sockets ([#4848](https://togithub.com/grpc/grpc-go/issues/4848)) - examples: update load balancing example to use loadBalancingConfig ([#4887](https://togithub.com/grpc/grpc-go/issues/4887)) - doc: promote WithDisableRetry to stable; clarify retry is enabled by default ([#4901](https://togithub.com/grpc/grpc-go/issues/4901)) ### API Changes - credentials: Mark `TransportCredentials.OverrideServerName` method as deprecated ([#4817](https://togithub.com/grpc/grpc-go/issues/4817)) ### [`v1.41.1`](https://togithub.com/grpc/grpc-go/releases/v1.41.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.41.0...v1.41.1) - creds/google: add NewDefaultCredentialsWithOptions() to support custom per-RPC creds ([#4767](https://togithub.com/grpc/grpc-go/issues/4767), [#4830](https://togithub.com/grpc/grpc-go/issues/4830)) - pickfirst: check b.sc before calling Connect ([#4971](https://togithub.com/grpc/grpc-go/issues/4971)) ### [`v1.41.0`](https://togithub.com/grpc/grpc-go/releases/v1.41.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.40.1...v1.41.0) ### API Changes - xds: Promote xds server and creds APIs to stable ([#4753](https://togithub.com/grpc/grpc-go/issues/4753)) - balancer: add `ExitIdle` interface to instruct the balancer to attempt to leave the IDLE state by connecting SubConns if appropriate. ([#4673](https://togithub.com/grpc/grpc-go/issues/4673)) - **NOTICE:** This method will be *required by the `Balancer` interface* in the future ### Behavior Changes - xds: update xdsclient to keep valid resources from the response even if it has invalid responses and is NACK'ed (see [gRFC 260](https://togithub.com/grpc/proposal/pull/260)) ([#4743](https://togithub.com/grpc/grpc-go/issues/4743)) - balancer: SubConns no longer automatically reconnect after READY; instead they transition to IDLE on connection loss ([#4613](https://togithub.com/grpc/grpc-go/issues/4613)) ### New Features - xds: add support for RINGHASH lb-policy and affinity ([#4741](https://togithub.com/grpc/grpc-go/issues/4741)) - xds: add support for retry policy in VirtualHosts and Routes ([#4738](https://togithub.com/grpc/grpc-go/issues/4738)) - stats: support stats for all retry attempts; support transparent retry ([#4749](https://togithub.com/grpc/grpc-go/issues/4749)) - authz: create interceptors for gRPC security policy API ([#4664](https://togithub.com/grpc/grpc-go/issues/4664)) ### Bug Fixes - transport: fix race in transport stream accessing s.recvCompress ([#4641](https://togithub.com/grpc/grpc-go/issues/4641)) - client: fix transparent retries when per-RPC credentials are in use ([#4785](https://togithub.com/grpc/grpc-go/issues/4785)) - server: fix bug that net.Conn is leaked if the connection is closed (io.EOF) immediately with no traffic ([#4633](https://togithub.com/grpc/grpc-go/issues/4633)) - oauth: Allow access to Google API regional endpoints via Google Default Credentials ([#4713](https://togithub.com/grpc/grpc-go/issues/4713)) ### [`v1.40.1`](https://togithub.com/grpc/grpc-go/releases/v1.40.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.40.0...v1.40.1) - creds/google: add NewDefaultCredentialsWithOptions() to support custom per-RPC creds ([#4767](https://togithub.com/grpc/grpc-go/issues/4767), [#4830](https://togithub.com/grpc/grpc-go/issues/4830)) ### [`v1.40.0`](https://togithub.com/grpc/grpc-go/releases/v1.40.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.39.1...v1.40.0) ### Behavior Changes - balancer: client channel no longer connects to idle subchannels that are returned by the pickers; LB policy should call SubConn.Connect instead. ([#4579](https://togithub.com/grpc/grpc-go/issues/4579)) - This change is in line with existing documentation stating the balancer must call Connect on idle SubConns in order for them to connect, and is preparation for an upcoming change that transitions SubConns to the idle state when connections are lost. See https://pkg.go.dev/google.golang.org/grpc/balancer#SubConn for more details. ### Bug Fixes - transport: fail RPCs without HTTP status 200 (OK), according to the gRPC spec ([#4474](https://togithub.com/grpc/grpc-go/issues/4474)) - Special Thanks: [@JNProtzman](https://togithub.com/JNProtzman) - binarylog: fail the `Write()` method if proto marshaling fails ([#4582](https://togithub.com/grpc/grpc-go/issues/4582)) - Special Thanks: [@Jille](https://togithub.com/Jille) - binarylog: exit the flusher goroutine upon closing the `bufferedSink` ([#4583](https://togithub.com/grpc/grpc-go/issues/4583)) - Special Thanks: [@Jille](https://togithub.com/Jille) ### New Features - metadata: add Delete method to MD to encapsulate lowercasing ([#4549](https://togithub.com/grpc/grpc-go/issues/4549)) - Special Thanks: [@konradreiche](https://togithub.com/konradreiche) - xds/cds: support logical DNS cluster and aggregated cluster ([#4594](https://togithub.com/grpc/grpc-go/issues/4594)) - stats: add stats.Begin.IsClientStream and IsServerStream to indicate the type of RPC invoked ([#4533](https://togithub.com/grpc/grpc-go/issues/4533)) - Special Thanks: [@leviska](https://togithub.com/leviska) ### Performance Improvements - server: improve performance when multiple interceptors are used ([#4524](https://togithub.com/grpc/grpc-go/issues/4524)) - Special Thanks: [@amenzhinsky](https://togithub.com/amenzhinsky) ### [`v1.39.1`](https://togithub.com/grpc/grpc-go/releases/v1.39.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.39.0...v1.39.1) - server: fix bug that net.Conn is leaked if the connection is closed (io.EOF) immediately with no traffic ([#4642](https://togithub.com/grpc/grpc-go/issues/4642)) - transport: fix race in transport stream accessing s.recvCompress ([#4627](https://togithub.com/grpc/grpc-go/issues/4627)) ### [`v1.39.0`](https://togithub.com/grpc/grpc-go/releases/v1.39.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.38.1...v1.39.0) ### Behavior Changes - csds: return empty response if xds client is not set ([#4505](https://togithub.com/grpc/grpc-go/issues/4505)) - metadata: convert keys to lowercase in FromContext() ([#4416](https://togithub.com/grpc/grpc-go/issues/4416)) ### New Features - xds: add GetServiceInfo to GRPCServer ([#4507](https://togithub.com/grpc/grpc-go/issues/4507)) - Special Thanks: [@amenzhinsky](https://togithub.com/amenzhinsky) - xds: add test-only injection of xds config to client and server ([#4476](https://togithub.com/grpc/grpc-go/issues/4476)) - server: allow PreparedMsgs to work for server streams ([#3480](https://togithub.com/grpc/grpc-go/issues/3480)) - Special Thanks: [@eafzali](https://togithub.com/eafzali) ### Performance Improvements - transport: remove decodeState from client & server to reduce allocations ([#4423](https://togithub.com/grpc/grpc-go/issues/4423)) - Special Thanks: [@JNProtzman](https://togithub.com/JNProtzman) ### Bug Fixes - server: return UNIMPLEMENTED on receipt of malformed method name ([#4464](https://togithub.com/grpc/grpc-go/issues/4464)) - xds/rds: use 100 as default weighted cluster totalWeight instead of 0 ([#4439](https://togithub.com/grpc/grpc-go/issues/4439)) - Special Thanks: [@alpha-baby](https://togithub.com/alpha-baby) - transport: unblock read throttling when controlbuf exits ([#4447](https://togithub.com/grpc/grpc-go/issues/4447)) - client: fix status code to return Unavailable for servers shutting down instead of Unknown ([#4561](https://togithub.com/grpc/grpc-go/issues/4561)) ### Documentation - doc: fix broken benchmark dashboard link in README.md ([#4503](https://togithub.com/grpc/grpc-go/issues/4503)) - Special Thanks: [@laststem](https://togithub.com/laststem) - example: improve hello world server with starting msg ([#4468](https://togithub.com/grpc/grpc-go/issues/4468)) - Special Thanks: [@dkkb](https://togithub.com/dkkb) - client: Clarify that WaitForReady will block for CONNECTING channels ([#4477](https://togithub.com/grpc/grpc-go/issues/4477)) - Special Thanks: [@evanj](https://togithub.com/evanj) ### [`v1.38.1`](https://togithub.com/grpc/grpc-go/releases/v1.38.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.38.0...v1.38.1) internal/transport: do not mask ConnectionError ([#4561](https://togithub.com/grpc/grpc-go/issues/4561)) ### [`v1.38.0`](https://togithub.com/grpc/grpc-go/releases/v1.38.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.37.1...v1.38.0) ### API Changes - reflection: accept interface instead of grpc.Server struct in Register() ([#4340](https://togithub.com/grpc/grpc-go/issues/4340)) - resolver: add error return value from ClientConn.UpdateState ([#4270](https://togithub.com/grpc/grpc-go/issues/4270)) ### Behavior Changes - client: do not poll name resolver when errors or bad updates are reported ([#4270](https://togithub.com/grpc/grpc-go/issues/4270)) - transport: InTapHandle may return RPC status errors; no longer RST_STREAMs ([#4365](https://togithub.com/grpc/grpc-go/issues/4365)) ### New Features - client: propagate connection error causes to RPC status ([#4311](https://togithub.com/grpc/grpc-go/issues/4311), [#4316](https://togithub.com/grpc/grpc-go/issues/4316)) - xds: support inline RDS resource from LDS response ([#4299](https://togithub.com/grpc/grpc-go/issues/4299)) - xds: server side support is now experimentally available - server: add ForceServerCodec() to set a custom encoding.Codec on the server ([#4205](https://togithub.com/grpc/grpc-go/issues/4205)) - Special Thanks: [@ash2k](https://togithub.com/ash2k) ### Performance Improvements - metadata: reduce memory footprint in FromOutgoingContext ([#4360](https://togithub.com/grpc/grpc-go/issues/4360)) - Special Thanks: [@irfansharif](https://togithub.com/irfansharif) ### Bug Fixes - xds/balancergroup: fix rare memory leak after closing ClientConn ([#4308](https://togithub.com/grpc/grpc-go/issues/4308)) ### Documentation - examples: update xds examples for PSM security ([#4256](https://togithub.com/grpc/grpc-go/issues/4256)) - grpc: improve docs on StreamDesc ([#4397](https://togithub.com/grpc/grpc-go/issues/4397)) ### [`v1.37.1`](https://togithub.com/grpc/grpc-go/releases/v1.37.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.37.0...v1.37.1) - client: fix rare panic when shutting down client while receiving the first name resolver update ([#4398](https://togithub.com/grpc/grpc-go/issues/4398)) - client: fix leaked addrConn struct when addresses are updated ([#4347](https://togithub.com/grpc/grpc-go/issues/4347)) - xds/resolver: prevent panic when two LDS updates are receives without RDS in between ([#4327](https://togithub.com/grpc/grpc-go/issues/4327)) ### [`v1.37.0`](https://togithub.com/grpc/grpc-go/releases/v1.37.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.36.1...v1.37.0) ### API Changes - balancer: Add UpdateAddresses() to balancer.ClientConn interface ([#4215](https://togithub.com/grpc/grpc-go/issues/4215)) - **NOTICE**: balancer.SubConn.UpdateAddresses() is now deprecated and will be **REMOVED** in gRPC-Go 1.39 ### Behavior Changes - balancer/base: keep address attributes for pickers ([#4253](https://togithub.com/grpc/grpc-go/issues/4253)) - Special Thanks: [@longXboy](https://togithub.com/longXboy) ### New Features - xds: add support for csds ([#4226](https://togithub.com/grpc/grpc-go/issues/4226), [#4217](https://togithub.com/grpc/grpc-go/issues/4217), [#4243](https://togithub.com/grpc/grpc-go/issues/4243)) - admin: create admin package for conveniently registering standard admin services ([#4274](https://togithub.com/grpc/grpc-go/issues/4274)) - xds: add support for HTTP filters (gRFC A39) ([#4206](https://togithub.com/grpc/grpc-go/issues/4206), [#4221](https://togithub.com/grpc/grpc-go/issues/4221)) - xds: implement fault injection HTTP filter (A33) ([#4236](https://togithub.com/grpc/grpc-go/issues/4236)) - xds: enable timeout, circuit breaking, and fault injection by default ([#4286](https://togithub.com/grpc/grpc-go/issues/4286)) - xds: implement a priority based load balancer ([#4070](https://togithub.com/grpc/grpc-go/issues/4070)) - xds/creds: support all SAN matchers on client-side ([#4246](https://togithub.com/grpc/grpc-go/issues/4246)) ### Bug Fixes - xds: add env var protection for client-side security ([#4247](https://togithub.com/grpc/grpc-go/issues/4247)) - circuit breaking: update picker inline when there's a counter update ([#4212](https://togithub.com/grpc/grpc-go/issues/4212)) - server: fail RPCs without POST HTTP method ([#4241](https://togithub.com/grpc/grpc-go/issues/4241)) ### [`v1.36.1`](https://togithub.com/grpc/grpc-go/releases/v1.36.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.36.0...v1.36.1) - xds: add env var protection for client-side security ([#4247](https://togithub.com/grpc/grpc-go/issues/4247)) ### [`v1.36.0`](https://togithub.com/grpc/grpc-go/releases/v1.36.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.35.1...v1.36.0) ### New Features - xds bootstrap: support config content in env variable ([#4153](https://togithub.com/grpc/grpc-go/issues/4153)) ### Bug Fixes - encoding/proto: do not panic when types do not match ([#4218](https://togithub.com/grpc/grpc-go/issues/4218)) ### Documentation - status: document nil error handling of FromError ([#4196](https://togithub.com/grpc/grpc-go/issues/4196)) - Special Thanks: [@gauravgahlot](https://togithub.com/gauravgahlot) ### [`v1.35.1`](https://togithub.com/grpc/grpc-go/releases/v1.35.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.35.0...v1.35.1) - encoding/proto: do not panic when types do not match ([#4218](https://togithub.com/grpc/grpc-go/issues/4218)) - xds: add env var protection for client-side security ([#4247](https://togithub.com/grpc/grpc-go/issues/4247)) ### [`v1.35.0`](https://togithub.com/grpc/grpc-go/releases/v1.35.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.34.2...v1.35.0) ### Behavior Changes - roundrobin: strip attributes from addresses ([#4024](https://togithub.com/grpc/grpc-go/issues/4024)) - balancer: set RPC metadata in address attributes, instead of Metadata field ([#4041](https://togithub.com/grpc/grpc-go/issues/4041)) ### New Features - support unix-abstract schema ([#4079](https://togithub.com/grpc/grpc-go/issues/4079)) - Special Thanks: [@resec](https://togithub.com/resec) - xds: implement experimental RouteAction timeout support ([#4116](https://togithub.com/grpc/grpc-go/issues/4116)) - xds: Implement experimental circuit breaking support. ([#4050](https://togithub.com/grpc/grpc-go/issues/4050)) ### Bug Fixes - xds: `server_features` should be a child of `xds_servers` and not a sibling ([#4087](https://togithub.com/grpc/grpc-go/issues/4087)) - xds: NACK more invalid RDS responses ([#4120](https://togithub.com/grpc/grpc-go/issues/4120)) ### [`v1.34.2`](https://togithub.com/grpc/grpc-go/releases/v1.34.2) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.34.1...v1.34.2) - encoding/proto: do not panic when types do not match ([#4218](https://togithub.com/grpc/grpc-go/issues/4218)) - xds: add env var protection for client-side security ([#4247](https://togithub.com/grpc/grpc-go/issues/4247)) ### [`v1.34.1`](https://togithub.com/grpc/grpc-go/releases/v1.34.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.34.0...v1.34.1) - xds client: Updated v3 type for http connection manager ([#4137](https://togithub.com/grpc/grpc-go/issues/4137)) - lrs: use JSON for locality's String representation ([#4135](https://togithub.com/grpc/grpc-go/issues/4135)) - eds/lrs: handle nil when LRS is disabled ([#4086](https://togithub.com/grpc/grpc-go/issues/4086)) - client: fix "unix" scheme handling for some corner cases ([#4021](https://togithub.com/grpc/grpc-go/issues/4021)) ### [`v1.34.0`](https://togithub.com/grpc/grpc-go/releases/v1.34.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.33.3...v1.34.0) ### New Features - client: implement support for "unix" resolver scheme ([#3890](https://togithub.com/grpc/grpc-go/issues/3890)) - rds: allow case_insensitive path matching ([#3997](https://togithub.com/grpc/grpc-go/issues/3997)) - credentials/insecure: implement insecure credentials. ([#3964](https://togithub.com/grpc/grpc-go/issues/3964)) - lrs: handle multiple clusters in LRS stream ([#3935](https://togithub.com/grpc/grpc-go/issues/3935)) ### Performance Improvements - encoding/proto: simplify & optimize proto codec ([#3958](https://togithub.com/grpc/grpc-go/issues/3958)) ### Bug Fixes - internal/transport: fix a bug causing -bin metadata to be incorrectly encoded ([#3985](https://togithub.com/grpc/grpc-go/issues/3985)) - Special Thanks: [@dntj](https://togithub.com/dntj) - grpclb: consider IDLE SubConns as connecting ([#4031](https://togithub.com/grpc/grpc-go/issues/4031)) - grpclb: send custom user-agent ([#4011](https://togithub.com/grpc/grpc-go/issues/4011)) - client: use "localhost:port" as authority if target is ":port" ([#4017](https://togithub.com/grpc/grpc-go/issues/4017)) - credentials: fix PerRPCCredentials w/RequireTransportSecurity and security levels ([#3995](https://togithub.com/grpc/grpc-go/issues/3995)) ### Documentation - Documentation: fix outgoing metadata example code ([#3979](https://togithub.com/grpc/grpc-go/issues/3979)) - Special Thanks: [@aaronjheng](https://togithub.com/aaronjheng) - Remove experimental comment from client interceptors ([#3948](https://togithub.com/grpc/grpc-go/issues/3948)) - Special Thanks: [@hypnoglow](https://togithub.com/hypnoglow) - Documentation: update keepalive.md to add why ([#3993](https://togithub.com/grpc/grpc-go/issues/3993)) ### [`v1.33.3`](https://togithub.com/grpc/grpc-go/releases/v1.33.3) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.33.2...v1.33.3) - xds client: Updated v3 type for http connection manager ([#4137](https://togithub.com/grpc/grpc-go/issues/4137)) - lrs: use JSON for locality's String representation ([#4135](https://togithub.com/grpc/grpc-go/issues/4135)) - eds/lrs: handle nil when LRS is disabled ([#4086](https://togithub.com/grpc/grpc-go/issues/4086)) ### [`v1.33.2`](https://togithub.com/grpc/grpc-go/releases/v1.33.2) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.33.1...v1.33.2) - protobuf: update all generated code to google.golang.org/protobuf ([#3932](https://togithub.com/grpc/grpc-go/issues/3932)) - xdsclient: populate error details for NACK ([#3975](https://togithub.com/grpc/grpc-go/issues/3975)) - internal/credentials: fix a bug and add one more helper function SPIFFEIDFromCert ([#3929](https://togithub.com/grpc/grpc-go/issues/3929)) ### [`v1.33.1`](https://togithub.com/grpc/grpc-go/releases/v1.33.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.32.0...v1.33.1) ### API Changes - connectivity: remove unused, experimental Reporter interface ([#3875](https://togithub.com/grpc/grpc-go/issues/3875)) ### New Features - xds bootstrap: support insecure and make Creds required ([#3881](https://togithub.com/grpc/grpc-go/issues/3881)) - xds: add bootstrap support for certificate providers. ([#3901](https://togithub.com/grpc/grpc-go/issues/3901)) - lrs: add a layer for clusters in load store ([#3880](https://togithub.com/grpc/grpc-go/issues/3880)) - credentials/xds: implementation of client-side xDS credentials. ([#3888](https://togithub.com/grpc/grpc-go/issues/3888)) ### Bug Fixes - http2\_client: fix reader segfault on PROTOCOL_ERRORs ([#3926](https://togithub.com/grpc/grpc-go/issues/3926)) - Special Thanks: [@sorah](https://togithub.com/sorah) - internal/transport: handle h2 errcode on header decoding ([#3872](https://togithub.com/grpc/grpc-go/issues/3872)) - Special Thanks: [@tz70s](https://togithub.com/tz70s) - xds: exit from run() goroutine when resolver is closed. ([#3882](https://togithub.com/grpc/grpc-go/issues/3882)) - credentials/alts: ClientAuthorizationCheck to case-fold compare of peer SA ([#3792](https://togithub.com/grpc/grpc-go/issues/3792)) - Special Thanks: [@AntonNep](https://togithub.com/AntonNep) - service reflection: include transitive closure for a file ([#3851](https://togithub.com/grpc/grpc-go/issues/3851)) - stats: include message header in stats.InPayload.WireLength ([#3886](https://togithub.com/grpc/grpc-go/issues/3886)) - Special Thanks: [@xstephen95x](https://togithub.com/xstephen95x) - binarylog: export Sink ([#3879](https://togithub.com/grpc/grpc-go/issues/3879)) - service reflection: include transitive closure for a file ([#3851](https://togithub.com/grpc/grpc-go/issues/3851)) ### [`v1.32.0`](https://togithub.com/grpc/grpc-go/releases/v1.32.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.31.1...v1.32.0) ### Dependencies - Remove Go 1.9 support; assume go1.12 build tag ([#3767](https://togithub.com/grpc/grpc-go/issues/3767)) ### New Features - grpc: add ServiceRegistrar interface; bump up support package version. ([#3816](https://togithub.com/grpc/grpc-go/issues/3816); [#3818](https://togithub.com/grpc/grpc-go/issues/3818)) - xds: add LRS balancing policy ([#3799](https://togithub.com/grpc/grpc-go/issues/3799)) ### Bug Fixes - server: prevent hang in Go HTTP transport in some error cases ([#3833](https://togithub.com/grpc/grpc-go/issues/3833)) - server: respond correctly to client headers with END_STREAM flag set ([#3803](https://togithub.com/grpc/grpc-go/issues/3803)) - eds: fix priority timeout failure when EDS removes all priorities ([#3830](https://togithub.com/grpc/grpc-go/issues/3830)) ### [`v1.31.1`](https://togithub.com/grpc/grpc-go/releases/v1.31.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.31.0...v1.31.1) - eds: fix priority timeout failure when EDS removes all priorities ([#3839](https://togithub.com/grpc/grpc-go/issues/3839)) ### [`v1.31.0`](https://togithub.com/grpc/grpc-go/releases/v1.31.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.30.1...v1.31.0) ### API Changes - balancer: remove deprecated type aliases ([#3742](https://togithub.com/grpc/grpc-go/issues/3742)) ### New Features - The following new xDS functionalities are added in this release (xDS features supported in a given release are documented [here](https://togithub.com/grpc/grpc/blob/master/doc/grpc_xds_features.md)): - Requests matching based on [path](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route_components.proto#route-routematch) (prefix, full path and safe regex) and [headers](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route_components.proto#route-headermatcher) - Requests routing to multiple clusters based on [weights](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route_components.proto#route-weightedcluster) - service config: add default method config support ([#3684](https://togithub.com/grpc/grpc-go/issues/3684)) - Special Thanks: [@amenzhinsky](https://togithub.com/amenzhinsky) - credentials/sts: PerRPCCreds Implementation ([#3696](https://togithub.com/grpc/grpc-go/issues/3696)) - credentials: check and expose SPIFFE ID ([#3626](https://togithub.com/grpc/grpc-go/issues/3626)) - protoc-gen-go-grpc: support for proto3 field presence ([#3752](https://togithub.com/grpc/grpc-go/issues/3752)) ### Bug Fixes - client: set auth header to localhost for unix target ([#3730](https://togithub.com/grpc/grpc-go/issues/3730)) ### Documentation - doc: mark CustomCodec as deprecated ([#3698](https://togithub.com/grpc/grpc-go/issues/3698)) - examples: cleanup README.md ([#3738](https://togithub.com/grpc/grpc-go/issues/3738)) - doc: fix references to status methods ([#3702](https://togithub.com/grpc/grpc-go/issues/3702)) - Special Thanks: [@evanlimanto](https://togithub.com/evanlimanto) ### [`v1.30.1`](https://togithub.com/grpc/grpc-go/releases/v1.30.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.30.0...v1.30.1) - eds: fix priority timeout failure when EDS removes all priorities ([#3840](https://togithub.com/grpc/grpc-go/issues/3840)) ### [`v1.30.0`](https://togithub.com/grpc/grpc-go/releases/v1.30.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.29.1...v1.30.0) ### API Changes - 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](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api) 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](https://togithub.com/grpc/grpc/blob/master/doc/grpc_xds_features.md). - balancer: move Balancer and Picker to V2; delete legacy API ([#3180](https://togithub.com/grpc/grpc-go/issues/3180), [#3431](https://togithub.com/grpc/grpc-go/issues/3431)) - Replace `balancer.Balancer` and `balancer.Picker` with the `V2Balancer` and `V2Picker` versions. - Remove `balancer.ClientConn.UpdateBalancerState`. - Remove the original balancer plugin API, based on `grpc.Balancer`, and all related functionality. - Remove the deprecated `naming` package. ### Behavior Changes - grpclb, dns: pass balancer addresses via resolver.State ([#3614](https://togithub.com/grpc/grpc-go/issues/3614)) ### New Features - balancer: support hierarchical paths in addresses ([#3494](https://togithub.com/grpc/grpc-go/issues/3494)) - client: option to surface connection errors to callers ([#3430](https://togithub.com/grpc/grpc-go/issues/3430)) - Special Thanks: [@sethp-nr](https://togithub.com/sethp-nr) - credentials: pass address attributes from balancer to creds handshaker. ([#3548](https://togithub.com/grpc/grpc-go/issues/3548)) - credentials: local creds implementation ([#3517](https://togithub.com/grpc/grpc-go/issues/3517)) - advancedtls: add fine-grained verification levels in XXXOptions ([#3454](https://togithub.com/grpc/grpc-go/issues/3454)) - xds: handle weighted cluster as route action ([#3613](https://togithub.com/grpc/grpc-go/issues/3613)) - xds: add weighted_target balancer ([#3541](https://togithub.com/grpc/grpc-go/issues/3541)) ### Performance Improvements - transport: move append of header and data down to http2 write loop to save garbage ([#3568](https://togithub.com/grpc/grpc-go/issues/3568)) - Special Thanks: [@bboreham](https://togithub.com/bboreham) - server.go: use worker goroutines for fewer stack allocations ([#3204](https://togithub.com/grpc/grpc-go/issues/3204)) - Special Thanks: [@adtac](https://togithub.com/adtac) ### Bug Fixes - stream: fix calloption.After() race in finish ([#3672](https://togithub.com/grpc/grpc-go/issues/3672)) - retry: prevent per-RPC creds error from being transparently retried ([#3677](https://togithub.com/grpc/grpc-go/issues/3677), [#3691](https://togithub.com/grpc/grpc-go/issues/3691)) - cache: callback without cache's mutex ([#3603](https://togithub.com/grpc/grpc-go/issues/3603)) - client: properly check GRPC_GO_IGNORE_TXT_ERRORS environment variable ([#3532](https://togithub.com/grpc/grpc-go/issues/3532)) - Special Thanks: [@t33m](https://togithub.com/t33m) - balancergroup: fix connectivity state ([#3585](https://togithub.com/grpc/grpc-go/issues/3585)) - xds: use google default creds ([#3673](https://togithub.com/grpc/grpc-go/issues/3673)) - xds: accept either "" or "/" as the prefix for the default route ([#3535](https://togithub.com/grpc/grpc-go/issues/3535)) - xds: reject RDS response containing match with case-sensitive false ([#3592](https://togithub.com/grpc/grpc-go/issues/3592)) ### Documentation - examples: add go.mod to make examples a separate module ([#3546](https://togithub.com/grpc/grpc-go/issues/3546)) - doc: update README for supported Go versions and travis for tests ([#3516](https://togithub.com/grpc/grpc-go/issues/3516)) ### [`v1.29.1`](https://togithub.com/grpc/grpc-go/releases/v1.29.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.29.0...v1.29.1) - status: remove Error method accidentally added to \*Status ([#3561](https://togithub.com/grpc/grpc-go/issues/3561)) ### [`v1.29.0`](https://togithub.com/grpc/grpc-go/releases/v1.29.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.28.1...v1.29.0) ### New Features - client: add a WithNoProxy dialoption ([#3411](https://togithub.com/grpc/grpc-go/issues/3411)) - Special Thanks: [@pdbogen](https://togithub.com/pdbogen) ### Bug Fixes - xds: update nonce even if the ACK/NACK is not sent on wire ([#3497](https://togithub.com/grpc/grpc-go/issues/3497)) - xds: add temporary logging to LRS ([#3490](https://togithub.com/grpc/grpc-go/issues/3490)) - wrr: make random wrr thread safe ([#3470](https://togithub.com/grpc/grpc-go/issues/3470)) - transport: fix handling of header metadata in serverHandler ([#3484](https://togithub.com/grpc/grpc-go/issues/3484)) - Special Thanks: [@misberner](https://togithub.com/misberner) - balancer: change roundrobin to accept empty address list ([#3491](https://togithub.com/grpc/grpc-go/issues/3491)) - stats: set response compression codec on stats.InHeader and stats.OutHeader ([#3390](https://togithub.com/grpc/grpc-go/issues/3390)) - Special Thanks: [@MatthewDolan](https://togithub.com/MatthewDolan) ### Documentation - credentials: Update doc strings for NewClientTLSFromCert et. al. ([#3508](https://togithub.com/grpc/grpc-go/issues/3508)) - examples: add example to show how to use the health service ([#3381](https://togithub.com/grpc/grpc-go/issues/3381)) - Special Thanks: [@mjpitz](https://togithub.com/mjpitz) ### [`v1.28.1`](https://togithub.com/grpc/grpc-go/releases/v1.28.1) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.28.0...v1.28.1) - xds: update nonce even if the ACK/NACK is not sent on wire ([#3497](https://togithub.com/grpc/grpc-go/issues/3497)) - balancer: change roundrobin to accept empty address list ([#3491](https://togithub.com/grpc/grpc-go/issues/3491)) - xds: add logging to LRS ([#3490](https://togithub.com/grpc/grpc-go/issues/3490)) ### [`v1.28.0`](https://togithub.com/grpc/grpc-go/releases/v1.28.0) [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.27.1...v1.28.0) ### New Features - This release adds an experimental client side implementation of [xDSv2](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api) 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](https://togithub.com/grpc/grpc-go/issues/3351)) - interceptor: new APIs for chaining server interceptors. ([#3336](https://togithub.com/grpc/grpc-go/issues/3336)) - Special Thanks: [@tukeJonny](https://togithub.com/tukeJonny) - stats: add client side user agent to outgoing header ([#3331](https://togithub.com/grpc/grpc-go/issues/3331)) - Special Thanks: [@piotrkowalczuk](https://togithub.com/piotrkowalczuk) ### API Changes - credentials: deprecate ProtocolInfo.SecurityVersion ([#3372](https://togithub.com/grpc/grpc-go/issues/3372)) ### Bug Fixes - interop: Build grpclb_fallback/client.go only for linux. ([#3375](https://togithub.com/grpc/grpc-go/issues/3375)) - internal: Update service_config.pb.go ([#3365](https://togithub.com/grpc/grpc-go/issues/3365)) - internal: Move parseTarget function into internal package and export it. ([#3368](https://togithub.com/grpc/grpc-go/issues/3368)) - balancer/base: keep bad SubConns in TransientFailure until Ready ([#3366](https://togithub.com/grpc/grpc-go/issues/3366)) - balancer/base: consider an empty address list an error ([#3361](https://togithub.com/grpc/grpc-go/issues/3361)) ### Dependencies - protobuf: update protoc-gen-go version and generated code ([#3345](https://togithub.com/grpc/grpc-go/issues/3345))Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.