aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMarten Seemann <[email protected]>2023-07-21 21:00:48 -0700
committerGitHub <[email protected]>2023-07-21 22:00:48 -0600
commitf45a6de20dd19e82e58c85b37e03957b2203b544 (patch)
treecc8152b73fd31c09111dfb0034960a0c20d6ff67
parentb51dc5d5d0b8764165170af1f54b77d6de8cb5a1 (diff)
downloadcaddy-f45a6de20dd19e82e58c85b37e03957b2203b544.tar.gz
caddy-f45a6de20dd19e82e58c85b37e03957b2203b544.zip
go.mod: Update quic-go to v0.37.0, bump to Go 1.20 minimum (#5644)
* update quic-go to v0.37.0 * Bump to Go 1.20 * Bump golangci-lint version, yml syntax consistency * Use skip-pkg-cache workaround * Workaround needed for both? * Seeding weakrand is no longer necessary --------- Co-authored-by: Matt Holt <[email protected]> Co-authored-by: Francis Lavoie <[email protected]>
-rw-r--r--.github/workflows/ci.yml17
-rw-r--r--.github/workflows/cross-build.yml18
-rw-r--r--.github/workflows/lint.yml17
-rw-r--r--.github/workflows/release.yml8
-rw-r--r--.github/workflows/release_published.yml3
-rw-r--r--README.md2
-rw-r--r--go.mod7
-rw-r--r--go.sum10
-rw-r--r--modules/caddyhttp/caddyauth/basicauth.go3
-rw-r--r--modules/caddyhttp/errors.go5
-rw-r--r--modules/caddyhttp/fileserver/staticfiles.go3
-rw-r--r--modules/caddyhttp/reverseproxy/reverseproxy.go39
-rw-r--r--modules/caddyhttp/reverseproxy/selectionpolicies.go3
13 files changed, 70 insertions, 65 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6948db06e..3ab72421d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -18,17 +18,22 @@ jobs:
# Default is true, cancels jobs for other platforms in the matrix if one fails
fail-fast: false
matrix:
- os: [ ubuntu-latest, macos-latest, windows-latest ]
- go: [ '1.19', '1.20' ]
+ os:
+ - ubuntu-latest
+ - macos-latest
+ - windows-latest
+ go:
+ - '1.20'
+ # - '1.21'
include:
# Set the minimum Go patch version for the given Go minor
# Usable via ${{ matrix.GO_SEMVER }}
- - go: '1.19'
- GO_SEMVER: '~1.19.6'
-
- go: '1.20'
- GO_SEMVER: '~1.20.1'
+ GO_SEMVER: '~1.20.6'
+
+ # - go: '1.21'
+ # GO_SEMVER: '~1.21.0'
# Set some variables per OS, usable via ${{ matrix.VAR }}
# CADDY_BIN_PATH: the path to the compiled Caddy binary, for artifact publishing
diff --git a/.github/workflows/cross-build.yml b/.github/workflows/cross-build.yml
index 48e9b1867..4d04cfa7d 100644
--- a/.github/workflows/cross-build.yml
+++ b/.github/workflows/cross-build.yml
@@ -15,14 +15,26 @@ jobs:
strategy:
fail-fast: false
matrix:
- goos: ['android', 'linux', 'solaris', 'illumos', 'dragonfly', 'freebsd', 'openbsd', 'plan9', 'windows', 'darwin', 'netbsd']
- go: [ '1.20' ]
+ goos:
+ - 'android'
+ - 'linux'
+ - 'solaris'
+ - 'illumos'
+ - 'dragonfly'
+ - 'freebsd'
+ - 'openbsd'
+ - 'plan9'
+ - 'windows'
+ - 'darwin'
+ - 'netbsd'
+ go:
+ - '1.20'
include:
# Set the minimum Go patch version for the given Go minor
# Usable via ${{ matrix.GO_SEMVER }}
- go: '1.20'
- GO_SEMVER: '~1.20.1'
+ GO_SEMVER: '~1.20.6'
runs-on: ubuntu-latest
continue-on-error: true
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 951b74631..964e48f06 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -22,20 +22,31 @@ jobs:
name: lint
strategy:
matrix:
- os: [ubuntu-latest, macos-latest, windows-latest]
+ os:
+ - ubuntu-latest
+ - macos-latest
+ - windows-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
- go-version: '~1.19.6'
+ go-version: '~1.20.6'
check-latest: true
+ # Workaround for https://github.com/golangci/golangci-lint-action/issues/135
+ skip-pkg-cache: true
+
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
- version: v1.50
+ version: v1.53
+
+ # Workaround for https://github.com/golangci/golangci-lint-action/issues/135
+ skip-pkg-cache: true
+
# Windows times out frequently after about 5m50s if we don't set a longer timeout.
args: --timeout 10m
+
# Optional: show only new issues if it's a pull request. The default value is `false`.
# only-new-issues: true
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index e8c332df0..38307611f 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -10,14 +10,16 @@ jobs:
name: Release
strategy:
matrix:
- os: [ ubuntu-latest ]
- go: [ '1.20' ]
+ os:
+ - ubuntu-latest
+ go:
+ - '1.20'
include:
# Set the minimum Go patch version for the given Go minor
# Usable via ${{ matrix.GO_SEMVER }}
- go: '1.20'
- GO_SEMVER: '~1.20.1'
+ GO_SEMVER: '~1.20.6'
runs-on: ${{ matrix.os }}
# https://github.com/sigstore/cosign/issues/1258#issuecomment-1002251233
diff --git a/.github/workflows/release_published.yml b/.github/workflows/release_published.yml
index 7736e852c..f304888e8 100644
--- a/.github/workflows/release_published.yml
+++ b/.github/workflows/release_published.yml
@@ -10,7 +10,8 @@ jobs:
name: Release Published
strategy:
matrix:
- os: [ ubuntu-latest ]
+ os:
+ - ubuntu-latest
runs-on: ${{ matrix.os }}
steps:
diff --git a/README.md b/README.md
index 5e96a6c0e..6dd046887 100644
--- a/README.md
+++ b/README.md
@@ -87,7 +87,7 @@ See [our online documentation](https://caddyserver.com/docs/install) for other i
Requirements:
-- [Go 1.19 or newer](https://golang.org/dl/)
+- [Go 1.20 or newer](https://golang.org/dl/)
### For development
diff --git a/go.mod b/go.mod
index 6843018a5..6cacef5e2 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
module github.com/caddyserver/caddy/v2
-go 1.19
+go 1.20
require (
github.com/BurntSushi/toml v1.3.2
@@ -17,7 +17,7 @@ require (
github.com/mastercactapus/proxyprotocol v0.0.4
github.com/mholt/acmez v1.2.0
github.com/prometheus/client_golang v1.14.0
- github.com/quic-go/quic-go v0.36.2
+ github.com/quic-go/quic-go v0.37.0
github.com/smallstep/certificates v0.24.2
github.com/smallstep/nosql v0.6.0
github.com/smallstep/truststore v0.12.1
@@ -57,8 +57,7 @@ require (
github.com/onsi/ginkgo/v2 v2.9.5 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/quic-go/qpack v0.4.0 // indirect
- github.com/quic-go/qtls-go1-19 v0.3.2 // indirect
- github.com/quic-go/qtls-go1-20 v0.2.2 // indirect
+ github.com/quic-go/qtls-go1-20 v0.3.0 // indirect
github.com/smallstep/go-attestation v0.4.4-0.20230509120429-e17291421738 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/zeebo/blake3 v0.2.3 // indirect
diff --git a/go.sum b/go.sum
index 5d304bada..bbc5f942b 100644
--- a/go.sum
+++ b/go.sum
@@ -862,12 +862,10 @@ github.com/pseudomuto/protoc-gen-doc v1.5.0/go.mod h1:exDTOVwqpp30eV/EDPFLZy3Pwr
github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q=
github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo=
github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A=
-github.com/quic-go/qtls-go1-19 v0.3.2 h1:tFxjCFcTQzK+oMxG6Zcvp4Dq8dx4yD3dDiIiyc86Z5U=
-github.com/quic-go/qtls-go1-19 v0.3.2/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI=
-github.com/quic-go/qtls-go1-20 v0.2.2 h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E=
-github.com/quic-go/qtls-go1-20 v0.2.2/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM=
-github.com/quic-go/quic-go v0.36.2 h1:ZX/UNQ4gvpCv2RmwdbA6lrRjF6EBm5yZ7TMoT4NQVrA=
-github.com/quic-go/quic-go v0.36.2/go.mod h1:zPetvwDlILVxt15n3hr3Gf/I3mDf7LpLKPhR4Ez0AZQ=
+github.com/quic-go/qtls-go1-20 v0.3.0 h1:NrCXmDl8BddZwO67vlvEpBTwT89bJfKYygxv4HQvuDk=
+github.com/quic-go/qtls-go1-20 v0.3.0/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k=
+github.com/quic-go/quic-go v0.37.0 h1:wf/Ym2yeWi98oQn4ahiBSqdnaXVxNQGj2oBQFgiVChc=
+github.com/quic-go/quic-go v0.37.0/go.mod h1:XtCUOCALTTWbPyd0IxFfHf6h0sEMubRFvEYHl3QxKw8=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
diff --git a/modules/caddyhttp/caddyauth/basicauth.go b/modules/caddyhttp/caddyauth/basicauth.go
index f515a72c6..6cd38a577 100644
--- a/modules/caddyhttp/caddyauth/basicauth.go
+++ b/modules/caddyhttp/caddyauth/basicauth.go
@@ -23,7 +23,6 @@ import (
"net/http"
"strings"
"sync"
- "time"
"github.com/caddyserver/caddy/v2"
"golang.org/x/sync/singleflight"
@@ -31,8 +30,6 @@ import (
func init() {
caddy.RegisterModule(HTTPBasicAuth{})
-
- weakrand.Seed(time.Now().UnixNano())
}
// HTTPBasicAuth facilitates HTTP basic authentication.
diff --git a/modules/caddyhttp/errors.go b/modules/caddyhttp/errors.go
index 9d1cf470b..1538d4350 100644
--- a/modules/caddyhttp/errors.go
+++ b/modules/caddyhttp/errors.go
@@ -20,15 +20,10 @@ import (
"path"
"runtime"
"strings"
- "time"
"github.com/caddyserver/caddy/v2"
)
-func init() {
- weakrand.Seed(time.Now().UnixNano())
-}
-
// Error is a convenient way for a Handler to populate the
// essential fields of a HandlerError. If err is itself a
// HandlerError, then any essential fields that are not
diff --git a/modules/caddyhttp/fileserver/staticfiles.go b/modules/caddyhttp/fileserver/staticfiles.go
index f335d314f..3261093d9 100644
--- a/modules/caddyhttp/fileserver/staticfiles.go
+++ b/modules/caddyhttp/fileserver/staticfiles.go
@@ -29,7 +29,6 @@ import (
"runtime"
"strconv"
"strings"
- "time"
"github.com/caddyserver/caddy/v2"
"github.com/caddyserver/caddy/v2/modules/caddyhttp"
@@ -38,8 +37,6 @@ import (
)
func init() {
- weakrand.Seed(time.Now().UnixNano())
-
caddy.RegisterModule(FileServer{})
}
diff --git a/modules/caddyhttp/reverseproxy/reverseproxy.go b/modules/caddyhttp/reverseproxy/reverseproxy.go
index 2fd0aaee7..d1c935217 100644
--- a/modules/caddyhttp/reverseproxy/reverseproxy.go
+++ b/modules/caddyhttp/reverseproxy/reverseproxy.go
@@ -27,7 +27,6 @@ import (
"net/netip"
"net/textproto"
"net/url"
- "runtime"
"strconv"
"strings"
"sync"
@@ -43,13 +42,7 @@ import (
"golang.org/x/net/http/httpguts"
)
-var supports1xx bool
-
func init() {
- // Caddy requires at least Go 1.18, but Early Hints requires Go 1.19; thus we can simply check for 1.18 in version string
- // TODO: remove this once our minimum Go version is 1.19
- supports1xx = !strings.Contains(runtime.Version(), "go1.18")
-
caddy.RegisterModule(Handler{})
}
@@ -752,25 +745,23 @@ func (h *Handler) reverseProxy(rw http.ResponseWriter, req *http.Request, origRe
server := req.Context().Value(caddyhttp.ServerCtxKey).(*caddyhttp.Server)
shouldLogCredentials := server.Logs != nil && server.Logs.ShouldLogCredentials
- if supports1xx {
- // Forward 1xx status codes, backported from https://github.com/golang/go/pull/53164
- trace := &httptrace.ClientTrace{
- Got1xxResponse: func(code int, header textproto.MIMEHeader) error {
- h := rw.Header()
- copyHeader(h, http.Header(header))
- rw.WriteHeader(code)
-
- // Clear headers coming from the backend
- // (it's not automatically done by ResponseWriter.WriteHeader() for 1xx responses)
- for k := range header {
- delete(h, k)
- }
+ // Forward 1xx status codes, backported from https://github.com/golang/go/pull/53164
+ trace := &httptrace.ClientTrace{
+ Got1xxResponse: func(code int, header textproto.MIMEHeader) error {
+ h := rw.Header()
+ copyHeader(h, http.Header(header))
+ rw.WriteHeader(code)
+
+ // Clear headers coming from the backend
+ // (it's not automatically done by ResponseWriter.WriteHeader() for 1xx responses)
+ for k := range header {
+ delete(h, k)
+ }
- return nil
- },
- }
- req = req.WithContext(httptrace.WithClientTrace(req.Context(), trace))
+ return nil
+ },
}
+ req = req.WithContext(httptrace.WithClientTrace(req.Context(), trace))
// if FlushInterval is explicitly configured to -1 (i.e. flush continuously to achieve
// low-latency streaming), don't let the transport cancel the request if the client
diff --git a/modules/caddyhttp/reverseproxy/selectionpolicies.go b/modules/caddyhttp/reverseproxy/selectionpolicies.go
index f89c48f7d..bc6de3516 100644
--- a/modules/caddyhttp/reverseproxy/selectionpolicies.go
+++ b/modules/caddyhttp/reverseproxy/selectionpolicies.go
@@ -27,7 +27,6 @@ import (
"strconv"
"strings"
"sync/atomic"
- "time"
"github.com/caddyserver/caddy/v2"
"github.com/caddyserver/caddy/v2/caddyconfig"
@@ -48,8 +47,6 @@ func init() {
caddy.RegisterModule(QueryHashSelection{})
caddy.RegisterModule(HeaderHashSelection{})
caddy.RegisterModule(CookieHashSelection{})
-
- weakrand.Seed(time.Now().UTC().UnixNano())
}
// RandomSelection is a policy that selects