fix(deps): update module github.com/quic-go/quic-go to v0.43.0 #251

Merged
renovate-bot merged 1 commits from renovate/github.com-quic-go-quic-go-0.x into master 2024-04-27 16:00:42 +00:00
Collaborator

This PR contains the following updates:

Package Type Update Change
github.com/quic-go/quic-go require minor v0.42.0 -> v0.43.0

Release Notes

quic-go/quic-go (github.com/quic-go/quic-go)

v0.43.0

Compare Source

quic-go.net: Launching a new Documentation Site

With this release, we're launching a new documentation site for the quic-go projects (quic-go itself, HTTP/3, webtransport-go, and soon, masque-go): quic-go.net.

The documentation site aims to explain QUIC concepts and how they are made accessible using quic-go's API. This site replaces the wiki, and the ever-growing README files.

A lot of work has gone into the documentation already, but we're by no means done yet. The entire source is public in https://github.com/quic-go/docs/, and we're happy about community contributions.

HTTP Datagrams (RFC 9297)

This release adds support for HTTP Datagrams (RFC 9297), both on the client and on the server side (#​4452). HTTP Datagrams are used in WebTransport in CONNECT-UDP (RFC 9298), among others.

The new API for HTTP Datagrams is described on the new documentation page: HTTP Datagrams. The integration of HTTP Datagram support necessitated a comprehensive refactor of the HTTP/3 package, resulting in several breaking API changes listed below.

Breaking Changes

  • quicvarint: functions now return an int instead the internal protocol.ByteCount (#​4365)
  • http3: Server.SetQuicHeaders was renamed to SetQUICHeaders (#​4377)
  • http3: Server.QuicConfig was renamed to QUICConfig (#​4384)
  • http3: RoundTripper.QuicConfig was renamed to QUICConfig (#​4385)
  • http3: RoundTripOpt.CheckSettings was removed (#​4416). Use the newSingleDestinationRoundTripper API instead.
  • http3: the HTTPStreamer interface is now implemented by the http.ResponseWriter (and not the http.Request.Body) (#​4469)
  • include the maximum payload size in the DatagramTooLargeError (#​4470)

Other Notable Changes

  • GSO and ECN is disabled on kernel versions older than 5 (#​4456)
  • http3: logging can be controlled using an slog.Logger (#​4449)
  • http3: HEAD requests can now be sent in 0-RTT (#​4378)
  • http3: duplicate QPACK encoder and decoder streams are not rejected as required by the RFC (#​4388)
  • http3: Extended CONNECT are blocked until the server's SETTINGS are received, as required by the RFC (#​4450)
  • http3: HTTP/3 client connections aren't removed if RoundTrip errors due to a cancelled context (#​4448). Thanks to @​GeorgeMac!
  • http3: sniff Content-Type when flushing the ResponseWriter (#​4412). Thanks to @​WeidiDeng!
  • The Context exposed on the quic.Stream is now derived from the connection's context (#​4414)
  • The UDP send and receive buffer size was increased to 7 MiB (#​4455). Thanks to @​bt90!

Clarifications on the QUIC Stream State Machine

Calling CancelWrite after Close

After a long and fruitful discussion (#​4404), we decided to clarify that calling CancelWrite after Close on a SendStream (or a bidirectional stream) should cause a state transition from the "Data Sent" to the "Reset Sent" state, as described in section 3.1 of RFC 9000. This matches the current behavior of quic-go, however, it didn't match the API documentation (fixed in #​4419).

This means that stream data will not be delivered reliably if CancelWrite is called, and that this applies even if Close was called before.

Garbage Collection of Streams

This release also changes the way streams are garbage-collected (and the peer is granted additional limit to open a new stream), once they're not needed anymore, in a subtle way:

  • for the send direction of streams: #​4445
  • for the receive direction of a stream: #​4460

Thanks to @​sukunrt for extremely thorough and helpful reviews on both these PRs!

quic-go needs your support!

Is your project / company relying on quic-go?
Please consider funding the project. Any support is highly appreciated!

Changelog

New Contributors

Full Changelog: https://github.com/quic-go/quic-go/compare/v0.42.0...v0.43.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

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, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github.com/quic-go/quic-go](https://github.com/quic-go/quic-go) | require | minor | `v0.42.0` -> `v0.43.0` | --- ### Release Notes <details> <summary>quic-go/quic-go (github.com/quic-go/quic-go)</summary> ### [`v0.43.0`](https://github.com/quic-go/quic-go/releases/tag/v0.43.0) [Compare Source](https://github.com/quic-go/quic-go/compare/v0.42.0...v0.43.0) #### quic-go.net: Launching a new Documentation Site With this release, we're launching a new documentation site for the quic-go projects (quic-go itself, HTTP/3, webtransport-go, and soon, masque-go): [quic-go.net](https://quic-go.net). The documentation site aims to explain QUIC concepts and how they are made accessible using quic-go's API. This site replaces the wiki, and the ever-growing README files. A lot of work has gone into the documentation already, but we're by no means done yet. The entire source is public in https://github.com/quic-go/docs/, and we're happy about community contributions. #### HTTP Datagrams (RFC 9297) This release adds support for HTTP Datagrams ([RFC 9297](https://datatracker.ietf.org/doc/html/rfc9297)), both on the client and on the server side ([#&#8203;4452](https://github.com/quic-go/quic-go/issues/4452)). HTTP Datagrams are used in WebTransport in CONNECT-UDP ([RFC 9298](https://datatracker.ietf.org/doc/html/rfc9298)), among others. The new API for HTTP Datagrams is described on the new documentation page: [HTTP Datagrams](https://quic-go.net/docs/http3/datagrams/). The integration of HTTP Datagram support necessitated a comprehensive refactor of the HTTP/3 package, resulting in several breaking API changes listed below. #### Breaking Changes - quicvarint: functions now return an `int` instead the internal `protocol.ByteCount` ([#&#8203;4365](https://github.com/quic-go/quic-go/issues/4365)) - http3: `Server.SetQuicHeaders` was renamed to `SetQUICHeaders` ([#&#8203;4377](https://github.com/quic-go/quic-go/issues/4377)) - http3: `Server.QuicConfig` was renamed to `QUICConfig` ([#&#8203;4384](https://github.com/quic-go/quic-go/issues/4384)) - http3: `RoundTripper.QuicConfig` was renamed to `QUICConfig` ([#&#8203;4385](https://github.com/quic-go/quic-go/issues/4385)) - http3: `RoundTripOpt.CheckSettings` was removed ([#&#8203;4416](https://github.com/quic-go/quic-go/issues/4416)). Use the new`SingleDestinationRoundTripper` API instead. - http3: the `HTTPStreamer` interface is now implemented by the `http.ResponseWriter` (and not the `http.Request.Body`) ([#&#8203;4469](https://github.com/quic-go/quic-go/issues/4469)) - include the maximum payload size in the `DatagramTooLargeError` ([#&#8203;4470](https://github.com/quic-go/quic-go/issues/4470)) #### Other Notable Changes - GSO and ECN is disabled on kernel versions older than 5 ([#&#8203;4456](https://github.com/quic-go/quic-go/issues/4456)) - http3: logging can be controlled using an `slog.Logger` ([#&#8203;4449](https://github.com/quic-go/quic-go/issues/4449)) - http3: HEAD requests can now be sent in 0-RTT ([#&#8203;4378](https://github.com/quic-go/quic-go/issues/4378)) - http3: duplicate QPACK encoder and decoder streams are not rejected as required by the RFC ([#&#8203;4388](https://github.com/quic-go/quic-go/issues/4388)) - http3: Extended CONNECT are blocked until the server's SETTINGS are received, as required by the RFC ([#&#8203;4450](https://github.com/quic-go/quic-go/issues/4450)) - http3: HTTP/3 client connections aren't removed if `RoundTrip` errors due to a cancelled context ([#&#8203;4448](https://github.com/quic-go/quic-go/issues/4448)). Thanks to [@&#8203;GeorgeMac](https://github.com/GeorgeMac)! - http3: sniff Content-Type when flushing the ResponseWriter ([#&#8203;4412](https://github.com/quic-go/quic-go/issues/4412)). Thanks to [@&#8203;WeidiDeng](https://github.com/WeidiDeng)! - The `Context` exposed on the `quic.Stream` is now derived from the connection's context ([#&#8203;4414](https://github.com/quic-go/quic-go/issues/4414)) - The UDP send and receive buffer size was increased to 7 MiB ([#&#8203;4455](https://github.com/quic-go/quic-go/issues/4455)). Thanks to [@&#8203;bt90](https://github.com/bt90)! #### Clarifications on the QUIC Stream State Machine ##### Calling CancelWrite after Close After a long and fruitful discussion ([#&#8203;4404](https://github.com/quic-go/quic-go/issues/4404)), we decided to clarify that calling `CancelWrite` after `Close` on a `SendStream` (or a bidirectional stream) should cause a state transition from the "Data Sent" to the "Reset Sent" state, as described in [section 3.1 of RFC 9000](https://datatracker.ietf.org/doc/html/rfc9000#section-3.1). This matches the current behavior of quic-go, however, it didn't match the API documentation (fixed in [#&#8203;4419](https://github.com/quic-go/quic-go/issues/4419)). This means that stream data will not be delivered reliably if `CancelWrite` is called, and that this applies even if `Close` was called before. ##### Garbage Collection of Streams This release also changes the way streams are garbage-collected (and the peer is granted additional limit to open a new stream), once they're not needed anymore, in a subtle way: - for the send direction of streams: [#&#8203;4445](https://github.com/quic-go/quic-go/issues/4445) - for the receive direction of a stream: [#&#8203;4460](https://github.com/quic-go/quic-go/issues/4460) Thanks to [@&#8203;sukunrt](https://github.com/sukunrt) for extremely thorough and helpful reviews on both these PRs! #### quic-go needs your support! Is your project / company relying on quic-go? Please consider [funding the project](https://github.com/sponsors/marten-seemann). Any support is highly appreciated! #### Changelog - quicvarint: use int instead of internal protocol.ByteCount type by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4356 - http3: improve documentation for Server.SetQuicHeaders by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4376 - http3: make it possible to send HEAD requests in 0-RTT by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4378 - http3: don't modify any fields of the http.Request when doing 0-RTT by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4379 - http3: rename Server.SetQuicHeaders to Server.SetQUICHeaders by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4377 - add an integration test for 0-RTT GET requests by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4386 - http3: rename Server.QuicConfig to Server.QUICConfig by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4384 - http3: rename RoundTripper.QuicConfig to RoundTripper.QUICConfig by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4385 - http3: refactor the client's and server's unidirectional stream handling by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4387 - http3: reject duplicate QPACK decoder and encoder streams by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4388 - http3: introduce a way for the server to query the client's SETTINGS by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4389 - don't set the Allow0RTT flag for the client in the HTTP integration test by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4397 - http3: reference the correct RFCs in doc comments by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4399 - introduce a ConnectionTracingID type for the ConnectionTracingKey by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4400 - http3: pass tracing ID instead of quic.Connection to stream hijackers by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4401 - expose the connection tracing ID on the stream context by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4414 - http3: expose an OpenStream method on the RoundTripper by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4409 - http3: cancel reading on request stream if request processing fails by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4417 - http3: remove Settingser, StreamCreator, return Connection from Hijacker by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4425 - http3: expose a SingleDestinationRoundTripper by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4424 - http3: hide SendDatagram and ReceiveDatagram on the Connection by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4427 - fix documentation for CancelWrite after Close on the send stream by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4419 - http3: simplify buffering of small responses by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4432 - http3: simplify composition of the HTTP stream and request stream by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4433 - http3: remove Accept(Uni)Stream methods from the Connection interface by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4435 - http3: simplify tracking of content length by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4438 - http3: move length limiting to the body by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4439 - http3: fix flaky RoundTripper test by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4442 - http3: simplify response header writing by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4441 - http3: reuse clients on RoundTripOpt context canceled by [@&#8203;GeorgeMac](https://github.com/GeorgeMac) in https://github.com/quic-go/quic-go/pull/4448 - http3: use a log/slog Logger for logging by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4449 - http3: remove RoundTripOpt.CheckSettings by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4416 - catch spurious UDP sendmsg errors in multiplex integration test by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4451 - http3: check server SETTINGS before sending an Extended CONNECT request by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4450 - http3: process 1xx status codes by [@&#8203;mchtech](https://github.com/mchtech) in https://github.com/quic-go/quic-go/pull/4437 - fix flaky server accept queue test by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4453 - http3: fix race condition when closing the RoundTripper by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4458 - Increase send/receive buffers to 7MiB by [@&#8203;bt90](https://github.com/bt90) in https://github.com/quic-go/quic-go/pull/4455 - testutils: add a token parameter to ComposeInitialPacket by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4391 - flowcontrol: make it possible to call Abandon multiple times by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4459 - disable GSO and ECN on kernels older than version 5 by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4456 - delay completion of the send stream until the reset error was delivered by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4445 - delay completion of the receive stream until the reset error was read by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4460 - http3: fix race condition in client unit test by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4463 - http3: add support for HTTP Datagrams (RFC 9297) by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4452 - README: link to the new documentation site by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4464 - http3: rename Settings.EnableDatagram to EnableDatagrams by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4466 - http3: implement on the HTTPStreamer on the ResponseWriter, flush header by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4469 - include the maximum payload size in the DatagramTooLargeError by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/4470 - http3: sniff Content-Type when flushing the ResponseWriter by [@&#8203;WeidiDeng](https://github.com/WeidiDeng) in https://github.com/quic-go/quic-go/pull/4412 #### New Contributors - [@&#8203;GeorgeMac](https://github.com/GeorgeMac) made their first contribution in https://github.com/quic-go/quic-go/pull/4448 - [@&#8203;mchtech](https://github.com/mchtech) made their first contribution in https://github.com/quic-go/quic-go/pull/4437 **Full Changelog**: https://github.com/quic-go/quic-go/compare/v0.42.0...v0.43.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMjMuMyIsInVwZGF0ZWRJblZlciI6IjM3LjMyMy4zIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
renovate-bot added 1 commit 2024-04-27 15:00:50 +00:00
Mirror Push / mirror (push) Successful in 6s Details
Test / test (oldstable) (push) Successful in 43s Details
Test / test (stable) (push) Successful in 40s Details
c1a4a7f93a
fix(deps): update module github.com/quic-go/quic-go to v0.43.0
renovate-bot scheduled this pull request to auto merge when all checks succeed 2024-04-27 15:00:50 +00:00
renovate-bot merged commit c1a4a7f93a into master 2024-04-27 16:00:42 +00:00
Sign in to join this conversation.
No description provided.