Skip to content

Use the Go 1.27 toolchain for development and CI - #54

Closed
barnabasbusa wants to merge 1 commit into
masterfrom
bbusa/go-1.27
Closed

Use the Go 1.27 toolchain for development and CI#54
barnabasbusa wants to merge 1 commit into
masterfrom
bbusa/go-1.27

Conversation

@barnabasbusa

@barnabasbusa barnabasbusa commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Toolchain-only change: the go directive stays at 1.25.0, so the minimum Go version for dependent modules does not change.

  • go.mod: toolchain go1.27.0 — only applies when go-eth2-client is the main module (local dev, CI), not to consumers
  • workflows: setup-go on 1.27 for lint/revive/test
  • custom golangci-lint: build v2.13.1 (supports Go 1.27) and include the Go version in the custom-gcl cache key, so a cached binary built with an older Go is not reused against a 1.27 target (the Go language version used to build golangci-lint is lower than the targeted Go version)
  • Go 1.27 changed the encoding/json unmarshal error text (it now names the outermost struct and includes array indices in the field path, e.g. Go struct field inclusionListJSON.transactionsinclusionListJSON.transactions.0). Updated the 31 expected error strings in the affected *_test.go files so go test ./... passes on the toolchain the repo now builds with; no code changes.

go test ./... passes on go1.27.0. Ran the custom golangci-lint v2.13.1 built with 1.27 on master and this branch: same 79 pre-existing issues, no new ones.

https://claude.ai/code/session_01E47DJeAkHBdyG1G3Ld7fzK

@redpandabot

redpandabot Bot commented Aug 27, 2026

Copy link
Copy Markdown

Skipped automated review — PR is too large for a useful single-shot review.

  • changed files: 24 (limit 80)
  • diff bytes: 586217 (limit 500000)

Reviewed @ 7654625c
"Every system eventually becomes legacy."

@redpandabot

redpandabot Bot commented Aug 27, 2026

Copy link
Copy Markdown

Skipped automated review — PR is too large for a useful single-shot review.

  • changed files: 24 (limit 80)
  • diff bytes: 586187 (limit 500000)

Reviewed @ 72579c0d
"Every system eventually becomes legacy."

Set toolchain go1.27.0 in go.mod so the repo builds and tests with Go
1.27 when it is the main module, and move the lint/revive/test
workflows to 1.27. The go directive stays at 1.25.0, so the minimum
supported version for dependent modules does not change.

Build the custom golangci-lint from v2.13.1 (supports Go 1.27) and add
the Go version to the custom-gcl cache key so a binary built with an
older Go is not reused.

Go 1.27 changed the encoding/json unmarshal error text: it now names
the outermost struct and includes array indices in the field path.
Update the expected error strings in the affected JSON tests.

Claude-Session: https://claude.ai/code/session_01E47DJeAkHBdyG1G3Ld7fzK
@barnabasbusa barnabasbusa changed the title Update Go to 1.27 Use the Go 1.27 toolchain for development and CI Aug 27, 2026
@redpandabot

redpandabot Bot commented Aug 27, 2026

Copy link
Copy Markdown

Skipped automated review — PR is too large for a useful single-shot review.

  • changed files: 24 (limit 80)
  • diff bytes: 586195 (limit 500000)

Reviewed @ 1e72e373
"Every system eventually becomes legacy."

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