bump Go version in go.mod, stop testing on Go 1.21 (#4633)

* bump Go version in go.mod, stop testing on Go 1.21

* ci: update golangci-lint to v1.60.1

* ignore Go 1.23 0-RTT events in exhaustive linter
This commit is contained in:
Marten Seemann
2024-08-17 15:30:03 +08:00
committed by GitHub
parent b3811692d9
commit d067fe4156
10 changed files with 21 additions and 16 deletions

View File

@@ -3,7 +3,7 @@ FROM gcr.io/oss-fuzz-base/base-builder-go:v1
ARG TARGETPLATFORM ARG TARGETPLATFORM
RUN echo "TARGETPLATFORM: ${TARGETPLATFORM}" RUN echo "TARGETPLATFORM: ${TARGETPLATFORM}"
ENV GOVERSION=1.22.0 ENV GOVERSION=1.23.0
RUN platform=$(echo ${TARGETPLATFORM} | tr '/' '-') && \ RUN platform=$(echo ${TARGETPLATFORM} | tr '/' '-') && \
filename="go${GOVERSION}.${platform}.tar.gz" && \ filename="go${GOVERSION}.${platform}.tar.gz" && \

View File

@@ -4,7 +4,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
go: [ "1.21.x", "1.22.x" ] go: [ "1.22.x", "1.23.x" ]
runs-on: ${{ fromJSON(vars['CROSS_COMPILE_RUNNER_UBUNTU'] || '"ubuntu-latest"') }} runs-on: ${{ fromJSON(vars['CROSS_COMPILE_RUNNER_UBUNTU'] || '"ubuntu-latest"') }}
name: "Cross Compilation (Go ${{matrix.go}})" name: "Cross Compilation (Go ${{matrix.go}})"
timeout-minutes: 30 timeout-minutes: 30

View File

@@ -6,17 +6,17 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ "ubuntu" ] os: [ "ubuntu" ]
go: [ "1.21.x", "1.22.x", "1.23.0-rc.2" ] go: [ "1.22.x", "1.23.x" ]
race: [ false ] race: [ false ]
include: include:
- os: "ubuntu" - os: "ubuntu"
go: "1.22.x" go: "1.23.x"
race: true race: true
- os: "windows" - os: "windows"
go: "1.21.x" go: "1.23.x"
race: false race: false
- os: "macos" - os: "macos"
go: "1.21.x" go: "1.23.x"
race: false race: false
runs-on: ${{ fromJSON(vars[format('INTEGRATION_RUNNER_{0}', matrix.os)] || format('"{0}-latest"', matrix.os)) }} runs-on: ${{ fromJSON(vars[format('INTEGRATION_RUNNER_{0}', matrix.os)] || format('"{0}-latest"', matrix.os)) }}
timeout-minutes: 30 timeout-minutes: 30

View File

@@ -8,7 +8,7 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: actions/setup-go@v5 - uses: actions/setup-go@v5
with: with:
go-version: "1.22.x" go-version: "1.23.x"
- name: Check that no non-test files import Ginkgo or Gomega - name: Check that no non-test files import Ginkgo or Gomega
run: .github/workflows/no_ginkgo.sh run: .github/workflows/no_ginkgo.sh
- name: Check for //go:build ignore in .go files - name: Check for //go:build ignore in .go files
@@ -39,9 +39,9 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
go: [ "1.21.x", "1.22.x" ] go: [ "1.22.x", "1.23.x" ]
env: env:
GOLANGCI_LINT_VERSION: v1.58.0 GOLANGCI_LINT_VERSION: v1.60.1
name: golangci-lint (Go ${{ matrix.go }}) name: golangci-lint (Go ${{ matrix.go }})
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4

View File

@@ -7,7 +7,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ "ubuntu", "windows", "macos" ] os: [ "ubuntu", "windows", "macos" ]
go: [ "1.21.x", "1.22.x", "1.23.0-rc.2" ] go: [ "1.22.x", "1.23.x" ]
runs-on: ${{ fromJSON(vars[format('UNIT_RUNNER_{0}', matrix.os)] || format('"{0}-latest"', matrix.os)) }} runs-on: ${{ fromJSON(vars[format('UNIT_RUNNER_{0}', matrix.os)] || format('"{0}-latest"', matrix.os)) }}
name: Unit tests (${{ matrix.os}}, Go ${{ matrix.go }}) name: Unit tests (${{ matrix.os}}, Go ${{ matrix.go }})
timeout-minutes: 30 timeout-minutes: 30

2
go.mod
View File

@@ -1,6 +1,6 @@
module github.com/quic-go/quic-go module github.com/quic-go/quic-go
go 1.21 go 1.22
require ( require (
github.com/francoispqt/gojay v1.2.13 github.com/francoispqt/gojay v1.2.13

View File

@@ -1,6 +1,8 @@
module test module test
go 1.21 go 1.22
toolchain go1.22.4
// The version doesn't matter here, as we're replacing it with the currently checked out code anyway. // The version doesn't matter here, as we're replacing it with the currently checked out code anyway.
require github.com/quic-go/quic-go v0.21.0 require github.com/quic-go/quic-go v0.21.0

View File

@@ -229,6 +229,9 @@ func (h *cryptoSetup) handleMessage(data []byte, encLevel protocol.EncryptionLev
} }
func (h *cryptoSetup) handleEvent(ev tls.QUICEvent) (done bool, err error) { func (h *cryptoSetup) handleEvent(ev tls.QUICEvent) (done bool, err error) {
//nolint:exhaustive
// Go 1.23 added new 0-RTT events, see https://github.com/quic-go/quic-go/issues/4272.
// We will start using these events when dropping support for Go 1.22.
switch ev.Kind { switch ev.Kind {
case tls.QUICNoEvent: case tls.QUICNoEvent:
return true, nil return true, nil

View File

@@ -5,7 +5,7 @@ RUN echo "TARGETPLATFORM: ${TARGETPLATFORM}"
RUN apt-get update && apt-get install -y wget tar git RUN apt-get update && apt-get install -y wget tar git
ENV GOVERSION=1.22.0 ENV GOVERSION=1.23.0
RUN platform=$(echo ${TARGETPLATFORM} | tr '/' '-') && \ RUN platform=$(echo ${TARGETPLATFORM} | tr '/' '-') && \
filename="go${GOVERSION}.${platform}.tar.gz" && \ filename="go${GOVERSION}.${platform}.tar.gz" && \

View File

@@ -3,12 +3,12 @@
# Install Go manually, since oss-fuzz ships with an outdated Go version. # Install Go manually, since oss-fuzz ships with an outdated Go version.
# See https://github.com/google/oss-fuzz/pull/10643. # See https://github.com/google/oss-fuzz/pull/10643.
export CXX="${CXX} -lresolv" # required by Go 1.20 export CXX="${CXX} -lresolv" # required by Go 1.20
wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz \ wget https://go.dev/dl/go1.23.0.linux-amd64.tar.gz \
&& mkdir temp-go \ && mkdir temp-go \
&& rm -rf /root/.go/* \ && rm -rf /root/.go/* \
&& tar -C temp-go/ -xzf go1.22.0.linux-amd64.tar.gz \ && tar -C temp-go/ -xzf go1.23.0.linux-amd64.tar.gz \
&& mv temp-go/go/* /root/.go/ \ && mv temp-go/go/* /root/.go/ \
&& rm -rf temp-go go1.22.0.linux-amd64.tar.gz && rm -rf temp-go go1.23.0.linux-amd64.tar.gz
( (
# fuzz qpack # fuzz qpack