Skip to content

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

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/github.com-quic-go-quic-go-0.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/github.com-quic-go-quic-go-0.x

Conversation

@renovate

@renovate renovate Bot commented Aug 30, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
github.com/quic-go/quic-go v0.61.0 → v0.64.0 age confidence

Release Notes

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

v0.64.0

Compare Source

This release improves congestion control and performance, especially on paths with packet reordering:

  • Slow-start pacing now uses twice the estimated bandwidth, allowing the sending rate to double each RTT: #​5882
  • Application-data loss detection now disables packet-threshold detection after a spurious loss, avoiding repeated unnecessary retransmissions caused by packet reordering: #​5905
  • Application-data loss detection now uses an adaptive time threshold that increases after spurious losses, allowing more time for reordered packets to arrive: #​5925
  • The congestion controller now restores its congestion window and recovery state after a reduction caused entirely by spurious packet loss: #​5923

Notable Fixes

  • Congestion recovery now respects send order across Initial, Handshake and application-data packets, fixing incorrect recovery decisions caused by comparing packet numbers from different spaces: #​5920
  • Connections now fall back to 1200-byte Initial packets on EMSGSIZE when Config.InitialPacketSize is unset, allowing handshakes over paths with smaller MTUs: #​5911
  • Oversized packets are now rejected before serialization, including Initial packets with excessively large address-validation tokens: #​5937
  • Path MTU discovery now restarts correctly after connection migration and NAT rebinding: #​5887
  • Servers now retry unanswered PATH_CHALLENGEs with exponential backoff as more packets arrive on the candidate path, preventing path validation from stalling when a challenge is acknowledged but no PATH_RESPONSE arrives: #​5930
  • Servers now continue responding to PATH_CHALLENGEs on existing candidate paths when the candidate path limit is reached: #​5929
  • Writes after closing a SendStream or Stream now return quic.ErrStreamClosed, which is also used as the stream context's cancellation cause: #​5885
  • Conn.SendDatagram now returns the connection's close error after shutdown, instead of accepting datagrams that will be silently dropped: #​5880
  • http3: SendDatagram now immediately returns an error after the stream's send side closes, including after STOP_SENDING or connection shutdown: #​5884
  • http3: request header, response header and trailer buffers now grow as data arrives, avoiding large allocations based solely on a peer's advertised HEADERS frame length: #​5886
  • Spurious losses are now detected when an ACK only acknowledges packets previously declared lost: #​5895
  • Spurious losses are now detected when ACKs arrive out of order: #​5900
  • Path migration now clears the old path's loss history, preventing stale spurious-loss reports and recovery adjustments: #​5903
  • MTU and path probes no longer trigger spurious-loss reports or adaptive loss-recovery changes: #​5906

Notable Changes

  • ConnectionStats now exposes CongestionWindow, reporting the local sender's congestion window on the active network path in bytes: #​5901
  • http3.Stream and http3.RequestStream now expose QlogTrace, allowing applications to add events to the underlying connection's qlog trace: #​5935
  • http3/qlog.RedactHeaders allows applications to redact HTTP/3 header and trailer values, including pseudo-headers, before they are written to qlog: #​5932
  • qlog: locally dropped QUIC datagrams are now recorded with quic:datagram_dropped, including drops caused by a full receive buffer or an oversized outgoing datagram: #​5907
  • qlog: quic:recovery_parameters_set now records initial recovery parameters and changes to loss-detection thresholds, including resets after path migration: #​5926

Changelog

Full Changelog: quic-go/quic-go@v0.63.0...v0.64.0

v0.63.0

Compare Source

This release improves HTTP/3 request handling and error reporting.

Breaking Changes

  • http3: non-CONNECT server requests now leave URL.Scheme and URL.Host empty, matching net/http: #​5839
  • http3: Extended CONNECT now leaves URL.Scheme and URL.Host empty and sets RequestURI to :path: #​5841
  • http3: stream APIs now return QUIC stream and application errors as *http3.Error: #​5852

Notable Fixes

  • http3: :path must start with /; only OPTIONS allows *: #​5842
  • quicvarint: complete varints now decode successfully when returned alongside io.EOF or another reader error: #​5876

Notable Changes

  • http3.Error now supports unwrapping the underlying QUIC stream or application error: #​5873
  • http3.ClientConn now exposes LocalAddr and RemoteAddr: #​5871

Changelog

