Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Oct 10, 2025

Bumps github.com/quic-go/quic-go from 0.52.0 to 0.54.1.

Release notes

Sourced from github.com/quic-go/quic-go's releases.

v0.54.0

This release adds support for QUIC Stream Resets with Partial Delivery, a QUIC extension that allows resetting a stream, while guaranteeing delivery of stream data up to a certain byte offset (#5155, #5158, #5160, #5235, #5242, #5243). This extension is a requirement of newer versions of WebTransport over HTTP/3.

Other Notable Changes

  • http3: the package now doesn't depend on any internal quic-go packages: #5256
  • wire: return concrete structs (instead of a wire.Frame) for common frame types (STREAM, DATAGRAM, ACK), speeding up STREAM frame parsing by ~18%: #5253, #5227, thanks to @​jannis-seemann

Fixes

  • fix retransmission logic for path probing packets: #5241
  • close the Transport when DialAddr fails: #5259, thanks to @​rbqvq

Changelog

New Contributors

Full Changelog: quic-go/quic-go@v0.53.0...v0.54.0

v0.53.0

This release introduces a massive overhaul of the quic-go API. See this blog post for more details about the motivation. Most users will need to make some changes when upgrading to this version.

  • The Connection interface was removed in favor of a Conn struct (#5195).
  • The ReceiveStream, SendStream and Stream interfaces were replaced with structs of the same name (#5149, #5172, #5173, #5214).

In most cases, migrating downstream code should be fairly straightforward. For example, a method that used to accept a quic.Connection as a parameter now needs to accept a *quic.Conn, and a function handling a quic.Stream now needs to handle a *quic.Stream. Of course, consumers of quic-go are free to define their own interfaces.

Similarly, on the HTTP/3 layer:

  • The Connection interface was replaced with a Conn struct (#5204).
  • The RequestStream interface was converted to a struct (#5153, #5216).
  • The Stream interface was converted to a struct (#5154).

... (truncated)

Commits
  • 0264fbc drop initial packets when the handshake is confirmed
  • c2e784a wire: optimize parsing logic for STREAM, DATAGRAM and ACK frames (#5227)
  • 893a594 wire: improve frame parsing benchmarks (#5263)
  • afe01ef close Transport when DialAddr fails (#5259)
  • 0a9c6ea http3: remove dependency on quic internal packages (#5256)
  • fd32cf5 fix flaky TestPostQuantumClientHello (#5253)
  • 0eb237f add a Config and ConnectionState flag for RESET_STREAM_AT (#5243)
  • 61d2fa5 http3: fix flaky TestConnGoAwayFailures (#5252)
  • dadc8db fix flaky TestServerReceiveQueue (#5249)
  • 3f3d309 fix flaky TestDrainServerAcceptQueue (#5247)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

@dependabot dependabot bot added dependencies Pull requests that update a dependency file go Pull requests that update go code labels Oct 10, 2025
@dependabot dependabot bot requested a review from knqyf263 as a code owner October 10, 2025 17:05
@nikpivkin
Copy link
Contributor

github.com/quic-go/quic-go is a transitive dependency and is used in the tool github.com/bufbuild/buf/cmd/buf, which has no impact.

@yuzichen12123
Copy link
Contributor

../../../go/pkg/mod/github.com/bufbuild/[email protected]/private/buf/cmd/buf/command/curl/curl.go:1186:92: undefined: quic.EarlyConnection

This error is caused by major API changes (breaking changes) introduced in quic-go version v0.53.0, which removed the quic.EarlyConnection interface and replaced the related connection handling logic with the quic.Conn struct. The buf tool's v1.55.1 version is still using the old quic-go API (i.e., depending on versions prior to v0.53.0, such as v0.52.0), resulting in the quic.EarlyConnection definition not being found during compilation.

This issue has been resolved in github.com/bufbuild/buf version v1.56.0. Upgrading to this version will fix the problem.

@yuzichen12123
Copy link
Contributor

@nikpivkin

dependabot bot and others added 3 commits October 21, 2025 10:24
Bumps [github.com/quic-go/quic-go](https://github.com/quic-go/quic-go) from 0.52.0 to 0.54.1.
- [Release notes](https://github.com/quic-go/quic-go/releases)
- [Commits](quic-go/quic-go@v0.52.0...v0.54.1)

---
updated-dependencies:
- dependency-name: github.com/quic-go/quic-go
  dependency-version: 0.54.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
@knqyf263 knqyf263 force-pushed the dependabot/go_modules/github.com/quic-go/quic-go-0.54.1 branch from 3611001 to 804c8bf Compare October 21, 2025 06:34
@knqyf263
Copy link
Collaborator

Updating buf causes another problem mentioned here.

@yuzichen12123
Copy link
Contributor

@knqyf263 Please pay attention to upgrading the following dependencies to the corresponding versions (upgrading to a version that is too high may introduce breaking changes, causing the go install tool to fail).

  • github.com/quic-go/quic-go: v0.54.1
  • github.com/bufbuild/buf: v1.56.0
  • golang.org/x/tools: v0.35.1-0.20250728180453-01a3475a31bc
  • golang.org/x/tools/gopls: v0.20.0

Update dependencies to resolve compatibility issues between
golang.org/x/tools and gopls that were causing build errors.

- Update buf to v1.56.0 (compatible with golang.org/x/tools)
- Update golang.org/x/tools to v0.35.1-0.20250728180453-01a3475a31bc
- Update gopls to v0.20.0
- Downgrade quic-go to v0.54.1 for compatibility
@knqyf263
Copy link
Collaborator

Thanks! Let's see if 687adf5 works.

Anyway, we were concerned about this version matrix in this thread. We don't want to spend time every time looking for compatible versions. We might need to look for a better way to manage tools again.

@yuzichen12123
Copy link
Contributor

Looks like the dependency issue is sorted out—might be worth retrying that failed workflow.

@nikpivkin
Copy link
Contributor

Thanks! Let's see if 687adf5 works.

Anyway, we were concerned about this version matrix in this thread. We don't want to spend time every time looking for compatible versions. We might need to look for a better way to manage tools again.

We can store *.mod files in tools/<tool-name>/ to avoid dependency conflicts and use the -modfile flag to specify an alternative location for the mod file.

@knqyf263
Copy link
Collaborator

Looks like one of the new versions is failing the following test.

--- FAIL: Test_helm_parser_with_options_with_kube_versions (0.00s)
    --- PASS: Test_helm_parser_with_options_with_kube_versions/Parsing_directory_'with-kube-version' (0.00s)
    --- FAIL: Test_helm_parser_with_options_with_kube_versions/Parsing_directory_'with-kube-version'_with_invalid_kube_version (0.00s)

@nikpivkin
Copy link
Contributor

Looks like one of the new versions is failing the following test.

--- FAIL: Test_helm_parser_with_options_with_kube_versions (0.00s)
    --- PASS: Test_helm_parser_with_options_with_kube_versions/Parsing_directory_'with-kube-version' (0.00s)
    --- FAIL: Test_helm_parser_with_options_with_kube_versions/Parsing_directory_'with-kube-version'_with_invalid_kube_version (0.00s)

The version of helm.sh/helm/v3 is downgraded from v3.19.0 to v3.18.6, which changes the error message when parsing the k8s version that the test relies on.

@knqyf263
Copy link
Collaborator

Hmm. I didn't downgrade it, so I have no idea why it occurred.
@nikpivkin Can you revert it or fix the error message?

@nikpivkin
Copy link
Contributor

@knqyf263 Hmm, in go.mod, the versions of many direct dependencies have been downgraded.

@yuzichen12123
Copy link
Contributor

I submitted a PR to address the compatibility issue with the quic-go upgrade:#9694

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file go Pull requests that update go code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants