Repository navigation
Upgrade to Go 1.27.2 - #444
Draft
tnsardesai wants to merge 1 commit into
Draft
tnsardesai wants to merge 1 commit into
tnsardesai wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Go 1.25 and older are out of support now that Go 1.27 has shipped. This moves the repo to the latest patch release, Go 1.27.2.
server/go.modgo 1.25.0go 1.27.2Other places that pin the Go toolchain:
images/chromium-headless/image/Dockerfile,images/chromium-headful/Dockerfile:docker.io/golang:1.25.0->docker.io/golang:1.27.2server-test,chromium-launcher-test,vuln-remediation) readsgo-version-file: server/go.modAGENTS.md,server/README.md: required Go versionOther changes needed for the upgrade:
go mod tidyremoved 349 staleserver/go.sumlines for module versions no longer in the graph.Breaking changes and GODEBUG review
Raising the
goline changes these defaults (none are overridden in this repo, viagodebugblocks,//go:debugorGODEBUGenv):urlstrictcolons=1(url.Parserejects extra colons in the host),cryptocustomrand=0(crypto ignores caller-suppliedrandreaders),tlssecpmlkem=1(SecP256r1MLKEM768/SecP384r1MLKEM1024 on by default)tracebacklabels=1(pprof goroutine labels are printed in tracebacks)Removed outright in 1.27 (new behavior regardless of the
goline):asynctimerchan,gotypesalias,tls10server,tlsrsakex,tls3des,tlsunsafeekm,x509keypairleaf. None are set here.Toolchain changes that apply as soon as 1.27 builds the code:
encoding/jsonruns on the v2 implementation (same behavior, different error text), HTTP/1Response.Body.Closedrains unread bodies,ServeMuxtrailing-slash redirects are 307 (1.26), Green Tea GC is on (1.26),go testruns thestdversionvet check, andgofmtalignment changed slightly.Repo-specific findings:
server/builds withCGO_ENABLED=0, and the baregolang:1.27.2tag is Debian trixie, asgolang:1.25.0was, so the builder base distro does not change.github.com/go-json-experiment/json(pulled in by chromedp) is at a 2025-07 revision that predates thegoexperiment.jsonv2alias files, so it still compiles with 1.27's default jsonv2 experiment. Newer revisions from Aug-Sep 2025 do not compile on 1.27 until they reach the 2026-08 revision; bump it tov0.0.0-20260820222146-c27c302e5fc3or later if chromedp is upgraded.github.com/kernel/neko/server; the neko base image used by the headful image is built from that repo and is upgraded separately.playwright_executors.go,browser_repl.go,lib/x11) never compare read errors with== io.EOF, so 1.27 returning a bareio.EOFfromUnixConnreads changes nothing. Noencoding/jsonerror text is matched anywhere.Verification
kernel-images/server:go build ./...pass,go vet ./...pass,go test -short ./...27 ok / 1 failed on 1.27.2 (baseline on the pre-upgrade toolchain: 27 ok / 1 failed)AGENTS.md(go test -raceexcludinge2e): 27/27 packages okserver/e2efails identically before and after: the tests start prebuiltonkernel/chromium-*-testimages, which aren't available locally.server-builderstage of the headless Dockerfile ongolang:1.27.2.