Full Changelog: quic-go/quic-go@v0.62.0...v0.63.0

v0.62.0

Compare Source

This release adds support for stream priorities based on RFC 9218:

  • SendStream and Stream now expose SetPriority, allowing applications to set the urgency and incremental scheduling behavior of stream data. Retransmissions are prioritized over new stream data and respect stream priorities: #​5770, #​5774
  • HTTP/3 servers now apply priorities from request Priority headers and PRIORITY_UPDATE frames. Priority updates are also recorded in qlog for both HTTP/3 and QUIC streams: #​5783, #​5789, #​5790, #​5795

Notable Changes

  • http3.Stream and http3.RequestStream now expose TryWriteAll, which queues a complete DATA frame without blocking or returns quic.ErrWouldBlock without queueing anything: #​5765
  • Reliable Stream Resets are now advertised using both the draft-09 and legacy draft-07 transport parameters, restoring interoperability with Safari for WebTransport: #​5782, thanks to @​0xFA11

Breaking Changes

  • quic-go now requires Go 1.26 or newer: #​5801

Notable Fixes

  • Connections now reject unread CRYPTO data as soon as TLS advances to the next encryption level, instead of waiting until the previous keys are discarded: #​5824
  • http3: servers now reject 0-RTT when their current SETTINGS are incompatible with those stored in the session ticket, preventing early requests from relying on settings the server no longer supports: #​5771
  • http3: requests containing userinfo in :authority are now rejected for HTTP and HTTPS URIs: #​5825
  • http3: request schemes are now normalized to lowercase: #​5826
  • http3: request methods are now validated as HTTP tokens; unknown methods with valid syntax remain accepted: #​5827
  • http3: Host is now used for HTTP and HTTPS requests when :authority is omitted, while conflicting Host and :authority values are rejected: #​5828
  • http3: regular CONNECT requests containing :scheme are now rejected: #​5829
  • http3: requests containing duplicate Host header fields are now rejected: #​5830
  • http3: empty pseudo-header fields are no longer treated as omitted, ensuring duplicate fields and CONNECT requirements are validated correctly: #​5833
  • http3: successful CONNECT responses are no longer transparently gzip-decoded, preserving tunnel data and the Content-Encoding header: #​5834
  • Conn.NextConnection now returns the connection context's error if the connection closes before the handshake completes: #​5764, thanks to @​floating-cat
  • Closing a validated path now retires its connection ID, without racing connection shutdown and panicking: #​5798, #​5823, thanks to @​tlstpierre
  • OpenBSD now requests a supported 2 MiB socket buffer size and correctly verifies the configured size, avoiding ineffective buffer increases and spurious warnings: #​5787, thanks to @​the-sarge

Changelog

New Contributors

Full Changelog: quic-go/quic-go@v0.61.0...v0.62.0


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • 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, check this box

This PR was generated by Mend Renovate. View the repository job log.

@pikachuren pikachuren left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🙏 感谢 @app/renovate 提交!
🤖 AI 自动审核声明:本评审报告由 AI 自动生成,当前使用 Claude Opus 5 模型进行分析。
⚠️ AI 分析结果仅供参考,可能存在误判或遗漏。如您发现任何问题或有不同意见,欢迎随时提出讨论和纠正。
⚠️ 重要提醒:即使 AI 评审认为代码质量良好且建议合并,最终是否合并仍需由项目维护者进行人工判定。项目维护者会综合考虑代码质量、项目规划、技术方向、团队资源等多方面因素做出决策。

🎯 结论

🔄 Request Changes — 上游代码本身安全,但本 PR 同时把 go 1.25.0 提升到 go 1.26.0,需要维护者确认是否接受

📖 概要

fix(deps): update module github.com/quic-go/quic-go to v0.62.0 · Renovate 自动依赖升级。
核心改动:quic-go v0.61.0 → v0.62.0,同时将 go.mod 的 go directive 从 1.25.0 提升到 1.26.0。

🧭 整体方案

版本号提升,无业务代码改动。但 quic-go v0.62.0 要求更高的 Go 版本,Renovate 因此连带修改了 go directive——这一点会影响整个项目的最低 Go 版本要求和 CI 镜像,属于超出「依赖升级」范畴的隐性影响,值得单独确认。

📊 变更统计

2 个文件(+4 / -2 行) | 功能 ⭐⭐⭐⭐ | 最小改动 ⭐⭐⭐ | 前向兼容 ⭐⭐⭐ | 方案设计 ⭐⭐⭐⭐

