$ the-wire · showcase
gopls enables MoveDeclaration and cuts cold-check I/O
By RepoJournal · Filed · About Go · Composed from the cited sources · methodology
gopls drops the experimental gate on MoveDeclaration and finds that capping its filecache write parallelism at 8 beats 128 in a cold check of k8s kubelet, while the tools repo starts enforcing its own import graph.
gopls/internal: turn on MoveDeclaration codeaction by default golang/tools
The experimental setting that gated the MoveDeclaration code action is gone, so it is always available to every editor speaking LSP to gopls with no opt-in. If your tooling had the experiment flag set, it no longer does anything.
gopls/internal/filecache: reduce I/O parallelism golang/tools
Filecache writes now run with a parallelism of 8 instead of 128, and a cold "gopls check" of k8s kubelet dropped from 22.2s to 20.0s wall with sys time going 46.9s to 42.6s. On macOS, Set and Get account for 20% of CPU, mostly in open(2), according to the commit message.
internal/analysis/analyzerutil: distinguish unknown file versions golang/tools
FileUsesGoVersion conflated "unknown" with "before", which is the safe answer for most callers but wrong for loopclosure, which needs to know whether a file is definitely before go1.22; a new FileGoVersion distinction and an empty-versus-missing FileVersions entry are now handled separately. This is the second attempt at the change, the first having been reverted at CL 841445 for breaking tests...
x/tools: add TestDeps to enforce dependency rules golang/tools
A new TestDeps enforces invariants on x/tools' package import graph, modeled on the test that governs std: the syntax packages go/ast/{astutil,edge,inspector} and internal/astutil may not depend on go/types, and go/gcexportdata may only import an allowlisted set. The internal/astutil rule is only now true because the preceding CL moved {Unpack,Pack}IndexExpr out of internal/typeparams and into it.
internal/releasetargets: update list for Go 1.28 golang/build
Also shipped: the Go 1.28 release target list is updated ahead of a freeze just over a month out, and so far it is empty, its diff against Go 1.27 being "No changes". gopls consumers can also relax about the Go version question once more: the release list, the darwin/arm64 and darwin/amd64 builder quota increases, the survey banner timestamps of 2026-10-21T14:00:00Z to 2026-11-03T23:59:59Z, and...