Releases: connectrpc/connect-go
v1.17.0
What's Changed
Enhancements
- Enable
protoc-gen-connect-go
usage with Protobuf source files that use Editions by @jchadwick-buf in #754
Bugfixes
- Prevent incorrect propagation of protocol-specific metadata by @emcfarlane in #748
- Fix error message about unexpected content-type by @jhump in #775
- Calls should return "unavailable" instead of "unimplemented" or "unknown" when the transport fails to produce an HTTP response and returns
io.EOF
errors by @jhump in #776
Other changes
New Contributors
Full Changelog: v1.16.2...v1.17.0
v1.16.2
This is a patch release to make sure that consuming modules won't be vulnerable to CVE-2023-45288.
What's Changed
- Update the golang.org/x/net dependency to v0.23.0 in #729.
Full Changelog: v1.16.1...v1.16.2
v1.16.1
This release contains a single bugfix.
What's Changed
Bugfixes
- Fix redundant attempts to write headers in certain error cases in Connect unary RPCs by @emcfarlane in #726
Full Changelog: v1.16.0...v1.16.1
v1.16.0
This release is mostly bug fixes but also reconciles connect-go with recent updates to the specification regarding mapping of RPC error codes to/from HTTP status codes (see connectrpc RFC 003)
What's Changed
Enhancements
- Only send a grpc-status-details-bin trailer in the gRPC protocol if the error has details by @bhollis in #713
Bugfixes
- Fix
ErrorWriter IsSupported
check to report false on ambiguous content-type and options indicate connect protocol version header is required by @emcfarlane in #700 - In Connect unary protocol, fallback to code based on HTTP status if unable to deserialize code from JSON body by @jhump in #702
- Fix
ErrorWriter
to recognize protocols, even if content-type indicates unrecognized codec by @emcfarlane in #701 - Fix some places in the framework that weren't correctly recognizing and returning context-based error code (e.g. "canceled" or "deadline_exceeded") by @jhump in #709
- Use "unimplemented" code for stream cardinality violations by @jhump in #712
- Restrict which metadata in an error can be propagated into response metadata by @emcfarlane in #711
Other changes
- Revise RPC error code <-> HTTP status code mappings per latest changes to the spec by @jhump in #706
New Contributors
Full Changelog: v1.15.0...v1.16.0
v1.15.0
What's Changed
Since the last release, we have been significantly increasing coverage of our conformance suite. This has identified several inconsistencies with other Connect, gRPC, and gRPC-Web implementations. This release includes several fixes that will help align this implementation with others, behavior that can be verified by the conformance tests going forward. The fixes are backward-compatible with gRPC and Connect clients and servers. They fix some aspects of the wire representation and edge-case handling of spurious requests and responses, and they may affect users directly inspecting HTTP requests and responses.
Governance
- Add @emcfarlane as a maintainer in #680 🎉
Enhancements
- Add transport-level retry support for RPCs with unary and server-stream RPCs. This also improves efficiency by eliminating a goroutine and a message copy. By @emcfarlane in #649
- Prefer "application/grpc" over "application/grpc+proto" content-type when issuing gRPC calls. This accommodates Google Cloud Platform servers, which don't fully implement the gRPC specification. By @lrewega in #655
- Small efficiency gains in on all outbound HTTP requests and unary Connect response validation by @mattrobenolt in #682, #683
- Improve efficiency handling gRPC-Web and Connect end-of-stream messages by @jhump in #678
Bugfixes
- Fix HTTP status to Code mapping by @emcfarlane in #673
- Client should verify response content-type by @jhump in #679
- Omit erroneous
@type
attribute from Connect error detail debug string by @jhump in #688 - Use context to correctly classify some errors with Canceled or DeadlineExceeded code by @emcfarlane in #659
- Fix trailers-only response handling and some gRPC error coding by @jhump in #677, #690
Full Changelog: v1.14.0...v1.15.0
v1.14.0
What's Changed
Security
- Update
google.golang.org/protobuf
to v1.32.0 to fix a security vulnerability inprotojson
thanks to @jhump in #660. For more information, refer to the protobuf v1.32.0 release notes.
Bugfixes
- Resolved an issue where the
ErrorWriter
misclassified GET requests by @emcfarlane in #654
Full Changelog: v1.13.0...v1.14.0
v1.13.0
What's Changed
Enhancements
- Add
Schema
field toconnect.Spec
for introspection by @emcfarlane in #629 - Add support for dynamic message types via message initializers by @emcfarlane in #640
Bugfixes
- Type URLs in error details can have any host and even include URI scheme by @jhump in #636
- Improve GET requests: clients should not include content headers, servers should disallow a body by @jhump in #644
- Fix mis-categorization of "deadline exceeded" errors by @jhump in #643
Other changes
- Improve test code and fix many sources of flakiness by @emcfarlane in #594, #624, #627, and #628
- Run conformance tests in CI by @jhump in #642
- Internal refactoring to support future robustness improvements by @emcfarlane in #646
Full Changelog: v1.12.0...v1.13.0
v1.12.0
What's Changed
Governance
- Add @mattrobenolt as a maintainer in #593 🎉
- Prepare for CNCF application by @akshayjshah in #587, #590, #591, #592 and #602
Enhancements
- Move the indication of destination message type in error messages into
Codec
by @jhump in #599 - Optimize gRPC timeout encoding by @emcfarlane in #596
Bugfixes
- Generate correct routes for package-less Protobuf schemas by @emcfarlane in #601
- Use
io.ReadFull
to ensure envelope prefix is fully read by @njiang747 in #580 - Remove gRPC error message from generic envelope errors by @emcfarlane in #603
- Stabilize program name in generated code preamble by @trixnz #610
Other changes
- Cast envelope size as int64 to remove overflow checks by @emcfarlane in #605
- Cleanup and documentation fixes by @akshayjshah and @smaye81 in #577, #579 and #598
- Extend benchmarks to all protocols by @emcfarlane in #588
New Contributors
- @njiang747 made their first contribution in #580
- @trixnz made their first contribution in #610
Full Changelog: v1.11.1...v1.12.0
v1.11.1
What's Changed
Bugfixes
- Prefer t.Cleanup to close test servers by @akshayjshah in #573
- Set X-User-Agent in gRPC-Web clients by @akshayjshah in #572
- Reuse buffers when marshaling in unary Connect protocol by @jhump in #561
- Eliminate preallocation for enveloped protocols by @akshayjshah in #574
Other changes
- Various docs, Makefile, and tooling cleanups by @akshayjshah and @rubensf in #554, #556, #562, #565, #567, #569, and #568
- Include Go 1.21.0 in CI by @akshayjshah in #566
Full Changelog: v1.11.0...v1.11.1
v1.11.0
What's Changed
This is the first release of Connect in the connectrpc
GitHub organization. The import path has changed to connectrpc.com/connect
.
All previous releases are available under the new import path. The code for these releases is identical to the code for github.com/bufbuild/connect-go
.
To migrate to the new import path, a shell script is usually sufficient:
On Linux, or anywhere with GNU sed
:
find . -name "*.go" -exec sed -i 's|github.com/bufbuild/connect-go|connectrpc.com/connect|g' {} \;
go get connectrpc.com/connect@latest
go mod tidy
On Mac, or anywhere with BSD sed
:
find . -name "*.go" -exec sed -i '' 's|github.com/bufbuild/connect-go|connectrpc.com/connect|g' {} \;
go get connectrpc.com/connect@latest
go mod tidy
When you change your source code, you'll also need to switch to the version of protoc-gen-connect-go
in this repository. If you're using the Buf CLI with the buf.build/bufbuild/connect-go
remote plugin, switch to the buf.build/connectrpc/go
plugin.
We apologize for any inconvenience that this rename causes. We're doing this to prepare Connect for donation to a foundation, which will put it on a better footing for long-term maintenance by multiple stakeholders.
If you encounter any problems or have questions, please reach out to us by filing an issue or joining #connectrpc
in the Gophers Slack.
Full Changelog: v1.10.0...v1.11.0