Skip to content

build: move to Go 1.26 and golangci-lint v2.11.4 - #877

Open
atornsii wants to merge 4 commits into
mainfrom
atorns/go-1.26-upgrade
Open

atornsii wants to merge 4 commits into
mainfrom
atorns/go-1.26-upgrade

Conversation

@atornsii

@atornsii atornsii commented Oct 19, 2026 •

Copy link
Copy Markdown

This draft moves the module to Go 1.26 and updates go-server-sdk. The Go AI SDK (github.com/launchdarkly/go-ai-sdk) needs a go 1.26 directive and go-server-sdk v7.19.1, so this PR must merge before the agent PRs (#894 to #930).

main has changed since this PR opened. It now has golangci-lint v2, a .golangci.yml that keeps the v1 rules, and toolchain go1.26.10 (#933). This PR merges main and keeps all of that.

What changed

  • go.mod: the go directive goes from 1.25.0 to 1.26. The toolchain go1.26.10 line from main stays. Both CI workflows read the version from go.mod.
  • go-server-sdk goes from v7.18.0 to v7.19.1, and go-server-sdk-evaluation from v3.1.0 to v3.2.0. Only the dev server uses go-server-sdk.
  • .pre-commit-config.yaml: golangci-lint goes from v2.9.0 to v2.11.4, and the hook sets language_version: 1.26.0.
  • AGENTS.md: the linter version, and a pointer to .golangci.yml.

Why the hook pins Go

Without language_version, pre-commit downloads the newest Go to build the linter. A linter that is built with a Go release newer than itself cannot read that release's type data, and it fails on every package. The pin makes pre-commit build the linter with Go 1.26, the version in go.mod.

Testing

🤖 Generated with Claude Code


Note

Overview
This PR bumps the module to Go 1.26 (go 1.25.0 → go 1.26) and refreshes LaunchDarkly server SDK dependencies to v7.19.1 (with go-server-sdk-evaluation v3.2.0), aligning with upcoming Go 1.26 / AI SDK work.

Pre-commit golangci-lint moves from v2.9.0 to v2.11.4 and pins language_version: 1.26.0 on the hook so the linter is built with the same Go as go.mod, avoiding type-data mismatches when pre-commit would otherwise pull a newer Go.

AGENTS.md documents the new linter version and points readers at .golangci.yml for Go lint configuration.

Reviewed by Cursor Bugbot for commit 68f210f. Bugbot is set up for automated code reviews on this repo. Configure here.


Devin Review

The Go AI SDK needs Go 1.26 and go-server-sdk v7.19.1. This change
moves the module to Go 1.26 and go-server-sdk from v7.13.4 to v7.19.1.

golangci-lint v1.63.4 cannot read the type data of Go 1.26, so the
pre-commit hook moves to v2.11.4. The new .golangci.yml keeps the v1
rules: staticcheck runs only the SA and S1 checks, and unchecked Close
and print calls are not errors.

The hook now pins Go 1.26.0. Without the pin, pre-commit downloads the
newest Go, and the linter cannot read the type data of a newer release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the dependency updates from main. Keep go 1.26 and go-server-sdk v7.19.1 from this branch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Devin Review: 1 flag

Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)

Devin Review

@atornsii atornsii changed the title build: upgrade to Go 1.26 and golangci-lint v2 build: move to Go 1.26 and golangci-lint v2.11.4 Oct 21, 2026
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.

2 participants