Skip to content

Pin tailscale to v1.95-pre so the module stays on go 1.25 - #1849

Closed
luke-lombardi wants to merge 1 commit into
mainfrom
ll/tailscale-go125
Closed

Pin tailscale to v1.95-pre so the module stays on go 1.25#1849
luke-lombardi wants to merge 1 commit into
mainfrom
ll/tailscale-go125

Conversation

@luke-lombardi

@luke-lombardi luke-lombardi commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Problem

#1848 bumped tailscale.com to v1.102.2, which raised the go directive to 1.26.5. The release build image runs go 1.25.13 with GOTOOLCHAIN=local, so builds fail:

go: go.mod requires go >= 1.26.5 (running go 1.25.13; GOTOOLCHAIN=local)

The same directive would force a toolchain bump on every downstream importer (clip, geese, etc.).

Fix

No tagged tailscale release works here: everything through v1.94 pins the old gvisor netstack API (incompatible with the cross-GPU-restore gvisor from #1846), and v1.96+ requires go 1.26. Tailscale bumped gvisor on Feb 27 and moved to go 1.26 on Mar 5, so this pins the last commit in that window (d58bfb8a, resolves as v1.95.0-pre):

Module go directive lands at 1.25.7 (previously understated at 1.25.0; our gvisor already required ≥1.25.5).

Test plan

  • go build ./pkg/... ./cmd/...
  • go test ./pkg/network/ ./pkg/abstractions/pod/ ./pkg/worker/ all pass
  • Release build (go 1.25.13, GOTOOLCHAIN=local) completes

Made with Cursor


Summary by cubic

Pin tailscale.com to v1.95-pre and lower the module go directive to 1.25.7 so builds succeed on Go 1.25.13. Previously tailscale.com v1.102.2 required Go 1.26.5 and broke release builds with GOTOOLCHAIN=local; now builds pass and downstream importers are not forced to Go 1.26. Includes disco/NAT traversal fixes without reverting the newer gVisor netstack.

  • Set go 1.25.7 in go.mod and pin tailscale.com to v1.95-pre to stay before the Go 1.26 bump.
  • Keep the gvisor.dev/gvisor pin unchanged; matches our existing version.
  • Align indirect deps to the same window: downshift github.com/creachadair/msync, github.com/go-json-experiment/json, and github.com/tailscale/wireguard-go; add github.com/prometheus-community/pro-bing.

Written for commit 90dfa13. Summary will update on new commits.

Review in cubic

v1.102.2 raised the go directive to 1.26.5, which the go 1.25.13 build
image (GOTOOLCHAIN=local) and downstream importers cannot satisfy.
Tagged releases offer no way out: everything through v1.94 pins the old
gvisor netstack API (incompatible with our cross-GPU-restore gvisor),
and v1.96+ requires go 1.26. Commit d58bfb8a sits in the window after
tailscale bumped gvisor (matching our exact pin) and before it moved to
go 1.26: go directive 1.25.7, disco fixes included.

Co-authored-by: Cursor <cursoragent@cursor.com>
@luke-lombardi

Copy link
Copy Markdown
Contributor Author

Pushed directly to main as 74483d8.

@luke-lombardi
luke-lombardi deleted the ll/tailscale-go125 branch August 16, 2026 21:59
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