go.toolchain.branch: switch to Go 1.27

Promote the toolchain from Go 1.26.6 to Go 1.27.0, matching what
go.toolchain.next.rev has been testing. Besides the toolchain files
themselves (updated by pull-toolchain.sh), this bumps the go.mod go
directive, the Dockerfile golang base image, and the README, and
regenerates the depaware.txt files and the gzip assets in
tempfork/spf13/cobra and util/eventbus, whose bytes change with
Go 1.27's rewritten compress/flate.

Also bump golangci-lint to v2.13.1, the first release line built
with Go 1.27; the prebuilt v2.10.1 binary refuses to target a Go
version newer than the one it was built with.

Also bump golang.org/x/net to v0.58.0 (plus the sibling x/ module
upgrades it requires) to pick up upstream commit 8d10596d2624
(http2: avoid deadlocks in wrapped ClientConn state callback),
which we hit during Go 1.27 rc testing.

Also add docs/go-bump-checklist.md for next time.

Updates #20220

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Change-Id: Ia3e4c9effafbc91227eed39efb52f1fba1b8d89c
This commit is contained in:
Brad Fitzpatrick authored and Brad Fitzpatrick committed 2026-08-27 09:52:15 -07:00
1 parent 37317073ba
commit faa10ddaaa
24 files changed
+274 -113

No files matched your search

+1 -1
View File
@@ -37,7 +37,7 @@ jobs:
- name: golangci-lint
uses: golangci/golangci-lint-action@b7bcab6379029e905e3f389a6bf301f1bc220662 # head as of 2026-03-04
with:
version: v2.10.1
version: v2.13.1
# Show only new issues if it's a pull request.
only-new-issues: true
+1 -1
View File
@@ -36,7 +36,7 @@
# $ docker exec tailscaled tailscale status
FROM golang:1.26-alpine AS build-env
FROM golang:1.27-alpine AS build-env
WORKDIR /go/src/tailscale
+1 -1
View File
@@ -37,7 +37,7 @@ not open source.
## Building
We always require the latest Go release, currently Go 1.26. (While we build
We always require the latest Go release, currently Go 1.27. (While we build
releases with our [Go fork](https://github.com/tailscale/go/), its use is not
required.)
+18 -12
View File
@@ -14,11 +14,7 @@ tailscale.com/cmd/derper dependencies: (generated by github.com/tailscale/depawa
github.com/dgryski/go-metro from github.com/axiomhq/hyperloglog
github.com/fxamacker/cbor/v2 from tailscale.com/tka
github.com/go-json-experiment/json from tailscale.com/types/opt+
github.com/go-json-experiment/json/internal from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonflags from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonopts from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonwire from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from tailscale.com/drive+
github.com/go-json-experiment/json/v1 from tailscale.com/net/routecheck+
💣 github.com/go4org/hashtriemap from tailscale.com/derp/derpserver
github.com/golang/groupcache/lru from tailscale.com/net/dnscache
@@ -221,7 +217,7 @@ tailscale.com/cmd/derper dependencies: (generated by github.com/tailscale/depawa
vendor/golang.org/x/net/dns/dnsmessage from net
vendor/golang.org/x/net/http/httpguts from net/http+
vendor/golang.org/x/net/http/httpproxy from net/http
vendor/golang.org/x/net/http2/hpack from net/http+
vendor/golang.org/x/net/http2/hpack from net/http/internal/http2+
vendor/golang.org/x/net/idna from net/http+
vendor/golang.org/x/sys/cpu from vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/text/secure/bidirule from vendor/golang.org/x/net/idna
@@ -266,6 +262,7 @@ tailscale.com/cmd/derper dependencies: (generated by github.com/tailscale/depawa
crypto/internal/fips140/edwards25519/field from crypto/ecdh+
crypto/internal/fips140/hkdf from crypto/hkdf+
crypto/internal/fips140/hmac from crypto/hmac+
crypto/internal/fips140/mldsa from crypto/mldsa
crypto/internal/fips140/mlkem from crypto/mlkem
crypto/internal/fips140/nistec from crypto/ecdsa+
crypto/internal/fips140/nistec/fiat from crypto/internal/fips140/nistec
@@ -288,6 +285,7 @@ tailscale.com/cmd/derper dependencies: (generated by github.com/tailscale/depawa
crypto/internal/randutil from crypto/internal/rand
crypto/internal/sysrand from crypto/internal/fips140/drbg
crypto/md5 from crypto/tls+
crypto/mldsa from crypto/tls+
crypto/mlkem from crypto/hpke+
crypto/rand from crypto/ed25519+
crypto/rc4 from crypto/tls
@@ -306,10 +304,16 @@ tailscale.com/cmd/derper dependencies: (generated by github.com/tailscale/depawa
encoding from encoding/json+
encoding/asn1 from crypto/x509+
encoding/base32 from github.com/fxamacker/cbor/v2+
encoding/base64 from encoding/json+
encoding/base64 from encoding/json/v2+
encoding/binary from compress/gzip+
encoding/hex from crypto/x509+
encoding/json from expvar+
encoding/json/internal from encoding/json+
encoding/json/internal/jsonflags from encoding/json+
encoding/json/internal/jsonopts from encoding/json+
encoding/json/internal/jsonwire from encoding/json+
encoding/json/jsontext from encoding/json+
encoding/json/v2 from encoding/json+
encoding/pem from crypto/tls+
errors from bufio+
expvar from github.com/prometheus/client_golang/prometheus+
@@ -335,7 +339,7 @@ tailscale.com/cmd/derper dependencies: (generated by github.com/tailscale/depawa
internal/goarch from crypto/internal/fips140deps/cpu+
internal/godebug from crypto/ed25519+
internal/godebugs from internal/godebug+
internal/goexperiment from net/http/pprof+
internal/goexperiment from internal/runtime/maps+
internal/goos from crypto/x509+
internal/msan from internal/runtime/maps+
internal/nettrace from net+
@@ -384,14 +388,16 @@ tailscale.com/cmd/derper dependencies: (generated by github.com/tailscale/depawa
math/rand from github.com/mdlayher/netlink+
math/rand/v2 from crypto/ecdsa+
mime from github.com/prometheus/common/expfmt+
mime/multipart from net/http
mime/multipart from net/http+
mime/quotedprintable from mime/multipart
net from crypto/tls+
net/http from expvar+
net/http/httptrace from net/http+
net/http/internal from net/http
net/http/internal from net/http+
net/http/internal/ascii from net/http
net/http/internal/httpcommon from net/http
net/http/internal/http2 from net/http
net/http/internal/httpcommon from net/http/internal/http2
net/http/internal/httpsfv from net/http/internal/http2
net/http/pprof from tailscale.com/tsweb
net/netip from go4.org/netipx+
net/textproto from github.com/coder/websocket+
@@ -411,7 +417,7 @@ tailscale.com/cmd/derper dependencies: (generated by github.com/tailscale/depawa
runtime/pprof from net/http/pprof
runtime/trace from net/http/pprof
slices from tailscale.com/ipn/ipnstate+
sort from compress/flate+
sort from crypto/tls+
strconv from compress/flate+
strings from bufio+
W structs from internal/syscall/windows
+17 -10
View File
@@ -36,10 +36,6 @@ tailscale.com/cmd/k8s-operator dependencies: (generated by github.com/tailscale/
github.com/gaissmai/bart/internal/sparse from github.com/gaissmai/bart/internal/nodes
github.com/gaissmai/bart/internal/value from github.com/gaissmai/bart+
github.com/go-json-experiment/json from tailscale.com/types/opt+
github.com/go-json-experiment/json/internal from github.com/go-json-experiment/json/internal/jsonflags+
github.com/go-json-experiment/json/internal/jsonflags from github.com/go-json-experiment/json/internal/jsonopts+
github.com/go-json-experiment/json/internal/jsonopts from github.com/go-json-experiment/json/jsontext+
github.com/go-json-experiment/json/internal/jsonwire from github.com/go-json-experiment/json/jsontext+
github.com/go-json-experiment/json/jsontext from tailscale.com/logtail+
github.com/go-json-experiment/json/v1 from tailscale.com/net/routecheck+
github.com/go-logr/logr from github.com/go-logr/logr/slogr+
@@ -1003,7 +999,7 @@ tailscale.com/cmd/k8s-operator dependencies: (generated by github.com/tailscale/
vendor/golang.org/x/net/dns/dnsmessage from net
vendor/golang.org/x/net/http/httpguts from net/http+
vendor/golang.org/x/net/http/httpproxy from net/http
vendor/golang.org/x/net/http2/hpack from net/http+
vendor/golang.org/x/net/http2/hpack from net/http/internal/http2+
vendor/golang.org/x/net/idna from net/http+
vendor/golang.org/x/sys/cpu from vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/text/secure/bidirule from vendor/golang.org/x/net/idna
@@ -1050,6 +1046,7 @@ tailscale.com/cmd/k8s-operator dependencies: (generated by github.com/tailscale/
crypto/internal/fips140/edwards25519/field from crypto/ecdh+
crypto/internal/fips140/hkdf from crypto/internal/fips140/tls13+
crypto/internal/fips140/hmac from crypto/hmac+
crypto/internal/fips140/mldsa from crypto/mldsa
crypto/internal/fips140/mlkem from crypto/mlkem
crypto/internal/fips140/nistec from crypto/elliptic+
crypto/internal/fips140/nistec/fiat from crypto/internal/fips140/nistec
@@ -1072,6 +1069,7 @@ tailscale.com/cmd/k8s-operator dependencies: (generated by github.com/tailscale/
crypto/internal/randutil from crypto/internal/rand
crypto/internal/sysrand from crypto/internal/fips140/drbg
crypto/md5 from crypto/tls+
crypto/mldsa from crypto/tls+
crypto/mlkem from crypto/hpke+
crypto/rand from crypto/ed25519+
crypto/rc4 from crypto/tls
@@ -1088,17 +1086,24 @@ tailscale.com/cmd/k8s-operator dependencies: (generated by github.com/tailscale/
crypto/x509/pkix from crypto/x509+
database/sql from github.com/prometheus/client_golang/prometheus/collectors
database/sql/driver from database/sql+
database/sql/internal from database/sql+
W debug/dwarf from debug/pe
W debug/pe from github.com/dblohm7/wingoes/pe
embed from github.com/tailscale/web-client-prebuilt+
encoding from encoding/json+
encoding/asn1 from crypto/x509+
encoding/base32 from github.com/fxamacker/cbor/v2+
encoding/base64 from encoding/json+
encoding/base64 from encoding/json/v2+
encoding/binary from compress/gzip+
encoding/csv from github.com/spf13/pflag
encoding/hex from crypto/x509+
encoding/json from expvar+
encoding/json/internal from encoding/json+
encoding/json/internal/jsonflags from encoding/json+
encoding/json/internal/jsonopts from encoding/json+
encoding/json/internal/jsonwire from encoding/json+
encoding/json/jsontext from encoding/json+
encoding/json/v2 from encoding/json+
encoding/pem from crypto/tls+
encoding/xml from github.com/emicklei/go-restful/v3+
errors from bufio+
@@ -1109,7 +1114,6 @@ tailscale.com/cmd/k8s-operator dependencies: (generated by github.com/tailscale/
go/build/constraint from go/parser
go/doc from k8s.io/apimachinery/pkg/runtime
go/doc/comment from go/doc
go/internal/scannerhooks from go/parser+
go/parser from k8s.io/apimachinery/pkg/runtime
go/scanner from go/ast+
go/token from go/ast+
@@ -1133,7 +1137,7 @@ tailscale.com/cmd/k8s-operator dependencies: (generated by github.com/tailscale/
internal/goarch from crypto/internal/fips140deps/cpu+
internal/godebug from crypto/internal/fips140deps/godebug+
internal/godebugs from internal/godebug+
internal/goexperiment from net/http/pprof+
internal/goexperiment from internal/runtime/maps+
internal/goos from crypto/x509+
internal/lazyregexp from go/doc
internal/msan from internal/runtime/maps+
@@ -1194,7 +1198,9 @@ tailscale.com/cmd/k8s-operator dependencies: (generated by github.com/tailscale/
net/http/httputil from tailscale.com/client/web+
net/http/internal from net/http+
net/http/internal/ascii from net/http+
net/http/internal/httpcommon from net/http
net/http/internal/http2 from net/http
net/http/internal/httpcommon from net/http/internal/http2
net/http/internal/httpsfv from net/http/internal/http2
net/http/pprof from sigs.k8s.io/controller-runtime/pkg/manager+
net/netip from github.com/gaissmai/bart+
net/textproto from github.com/coder/websocket+
@@ -1214,7 +1220,7 @@ tailscale.com/cmd/k8s-operator dependencies: (generated by github.com/tailscale/
runtime/pprof from net/http/pprof+
runtime/trace from net/http/pprof
slices from encoding/base32+
sort from compress/flate+
sort from container/heap+
strconv from compress/flate+
strings from bufio+
W structs from internal/syscall/windows
@@ -1230,4 +1236,5 @@ tailscale.com/cmd/k8s-operator dependencies: (generated by github.com/tailscale/
unicode/utf8 from bufio+
unique from net/netip
unsafe from bytes+
uuid from database/sql+
weak from unique+
+19 -13
View File
@@ -4,11 +4,7 @@ tailscale.com/cmd/stund dependencies: (generated by github.com/tailscale/depawar
github.com/beorn7/perks/quantile from github.com/prometheus/client_golang/prometheus
💣 github.com/cespare/xxhash/v2 from github.com/prometheus/client_golang/prometheus
github.com/go-json-experiment/json from tailscale.com/types/opt+
github.com/go-json-experiment/json/internal from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonflags from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonopts from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonwire from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from tailscale.com/tailcfg+
github.com/go-json-experiment/json/v1 from tailscale.com/types/logger
github.com/munnerz/goautoneg from github.com/prometheus/common/expfmt
💣 github.com/prometheus/client_golang/prometheus from tailscale.com/tsweb/promvarz
@@ -113,7 +109,7 @@ tailscale.com/cmd/stund dependencies: (generated by github.com/tailscale/depawar
vendor/golang.org/x/net/dns/dnsmessage from net
vendor/golang.org/x/net/http/httpguts from net/http+
vendor/golang.org/x/net/http/httpproxy from net/http
vendor/golang.org/x/net/http2/hpack from net/http+
vendor/golang.org/x/net/http2/hpack from net/http/internal/http2+
vendor/golang.org/x/net/idna from net/http+
vendor/golang.org/x/sys/cpu from vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/text/secure/bidirule from vendor/golang.org/x/net/idna
@@ -158,6 +154,7 @@ tailscale.com/cmd/stund dependencies: (generated by github.com/tailscale/depawar
crypto/internal/fips140/edwards25519/field from crypto/ecdh+
crypto/internal/fips140/hkdf from crypto/hkdf+
crypto/internal/fips140/hmac from crypto/hmac+
crypto/internal/fips140/mldsa from crypto/mldsa
crypto/internal/fips140/mlkem from crypto/mlkem
crypto/internal/fips140/nistec from crypto/ecdsa+
crypto/internal/fips140/nistec/fiat from crypto/internal/fips140/nistec
@@ -180,6 +177,7 @@ tailscale.com/cmd/stund dependencies: (generated by github.com/tailscale/depawar
crypto/internal/randutil from crypto/internal/rand
crypto/internal/sysrand from crypto/internal/fips140/drbg
crypto/md5 from crypto/tls+
crypto/mldsa from crypto/tls+
crypto/mlkem from crypto/hpke+
crypto/rand from crypto/ed25519+
crypto/rc4 from crypto/tls
@@ -197,11 +195,17 @@ tailscale.com/cmd/stund dependencies: (generated by github.com/tailscale/depawar
embed from google.golang.org/protobuf/internal/editiondefaults+
encoding from encoding/json+
encoding/asn1 from crypto/x509+
encoding/base32 from github.com/go-json-experiment/json
encoding/base64 from encoding/json+
encoding/base32 from encoding/json/v2
encoding/base64 from encoding/json/v2+
encoding/binary from compress/gzip+
encoding/hex from crypto/x509+
encoding/json from expvar+
encoding/json/internal from encoding/json+
encoding/json/internal/jsonflags from encoding/json+
encoding/json/internal/jsonopts from encoding/json+
encoding/json/internal/jsonwire from encoding/json+
encoding/json/jsontext from encoding/json+
encoding/json/v2 from encoding/json+
encoding/pem from crypto/tls+
errors from bufio+
expvar from github.com/prometheus/client_golang/prometheus+
@@ -226,7 +230,7 @@ tailscale.com/cmd/stund dependencies: (generated by github.com/tailscale/depawar
internal/goarch from crypto/internal/fips140deps/cpu+
internal/godebug from crypto/ed25519+
internal/godebugs from internal/godebug+
internal/goexperiment from net/http/pprof+
internal/goexperiment from internal/runtime/maps+
internal/goos from crypto/x509+
internal/msan from internal/runtime/maps+
internal/nettrace from net+
@@ -274,14 +278,16 @@ tailscale.com/cmd/stund dependencies: (generated by github.com/tailscale/depawar
math/rand from math/big+
math/rand/v2 from crypto/ecdsa+
mime from github.com/prometheus/common/expfmt+
mime/multipart from net/http
mime/multipart from net/http+
mime/quotedprintable from mime/multipart
net from crypto/tls+
net/http from expvar+
net/http/httptrace from net/http+
net/http/internal from net/http
net/http/internal from net/http+
net/http/internal/ascii from net/http
net/http/internal/httpcommon from net/http
net/http/internal/http2 from net/http
net/http/internal/httpcommon from net/http/internal/http2
net/http/internal/httpsfv from net/http/internal/http2
net/http/pprof from tailscale.com/tsweb
net/netip from go4.org/netipx+
net/textproto from mime/multipart+
@@ -299,7 +305,7 @@ tailscale.com/cmd/stund dependencies: (generated by github.com/tailscale/depawar
runtime/pprof from net/http/pprof
runtime/trace from net/http/pprof
slices from tailscale.com/metrics+
sort from compress/flate+
sort from crypto/tls+
strconv from compress/flate+
strings from bufio+
W structs from internal/syscall/windows
+19 -11
View File
@@ -120,11 +120,7 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
github.com/gaissmai/bart/internal/sparse from github.com/gaissmai/bart/internal/nodes
github.com/gaissmai/bart/internal/value from github.com/gaissmai/bart+
github.com/go-json-experiment/json from tailscale.com/types/opt+
github.com/go-json-experiment/json/internal from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonflags from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonopts from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonwire from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from tailscale.com/cmd/tailscale/cli+
github.com/go-json-experiment/json/v1 from tailscale.com/net/routecheck+
L 💣 github.com/godbus/dbus/v5 from fyne.io/systray+
L github.com/godbus/dbus/v5/introspect from fyne.io/systray+
@@ -393,7 +389,7 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
vendor/golang.org/x/net/dns/dnsmessage from net
vendor/golang.org/x/net/http/httpguts from net/http+
vendor/golang.org/x/net/http/httpproxy from net/http
vendor/golang.org/x/net/http2/hpack from net/http+
vendor/golang.org/x/net/http2/hpack from net/http/internal/http2+
vendor/golang.org/x/net/idna from net/http+
vendor/golang.org/x/sys/cpu from vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/text/secure/bidirule from vendor/golang.org/x/net/idna
@@ -441,6 +437,7 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
crypto/internal/fips140/edwards25519/field from crypto/ecdh+
crypto/internal/fips140/hkdf from crypto/hkdf+
crypto/internal/fips140/hmac from crypto/hmac+
crypto/internal/fips140/mldsa from crypto/mldsa
crypto/internal/fips140/mlkem from crypto/mlkem
crypto/internal/fips140/nistec from crypto/ecdsa+
crypto/internal/fips140/nistec/fiat from crypto/internal/fips140/nistec
@@ -464,6 +461,7 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
crypto/internal/randutil from crypto/internal/rand
crypto/internal/sysrand from crypto/internal/fips140/drbg
crypto/md5 from crypto/tls+
crypto/mldsa from crypto/tls+
crypto/mlkem from crypto/hpke+
crypto/pbkdf2 from golang.org/x/crypto/pbkdf2
crypto/rand from crypto/ed25519+
@@ -480,16 +478,23 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
D crypto/x509/internal/macos from crypto/x509
crypto/x509/pkix from crypto/x509+
database/sql/driver from github.com/google/uuid
database/sql/internal from database/sql/driver
W debug/dwarf from debug/pe
W debug/pe from github.com/dblohm7/wingoes/pe
embed from github.com/peterbourgon/ff/v3+
encoding from encoding/json+
encoding/asn1 from crypto/x509+
encoding/base32 from github.com/fxamacker/cbor/v2+
encoding/base64 from encoding/json+
encoding/base64 from encoding/json/v2+
encoding/binary from compress/gzip+
encoding/hex from crypto/x509+
encoding/json from expvar+
encoding/json/internal from encoding/json+
encoding/json/internal/jsonflags from encoding/json+
encoding/json/internal/jsonopts from encoding/json+
encoding/json/internal/jsonwire from encoding/json+
encoding/json/jsontext from encoding/json+
encoding/json/v2 from encoding/json+
encoding/pem from crypto/tls+
encoding/xml from github.com/godbus/dbus/v5/introspect+
errors from archive/tar+
@@ -522,7 +527,7 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
internal/goarch from crypto/internal/fips140deps/cpu+
internal/godebug from archive/tar+
internal/godebugs from internal/godebug+
internal/goexperiment from net/http/pprof+
internal/goexperiment from internal/runtime/maps+
internal/goos from crypto/x509+
internal/msan from internal/runtime/maps+
internal/nettrace from net+
@@ -571,7 +576,7 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
math/rand from github.com/mdlayher/netlink+
math/rand/v2 from crypto/ecdsa+
mime from golang.org/x/oauth2/internal+
mime/multipart from net/http
mime/multipart from net/http+
mime/quotedprintable from mime/multipart
net from crypto/tls+
net/http from expvar+
@@ -580,7 +585,9 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
net/http/httputil from tailscale.com/client/web+
net/http/internal from net/http+
net/http/internal/ascii from net/http+
net/http/internal/httpcommon from net/http
net/http/internal/http2 from net/http
net/http/internal/httpcommon from net/http/internal/http2
net/http/internal/httpsfv from net/http/internal/http2
net/http/pprof from tailscale.com/tsweb
net/netip from go4.org/netipx+
net/textproto from github.com/coder/websocket+
@@ -599,7 +606,7 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
runtime/pprof from net/http/pprof
runtime/trace from net/http/pprof
slices from tailscale.com/client/web+
sort from compress/flate+
sort from crypto/tls+
strconv from archive/tar+
strings from archive/tar+
W structs from internal/syscall/windows
@@ -615,4 +622,5 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
unicode/utf8 from bufio+
unique from net/netip
unsafe from bytes+
uuid from database/sql/driver
weak from unique+
+20 -14
View File
@@ -10,11 +10,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
github.com/gaissmai/bart/internal/sparse from github.com/gaissmai/bart/internal/nodes
github.com/gaissmai/bart/internal/value from github.com/gaissmai/bart+
github.com/go-json-experiment/json from tailscale.com/drive+
github.com/go-json-experiment/json/internal from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonflags from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonopts from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonwire from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from tailscale.com/drive+
github.com/go-json-experiment/json/v1 from tailscale.com/types/logger
github.com/golang/groupcache/lru from tailscale.com/net/dnscache
💣 github.com/jsimonetti/rtnetlink from tailscale.com/net/netmon
@@ -247,7 +243,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
vendor/golang.org/x/net/dns/dnsmessage from net
vendor/golang.org/x/net/http/httpguts from net/http+
vendor/golang.org/x/net/http/httpproxy from net/http
vendor/golang.org/x/net/http2/hpack from net/http+
vendor/golang.org/x/net/http2/hpack from net/http/internal/http2+
vendor/golang.org/x/net/idna from net/http+
vendor/golang.org/x/sys/cpu from vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/text/secure/bidirule from vendor/golang.org/x/net/idna
@@ -258,7 +254,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
bytes from bufio+
cmp from encoding/json+
compress/flate from compress/gzip+
compress/gzip from net/http
compress/gzip from net/http+
container/list from crypto/tls+
context from crypto/tls+
crypto from crypto/ecdh+
@@ -292,6 +288,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
crypto/internal/fips140/edwards25519/field from crypto/ecdh+
crypto/internal/fips140/hkdf from crypto/hkdf+
crypto/internal/fips140/hmac from crypto/hmac+
crypto/internal/fips140/mldsa from crypto/mldsa
crypto/internal/fips140/mlkem from crypto/mlkem
crypto/internal/fips140/nistec from crypto/ecdsa+
crypto/internal/fips140/nistec/fiat from crypto/internal/fips140/nistec
@@ -314,6 +311,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
crypto/internal/randutil from crypto/internal/rand
crypto/internal/sysrand from crypto/internal/fips140/drbg
crypto/md5 from crypto/tls+
crypto/mldsa from crypto/tls+
crypto/mlkem from crypto/hpke+
crypto/rand from crypto/ed25519+
crypto/rc4 from crypto/tls
@@ -330,11 +328,17 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
embed from tailscale.com+
encoding from encoding/json+
encoding/asn1 from crypto/x509+
encoding/base32 from github.com/go-json-experiment/json
encoding/base64 from encoding/json+
encoding/base32 from encoding/json/v2
encoding/base64 from encoding/json/v2+
encoding/binary from compress/gzip+
encoding/hex from crypto/x509+
encoding/json from github.com/gaissmai/bart+
encoding/json/internal from encoding/json+
encoding/json/internal/jsonflags from encoding/json+
encoding/json/internal/jsonopts from encoding/json+
encoding/json/internal/jsonwire from encoding/json+
encoding/json/jsontext from encoding/json+
encoding/json/v2 from encoding/json+
encoding/pem from crypto/tls+
errors from bufio+
flag from tailscale.com/cmd/tailscaled+
@@ -357,7 +361,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
internal/goarch from crypto/internal/fips140deps/cpu+
internal/godebug from crypto/internal/fips140deps/godebug+
internal/godebugs from internal/godebug+
internal/goexperiment from runtime
internal/goexperiment from runtime+
internal/goos from crypto/x509+
internal/msan from internal/runtime/maps+
internal/nettrace from net+
@@ -399,14 +403,16 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
math/rand from github.com/mdlayher/netlink+
math/rand/v2 from crypto/ecdsa+
mime from mime/multipart+
mime/multipart from net/http
mime/multipart from net/http+
mime/quotedprintable from mime/multipart
net from crypto/tls+
net/http from tailscale.com/cmd/tailscaled+
net/http/httptrace from net/http+
net/http/internal from net/http
net/http/internal from net/http+
net/http/internal/ascii from net/http
net/http/internal/httpcommon from net/http
net/http/internal/http2 from net/http
net/http/internal/httpcommon from net/http/internal/http2
net/http/internal/httpsfv from net/http/internal/http2
net/netip from crypto/x509+
net/textproto from golang.org/x/net/http/httpguts+
net/url from crypto/x509+
@@ -420,7 +426,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
runtime from crypto/internal/fips140+
runtime/debug from github.com/klauspost/compress/zstd+
slices from crypto/tls+
sort from compress/flate+
sort from crypto/tls+
strconv from compress/flate+
strings from bufio+
sync from compress/flate+
+18 -12
View File
@@ -10,11 +10,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
github.com/gaissmai/bart/internal/sparse from github.com/gaissmai/bart/internal/nodes
github.com/gaissmai/bart/internal/value from github.com/gaissmai/bart+
github.com/go-json-experiment/json from tailscale.com/drive+
github.com/go-json-experiment/json/internal from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonflags from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonopts from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonwire from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from tailscale.com/drive+
github.com/go-json-experiment/json/v1 from tailscale.com/types/logger
github.com/golang/groupcache/lru from tailscale.com/net/dnscache
💣 github.com/jsimonetti/rtnetlink from tailscale.com/net/netmon
@@ -268,7 +264,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
vendor/golang.org/x/net/dns/dnsmessage from net
vendor/golang.org/x/net/http/httpguts from net/http+
vendor/golang.org/x/net/http/httpproxy from net/http
vendor/golang.org/x/net/http2/hpack from net/http+
vendor/golang.org/x/net/http2/hpack from net/http/internal/http2+
vendor/golang.org/x/net/idna from net/http+
vendor/golang.org/x/sys/cpu from vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/text/secure/bidirule from vendor/golang.org/x/net/idna
@@ -313,6 +309,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
crypto/internal/fips140/edwards25519/field from crypto/ecdh+
crypto/internal/fips140/hkdf from crypto/hkdf+
crypto/internal/fips140/hmac from crypto/hmac+
crypto/internal/fips140/mldsa from crypto/mldsa
crypto/internal/fips140/mlkem from crypto/mlkem
crypto/internal/fips140/nistec from crypto/ecdsa+
crypto/internal/fips140/nistec/fiat from crypto/internal/fips140/nistec
@@ -335,6 +332,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
crypto/internal/randutil from crypto/internal/rand
crypto/internal/sysrand from crypto/internal/fips140/drbg
crypto/md5 from crypto/tls+
crypto/mldsa from crypto/tls+
crypto/mlkem from crypto/hpke+
crypto/rand from crypto/ed25519+
crypto/rc4 from crypto/tls
@@ -351,11 +349,17 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
embed from tailscale.com+
encoding from encoding/json+
encoding/asn1 from crypto/x509+
encoding/base32 from github.com/go-json-experiment/json
encoding/base64 from encoding/json+
encoding/base32 from encoding/json/v2
encoding/base64 from encoding/json/v2+
encoding/binary from compress/gzip+
encoding/hex from crypto/x509+
encoding/json from github.com/gaissmai/bart+
encoding/json/internal from encoding/json+
encoding/json/internal/jsonflags from encoding/json+
encoding/json/internal/jsonopts from encoding/json+
encoding/json/internal/jsonwire from encoding/json+
encoding/json/jsontext from encoding/json+
encoding/json/v2 from encoding/json+
encoding/pem from crypto/tls+
errors from bufio+
flag from tailscale.com/cmd/tailscaled+
@@ -378,7 +382,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
internal/goarch from crypto/internal/fips140deps/cpu+
internal/godebug from crypto/internal/fips140deps/godebug+
internal/godebugs from internal/godebug+
internal/goexperiment from runtime
internal/goexperiment from runtime+
internal/goos from crypto/x509+
internal/msan from internal/runtime/maps+
internal/nettrace from net+
@@ -420,7 +424,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
math/rand from github.com/mdlayher/netlink+
math/rand/v2 from crypto/ecdsa+
mime from mime/multipart+
mime/multipart from net/http
mime/multipart from net/http+
mime/quotedprintable from mime/multipart
net from crypto/tls+
net/http from net/http/httputil+
@@ -428,7 +432,9 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
net/http/httputil from tailscale.com/cmd/tailscale/cli
net/http/internal from net/http+
net/http/internal/ascii from net/http+
net/http/internal/httpcommon from net/http
net/http/internal/http2 from net/http
net/http/internal/httpcommon from net/http/internal/http2
net/http/internal/httpsfv from net/http/internal/http2
net/netip from crypto/x509+
net/textproto from golang.org/x/net/http/httpguts+
net/url from crypto/x509+
@@ -442,7 +448,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
runtime from crypto/internal/fips140+
runtime/debug from github.com/klauspost/compress/zstd+
slices from crypto/tls+
sort from compress/flate+
sort from crypto/tls+
strconv from compress/flate+
strings from bufio+
sync from compress/flate+
+17 -9
View File
@@ -115,10 +115,6 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
github.com/gaissmai/bart/internal/sparse from github.com/gaissmai/bart/internal/nodes
github.com/gaissmai/bart/internal/value from github.com/gaissmai/bart+
github.com/go-json-experiment/json from tailscale.com/types/opt+
github.com/go-json-experiment/json/internal from github.com/go-json-experiment/json/internal/jsonflags+
github.com/go-json-experiment/json/internal/jsonflags from github.com/go-json-experiment/json/internal/jsonopts+
github.com/go-json-experiment/json/internal/jsonopts from github.com/go-json-experiment/json/jsontext+
github.com/go-json-experiment/json/internal/jsonwire from github.com/go-json-experiment/json/jsontext+
github.com/go-json-experiment/json/jsontext from tailscale.com/logtail+
github.com/go-json-experiment/json/v1 from tailscale.com/feature/routecheck+
W 💣 github.com/go-ole/go-ole from github.com/go-ole/go-ole/oleutil+
@@ -590,7 +586,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
vendor/golang.org/x/net/dns/dnsmessage from net
vendor/golang.org/x/net/http/httpguts from net/http+
vendor/golang.org/x/net/http/httpproxy from net/http
vendor/golang.org/x/net/http2/hpack from net/http+
vendor/golang.org/x/net/http2/hpack from net/http/internal/http2+
vendor/golang.org/x/net/idna from net/http+
vendor/golang.org/x/sys/cpu from vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/text/secure/bidirule from vendor/golang.org/x/net/idna
@@ -639,6 +635,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
crypto/internal/fips140/edwards25519/field from crypto/ecdh+
crypto/internal/fips140/hkdf from crypto/hkdf+
crypto/internal/fips140/hmac from crypto/hmac+
crypto/internal/fips140/mldsa from crypto/mldsa
crypto/internal/fips140/mlkem from crypto/mlkem
crypto/internal/fips140/nistec from crypto/ecdsa+
crypto/internal/fips140/nistec/fiat from crypto/internal/fips140/nistec
@@ -661,6 +658,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
crypto/internal/randutil from crypto/internal/rand
crypto/internal/sysrand from crypto/internal/fips140/drbg
crypto/md5 from crypto/tls+
crypto/mldsa from crypto/tls+
crypto/mlkem from golang.org/x/crypto/ssh+
crypto/rand from crypto/ed25519+
crypto/rc4 from crypto/tls+
@@ -676,16 +674,23 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
D crypto/x509/internal/macos from crypto/x509
crypto/x509/pkix from crypto/x509+
W database/sql/driver from github.com/google/uuid
W database/sql/internal from database/sql/driver
W debug/dwarf from debug/pe
W debug/pe from github.com/dblohm7/wingoes/pe
embed from github.com/tailscale/web-client-prebuilt+
encoding from encoding/json+
encoding/asn1 from crypto/x509+
encoding/base32 from github.com/fxamacker/cbor/v2+
encoding/base64 from encoding/json+
encoding/base64 from encoding/json/v2+
encoding/binary from compress/gzip+
encoding/hex from crypto/x509+
encoding/json from expvar+
encoding/json/internal from encoding/json+
encoding/json/internal/jsonflags from encoding/json+
encoding/json/internal/jsonopts from encoding/json+
encoding/json/internal/jsonwire from encoding/json+
encoding/json/jsontext from encoding/json+
encoding/json/v2 from encoding/json+
encoding/pem from crypto/tls+
encoding/xml from github.com/aws/aws-sdk-go-v2/aws/protocol/xml+
errors from archive/tar+
@@ -712,7 +717,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
internal/goarch from crypto/internal/fips140deps/cpu+
internal/godebug from archive/tar+
internal/godebugs from internal/godebug+
internal/goexperiment from net/http/pprof+
internal/goexperiment from internal/runtime/maps+
internal/goos from crypto/x509+
internal/msan from internal/runtime/maps+
internal/nettrace from net+
@@ -770,7 +775,9 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
net/http/httputil from github.com/aws/smithy-go/transport/http+
net/http/internal from net/http+
net/http/internal/ascii from net/http+
net/http/internal/httpcommon from net/http
net/http/internal/http2 from net/http
net/http/internal/httpcommon from net/http/internal/http2
net/http/internal/httpsfv from net/http/internal/http2
net/http/pprof from tailscale.com/cmd/tailscaled+
net/netip from github.com/tailscale/wireguard-go/conn+
net/textproto from github.com/aws/aws-sdk-go-v2/aws/signer/v4+
@@ -790,7 +797,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
runtime/pprof from net/http/pprof+
runtime/trace from net/http/pprof
slices from tailscale.com/appc+
sort from compress/flate+
sort from container/heap+
strconv from archive/tar+
strings from archive/tar+
W structs from internal/syscall/windows
@@ -806,4 +813,5 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
unicode/utf8 from bufio+
unique from net/netip
unsafe from bytes+
W uuid from database/sql/driver
weak from unique+
+17 -11
View File
@@ -25,11 +25,7 @@ tailscale.com/cmd/tsidp dependencies: (generated by github.com/tailscale/depawar
github.com/gaissmai/bart/internal/sparse from github.com/gaissmai/bart/internal/nodes
github.com/gaissmai/bart/internal/value from github.com/gaissmai/bart+
github.com/go-json-experiment/json from tailscale.com/types/opt+
github.com/go-json-experiment/json/internal from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonflags from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonopts from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonwire from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from tailscale.com/drive+
github.com/go-json-experiment/json/v1 from tailscale.com/net/routecheck+
L 💣 github.com/godbus/dbus/v5 from tailscale.com/net/dns
github.com/golang/groupcache/lru from tailscale.com/net/dnscache
@@ -387,7 +383,7 @@ tailscale.com/cmd/tsidp dependencies: (generated by github.com/tailscale/depawar
vendor/golang.org/x/net/dns/dnsmessage from net
vendor/golang.org/x/net/http/httpguts from net/http+
vendor/golang.org/x/net/http/httpproxy from net/http
vendor/golang.org/x/net/http2/hpack from net/http+
vendor/golang.org/x/net/http2/hpack from net/http/internal/http2+
vendor/golang.org/x/net/idna from net/http+
vendor/golang.org/x/sys/cpu from vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/text/secure/bidirule from vendor/golang.org/x/net/idna
@@ -434,6 +430,7 @@ tailscale.com/cmd/tsidp dependencies: (generated by github.com/tailscale/depawar
crypto/internal/fips140/edwards25519/field from crypto/ecdh+
crypto/internal/fips140/hkdf from crypto/hkdf+
crypto/internal/fips140/hmac from crypto/hmac+
crypto/internal/fips140/mldsa from crypto/mldsa
crypto/internal/fips140/mlkem from crypto/mlkem
crypto/internal/fips140/nistec from crypto/ecdsa+
crypto/internal/fips140/nistec/fiat from crypto/internal/fips140/nistec
@@ -457,6 +454,7 @@ tailscale.com/cmd/tsidp dependencies: (generated by github.com/tailscale/depawar
crypto/internal/randutil from crypto/internal/rand
crypto/internal/sysrand from crypto/internal/fips140/drbg
crypto/md5 from crypto/tls+
crypto/mldsa from crypto/tls+
crypto/mlkem from crypto/hpke+
crypto/pbkdf2 from golang.org/x/crypto/pbkdf2
crypto/rand from crypto/ed25519+
@@ -478,10 +476,16 @@ tailscale.com/cmd/tsidp dependencies: (generated by github.com/tailscale/depawar
encoding from encoding/json+
encoding/asn1 from crypto/x509+
encoding/base32 from github.com/fxamacker/cbor/v2+
encoding/base64 from encoding/json+
encoding/base64 from encoding/json/v2+
encoding/binary from compress/gzip+
encoding/hex from crypto/x509+
encoding/json from expvar+
encoding/json/internal from encoding/json+
encoding/json/internal/jsonflags from encoding/json+
encoding/json/internal/jsonopts from encoding/json+
encoding/json/internal/jsonwire from encoding/json+
encoding/json/jsontext from encoding/json+
encoding/json/v2 from encoding/json+
encoding/pem from crypto/tls+
encoding/xml from github.com/huin/goupnp+
errors from bufio+
@@ -508,7 +512,7 @@ tailscale.com/cmd/tsidp dependencies: (generated by github.com/tailscale/depawar
internal/goarch from crypto/internal/fips140deps/cpu+
internal/godebug from crypto/ed25519+
internal/godebugs from internal/godebug+
internal/goexperiment from net/http/pprof+
internal/goexperiment from internal/runtime/maps+
internal/goos from crypto/x509+
internal/msan from internal/runtime/maps+
internal/nettrace from net+
@@ -557,7 +561,7 @@ tailscale.com/cmd/tsidp dependencies: (generated by github.com/tailscale/depawar
math/rand from github.com/fxamacker/cbor/v2+
math/rand/v2 from crypto/ecdsa+
mime from mime/multipart+
mime/multipart from net/http
mime/multipart from net/http+
mime/quotedprintable from mime/multipart
net from crypto/tls+
net/http from expvar+
@@ -565,7 +569,9 @@ tailscale.com/cmd/tsidp dependencies: (generated by github.com/tailscale/depawar
net/http/httputil from tailscale.com/client/web+
net/http/internal from net/http+
net/http/internal/ascii from net/http+
net/http/internal/httpcommon from net/http
net/http/internal/http2 from net/http
net/http/internal/httpcommon from net/http/internal/http2
net/http/internal/httpsfv from net/http/internal/http2
net/http/pprof from tailscale.com/ipn/localapi+
net/netip from crypto/x509+
net/textproto from github.com/coder/websocket+
@@ -584,7 +590,7 @@ tailscale.com/cmd/tsidp dependencies: (generated by github.com/tailscale/depawar
runtime/pprof from net/http/pprof+
runtime/trace from net/http/pprof
slices from crypto/tls+
sort from compress/flate+
sort from container/heap+
strconv from compress/flate+
strings from bufio+
W structs from internal/syscall/windows
+102
View File
@@ -0,0 +1,102 @@
# Go major version bump checklist
Things to update every six months when we move to a new Go major
version (e.g. Go 1.NN to Go 1.MM). See the git history of this file
and past bump commits (e.g. "go.toolchain.branch: switch to Go 1.26",
"go.toolchain.branch: switch to Go 1.27") for worked examples.
## Prerequisites
- [ ] The `tailscale/go` fork has a `tailscale.goX.YY` branch with our
patches rebased onto the new release, and its CI has published a
toolchain tarball for that rev.
- [ ] During the rc period, test the new version via the "next"
toolchain first: update `go.toolchain.next.branch` and run
`TS_GO_NEXT=1 ./pull-toolchain.sh`, then let the optional
`go-next` CI jobs find breakage before release day.
## Toolchain switch
- [ ] Update `go.toolchain.branch` to the new `tailscale.goX.YY` branch name.
- [ ] Run `./pull-toolchain.sh`. This updates:
- `go.toolchain.rev` (and `go.toolchain.next.rev` if it fell behind)
- `go.toolchain.version`
- the `go` directive in `go.mod`
- `flakehashes.json` (Nix SRI hashes, via `tool/updateflakes`)
## Version strings elsewhere
- [ ] `Dockerfile`: `FROM golang:1.NN-alpine` in the build stage.
- [ ] `README.md`: "We always require the latest Go release, currently Go 1.NN".
- [ ] `.github/workflows/`: grep for hardcoded Go versions. As of Go
1.27 the workflows use `go-version-file: go.mod` and need no
changes, but rc-period pins (e.g. `actions/setup-go` with an
explicit rc version) must be reverted if any were added.
## Regenerate derived files
- [ ] `make updatedeps` to regenerate all `depaware.txt` files. The
new stdlib usually reshuffles internal dependencies.
- [ ] Regenerate gzip assets if `compress/flate` output changed (it
did in Go 1.27; the `go generate` steps embed compressed bytes and
CI checks they are reproducible with the current toolchain):
- `tempfork/spf13/cobra`: `go generate ./...`
- `util/eventbus`: `go generate ./...`
Use the new toolchain (`./tool/go`) on `PATH` when running these.
## Things that may need attention
- [ ] Lint tools: check that staticcheck and golangci-lint releases
support the new Go version, and bump them in `go.mod` /
`.github/workflows/golangci-lint.yml` if needed (Go 1.26 needed a
staticcheck bump). The golangci-lint version pinned in the workflow
must be a release *built with* the new Go version or it fails with
"the Go language version (go1.NN) used to build golangci-lint is
lower than the targeted Go version"; golangci-lint usually ships
such a release within days of the Go release (v2.13.0 for Go 1.27).
Verify with `golangci-lint version` and a local
`golangci-lint run` against the repo config before pushing.
- [ ] `go.mod` / `go.sum`: run `./tool/go mod tidy` and eyeball the
diff; a new Go version can reorganize the file format or module
graph pruning.
- [ ] New-version breakage in our code or vendored deps: build and
test everything (`./tool/go build ./... && ./tool/go test ./...`),
including GOOS=darwin,windows,etc. cross-builds, before relying on CI.
- [ ] The corp repo, Android, iOS, and other downstream repos have
their own bumps; this checklist covers only this repo.
## Behavior changes that have bitten us
Categories of Go release fallout seen in past bumps (mostly in corp,
but the categories generalize); grep for them before blaming the code:
- [ ] gofmt output can change; run `gofmt -l` across the tree (and
corp) with the new toolchain and reformat (Go 1.27 reformatted two
corp files).
- [ ] encoding/json error strings and UnmarshalTypeError.Field can
change. Tests asserting exact error text break, and so can
third-party libraries: Go 1.27 reports the full path to the
offending value ("errors.deletes.0") where earlier versions
reported just the top-level field, which broke dnsimple-go's
error-recovery gate (their PR #271).
- [ ] Error identity from canceled streaming HTTP requests can change:
Go 1.27's http2 surfaces the underlying "use of closed network
connection" where Go 1.26 returned the context error. Prefer
normalizing to ctx.Err() at the source (see sendMapRequest in
control/controlclient) over teaching each test the new string.
- [ ] json.Decoder over a reader that gains data after reporting EOF
is not guaranteed to see the later writes; Go 1.27 stopped
re-polling. Interleaved write-then-decode test helpers should read
complete lines instead (corp tslogtest).
- [ ] The race detector's cost profile can shift: Go 1.27's race mode
made a reflection-heavy corp test several times slower, turning a
slow-but-passing 70s test into a 10 minute timeout. Watch race job
durations, not just pass/fail.
## After the switch
- [ ] Send the branch through full CI and fix what falls out; amend
this checklist with anything new you discover.
- [ ] Once the release is proven, consider a follow-up "use Go 1.NN
things" cleanup commit (gofix modernizers, new stdlib APIs), kept
separate from the mechanical bump.
+3 -3
View File
@@ -1,10 +1,10 @@
{
"toolchain": {
"rev": "7275f792d406d3c386cc807937a45a4a7b699d42",
"sri": "sha256-X5BJTH4gdjaww4wQZUQ8b2Yy0xztHYVPzsg/YXfmCPs="
"rev": "7f1bd87de70d92fc612426e787e7dfb8275c07d6",
"sri": "sha256-mn1snbErBYXkxaR/IQnmGVDOdfTaP+tBgHZB4UFaHW8="
},
"vendor": {
"goModSum": "sha256-oET+wIOTwJUXSMCN1Ro5dxVkqe10N8zpQU7tR/YrPfY=",
"goModSum": "sha256-666M40zZNt075aBlnr3rKMYE+cUnOlNP1ZgIfZs4ErI=",
"sri": "sha256-h3KPqXE1Wvl1nfUmus0zWowaiqBIxz6eJT/+dIBEkOM="
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
module tailscale.com
go 1.26.6
go 1.27.0
require (
filippo.io/mkcert v1.4.4
+1 -1
View File
@@ -1 +1 @@
tailscale.go1.26
tailscale.go1.27
+1 -1
View File
@@ -1 +1 @@
7275f792d406d3c386cc807937a45a4a7b699d42
7f1bd87de70d92fc612426e787e7dfb8275c07d6
+1 -1
View File
@@ -1 +1 @@
1.26.6
1.27.0
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+17 -11
View File
@@ -25,11 +25,7 @@ tailscale.com/tsnet dependencies: (generated by github.com/tailscale/depaware)
github.com/gaissmai/bart/internal/sparse from github.com/gaissmai/bart/internal/nodes
github.com/gaissmai/bart/internal/value from github.com/gaissmai/bart+
github.com/go-json-experiment/json from tailscale.com/types/opt+
github.com/go-json-experiment/json/internal from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonflags from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonopts from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/internal/jsonwire from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from github.com/go-json-experiment/json+
github.com/go-json-experiment/json/jsontext from tailscale.com/drive+
github.com/go-json-experiment/json/v1 from tailscale.com/net/routecheck+
L 💣 github.com/godbus/dbus/v5 from tailscale.com/net/dns
github.com/golang/groupcache/lru from tailscale.com/net/dnscache
@@ -380,7 +376,7 @@ tailscale.com/tsnet dependencies: (generated by github.com/tailscale/depaware)
vendor/golang.org/x/net/dns/dnsmessage from net
vendor/golang.org/x/net/http/httpguts from net/http+
vendor/golang.org/x/net/http/httpproxy from net/http
vendor/golang.org/x/net/http2/hpack from net/http+
vendor/golang.org/x/net/http2/hpack from net/http/internal/http2+
vendor/golang.org/x/net/idna from net/http+
vendor/golang.org/x/sys/cpu from vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/text/secure/bidirule from vendor/golang.org/x/net/idna
@@ -427,6 +423,7 @@ tailscale.com/tsnet dependencies: (generated by github.com/tailscale/depaware)
crypto/internal/fips140/edwards25519/field from crypto/ecdh+
crypto/internal/fips140/hkdf from crypto/hkdf+
crypto/internal/fips140/hmac from crypto/hmac+
crypto/internal/fips140/mldsa from crypto/mldsa
crypto/internal/fips140/mlkem from crypto/mlkem
crypto/internal/fips140/nistec from crypto/ecdsa+
crypto/internal/fips140/nistec/fiat from crypto/internal/fips140/nistec
@@ -449,6 +446,7 @@ tailscale.com/tsnet dependencies: (generated by github.com/tailscale/depaware)
crypto/internal/randutil from crypto/internal/rand
crypto/internal/sysrand from crypto/internal/fips140/drbg
crypto/md5 from crypto/tls+
crypto/mldsa from crypto/tls+
crypto/mlkem from crypto/hpke+
crypto/rand from crypto/ed25519+
crypto/rc4 from crypto/tls
@@ -469,10 +467,16 @@ tailscale.com/tsnet dependencies: (generated by github.com/tailscale/depaware)
encoding from encoding/json+
encoding/asn1 from crypto/x509+
encoding/base32 from github.com/fxamacker/cbor/v2+
encoding/base64 from encoding/json+
encoding/base64 from encoding/json/v2+
encoding/binary from compress/gzip+
encoding/hex from crypto/x509+
encoding/json from expvar+
encoding/json/internal from encoding/json+
encoding/json/internal/jsonflags from encoding/json+
encoding/json/internal/jsonopts from encoding/json+
encoding/json/internal/jsonwire from encoding/json+
encoding/json/jsontext from encoding/json+
encoding/json/v2 from encoding/json+
encoding/pem from crypto/tls+
encoding/xml from github.com/huin/goupnp+
errors from bufio+
@@ -499,7 +503,7 @@ tailscale.com/tsnet dependencies: (generated by github.com/tailscale/depaware)
internal/goarch from crypto/internal/fips140deps/cpu+
internal/godebug from crypto/ed25519+
internal/godebugs from internal/godebug+
internal/goexperiment from net/http/pprof+
internal/goexperiment from internal/runtime/maps+
internal/goos from crypto/x509+
internal/msan from internal/runtime/maps+
internal/nettrace from net+
@@ -548,7 +552,7 @@ tailscale.com/tsnet dependencies: (generated by github.com/tailscale/depaware)
math/rand from github.com/fxamacker/cbor/v2+
math/rand/v2 from crypto/ecdsa+
mime from mime/multipart+
mime/multipart from net/http
mime/multipart from net/http+
mime/quotedprintable from mime/multipart
net from crypto/tls+
net/http from expvar+
@@ -556,7 +560,9 @@ tailscale.com/tsnet dependencies: (generated by github.com/tailscale/depaware)
net/http/httputil from tailscale.com/client/web+
net/http/internal from net/http+
net/http/internal/ascii from net/http+
net/http/internal/httpcommon from net/http
net/http/internal/http2 from net/http
net/http/internal/httpcommon from net/http/internal/http2
net/http/internal/httpsfv from net/http/internal/http2
net/http/pprof from tailscale.com/ipn/localapi+
net/netip from crypto/x509+
net/textproto from github.com/coder/websocket+
@@ -574,7 +580,7 @@ tailscale.com/tsnet dependencies: (generated by github.com/tailscale/depaware)
runtime/pprof from net/http/pprof+
runtime/trace from net/http/pprof
slices from crypto/tls+
sort from compress/flate+
sort from container/heap+
strconv from compress/flate+
strings from bufio+
W structs from internal/syscall/windows
Binary file not shown.
Binary file not shown.