🚨 关键问题

P0(阻塞合并):无

P1(建议修复):

  • ⚠️ go.mod — go 1.25.0 → go 1.26.0 会抬高整个项目的最低 Go 版本门槛,影响 CI 构建镜像、发行版打包以及下游二次开发者的工具链要求。请问项目当前是否已准备好全面切换到 Go 1.26?如果 CI 里还有固定 1.25 的 job,合并后可能直接构建失败。是否考虑先确认 CI 配置同步、或等 Go 1.26 更稳定后再合入呢?

P2(可选):

  • 💡 建议在 PR 描述中显式标注「本次升级附带 Go 版本要求提升」,避免维护者仅按普通依赖升级处理而忽略这一点~

🔐 依赖安全审查

  • 审查范围:quic-go v0.61.0 → v0.62.0,上游 44 个 commits、120 个文件(+3078/-1201)
  • 审查方式:拉取 quic-go/quic-go 仓库 v0.61.0...v0.62.0 完整 diff,并对生产代码做恶意模式扫描
  • 安全评估:✅ 无恶意代码
  • 详细结论:
    • 未发现 exec.Command / os/exec / 异常 http.Post / net.Dial 回连 / base64 混淆负载 / unsafe.Pointer 滥用
    • 改动主要为协议实现优化、CI workflow 调整(clusterfuzz、govulncheck、cross-compile 等)与测试补充
    • go.mod 新增项仅 github.com/stretchr/testify v1.12.1(测试依赖)与 go.yaml.in/yaml/v3 v3.0.5(indirect),无可疑第三方包
    • 上游为知名活跃项目,有 fuzzing 与 govulncheck 常态化流程

✅ 待处理清单

  • [P1] 确认项目是否接受最低 Go 版本提升到 1.26,并同步检查 CI / Dockerfile / 打包脚本中的 Go 版本
  • [P2] 在 PR 描述中标注 Go 版本要求变更

🎯 结论:🔄 Request Changes — 上游代码安全无虞,但 Go 版本门槛提升需维护者明确确认后再合并。

@renovate
renovate Bot force-pushed the renovate/github.com-quic-go-quic-go-0.x branch 3 times, most recently from 33d1533 to d353ce5 Compare September 7, 2026 17:06
@renovate
renovate Bot force-pushed the renovate/github.com-quic-go-quic-go-0.x branch 2 times, most recently from 798e747 to a1ef821 Compare September 16, 2026 10:06

@pikachuren pikachuren left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🙏 感谢 @app/renovate 提交!
🤖 AI 自动审核声明:本评审报告由 AI 自动生成,当前使用 Claude Opus 5 模型进行分析。
⚠️ AI 分析结果仅供参考,可能存在误判或遗漏。如您发现任何问题或有不同意见,欢迎随时提出讨论和纠正。
⚠️ 重要提醒:即使 AI 评审认为代码质量良好且建议合并,最终是否合并仍需由项目维护者进行人工判定。项目维护者会综合考虑代码质量、项目规划、技术方向、团队资源等多方面因素做出是否合并的决策。

🎯 结论

✅ Approve — 代码质量良好,建议合并

📖 概要

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

📊 评审结果

改动合理,无重大问题发现。代码逻辑清晰,符合项目规范。

🎯 结论:✅ Approve — 建议合并

@renovate renovate Bot changed the title fix(deps): update module github.com/quic-go/quic-go to v0.62.0 fix(deps): update module github.com/quic-go/quic-go to v0.63.0 Sep 22, 2026
@renovate
renovate Bot force-pushed the renovate/github.com-quic-go-quic-go-0.x branch 3 times, most recently from 5808083 to 879e984 Compare September 24, 2026 11:23
@renovate
renovate Bot force-pushed the renovate/github.com-quic-go-quic-go-0.x branch 2 times, most recently from 72a4e32 to ac47884 Compare October 5, 2026 18:39
@renovate renovate Bot changed the title fix(deps): update module github.com/quic-go/quic-go to v0.63.0 fix(deps): update module github.com/quic-go/quic-go to v0.64.0 Oct 16, 2026
@renovate
renovate Bot force-pushed the renovate/github.com-quic-go-quic-go-0.x branch from ac47884 to 5a3ec47 Compare October 16, 2026 05:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant