Skip to content

all: upgrade minimum Go version to 1.25#19109

Merged
anacrolix merged 3 commits intomainfrom
anacrolix/drop-go1.24-main
Feb 16, 2026
Merged

all: upgrade minimum Go version to 1.25#19109
anacrolix merged 3 commits intomainfrom
anacrolix/drop-go1.24-main

Conversation

@anacrolix
Copy link
Contributor

Summary

  • Bump minimum Go version from 1.24 to 1.25 across go.mod, CI workflows, Dockerfiles, Makefile, and documentation
  • Remove dead compatibility code for Go versions prior to 1.25: synctest go1.24 shim, node/debug trace fallback (go<1.5), blake2b SSE4-only fallback (go<1.7)
  • Strip now-redundant //go:build version constraints

Test plan

  • CI passes with Go 1.25
  • make erigon builds successfully
  • make test-short passes

@AskAlexSharov
Copy link
Collaborator

we have 1 CI for run unit-tests on old go version (1.25) and all other can use new (1.26)

@anacrolix
Copy link
Contributor Author

Let's make it explicit to test go1.25 if that's what we'll release with. Otherwise we're back to the same issue I was having with 1.24, where CI and local aren't in agreement.

@anacrolix anacrolix force-pushed the anacrolix/drop-go1.24-main branch from d7947d6 to 1e98e42 Compare February 13, 2026 02:47
@anacrolix anacrolix marked this pull request as ready for review February 13, 2026 05:25
@anacrolix
Copy link
Contributor Author

@copilot rebase to main

Copy link
Contributor

Copilot AI commented Feb 13, 2026

@anacrolix I've opened a new pull request, #19167, to work on those changes. Once the pull request is ready, I'll request review from you.

Remove go1.24 and older compatibility shims:
- Remove synctest go1.24 workaround (synctest.Test available in go1.25)
- Remove node/debug trace fallback for go<1.5
- Remove blake2b go<1.7 fallback
- Remove now-redundant go version build constraints
common/synctest: fix gofmt formatting
@anacrolix anacrolix force-pushed the anacrolix/drop-go1.24-main branch from 256a5e2 to e3297fa Compare February 16, 2026 01:51
@anacrolix
Copy link
Contributor Author

Needed to patch hive tests, which are assuming 1.24. Seems fixed now.

sed -i "s/^ARG tag=main$/ARG tag=${branch_name}/" clients/erigon/Dockerfile
go_version=$(go mod edit -json ../erigon-src/go.mod | jq -r .Go)
echo "Patching builder Go version to ${go_version}"
sed -i "s|golang:[0-9.]*-alpine|golang:${go_version}-alpine|" clients/erigon/Dockerfile
Copy link
Member

Choose a reason for hiding this comment

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

you can open a PR to fix this in the Hive repo https://github.com/ethereum/hive/blob/master/clients/erigon

@anacrolix anacrolix merged commit 281bd5d into main Feb 16, 2026
26 of 28 checks passed
@anacrolix anacrolix deleted the anacrolix/drop-go1.24-main branch February 16, 2026 05:38
yperbasis added a commit that referenced this pull request Feb 16, 2026
AskAlexSharov pushed a commit that referenced this pull request Feb 16, 2026
This reverts PR #19109 because test-hive CI jobs started to fail after
it.
AskAlexSharov pushed a commit that referenced this pull request Feb 16, 2026
)

## Summary
- Fix `test-hive.yml` sparse-checkout failing with `fatal: 'go.mod' is
not a directory` by disabling cone mode (`sparse-checkout-cone-mode:
false`)
- Fix `test-hive-eest.yml` by adding the same go.mod sparse-checkout and
Go version patching in the hive Dockerfile that `test-hive.yml` already
has

Both issues were introduced in #19109 (281bd5d).

This should make it possible to remerge #19109, but since we won't know
about the EEST tests until it hits main, this can go first, then the
go1.25 update again.

Note there's also a patch to ethereum/hive for erigon coming.

## Test plan
- [ ] Test Hive workflow passes
- [ ] Hive EEST tests workflow passes
anacrolix added a commit that referenced this pull request Feb 24, 2026
## Summary
Resubmission of #19109 (which was reverted).

- Bump minimum Go version from 1.24 to 1.25 across go.mod, CI workflows,
Dockerfiles, Makefile, and documentation
- Remove dead compatibility code for Go versions prior to 1.25: synctest
go1.24 shim, node/debug trace fallback (go<1.5), blake2b SSE4-only
fallback (go<1.7)
- Strip now-redundant `//go:build` version constraints
- Derive hive CI builder Go version from go.mod

## Dependencies
Depends on #19223. That PR makes CI workflows derive their Go version
from `go.mod` rather than hardcoding it. Without it, merging this PR
would leave several workflows pinned to `go-version: '1.24'` or
`'1.25'`, which would conflict with the `go.mod` bump to 1.25 here and
cause CI failures.

---------

Co-authored-by: Alexey Sharov <AskAlexSharov@gmail.com>
sudeepdino008 pushed a commit that referenced this pull request Mar 4, 2026
## Summary
Resubmission of #19109 (which was reverted).

- Bump minimum Go version from 1.24 to 1.25 across go.mod, CI workflows,
Dockerfiles, Makefile, and documentation
- Remove dead compatibility code for Go versions prior to 1.25: synctest
go1.24 shim, node/debug trace fallback (go<1.5), blake2b SSE4-only
fallback (go<1.7)
- Strip now-redundant `//go:build` version constraints
- Derive hive CI builder Go version from go.mod

## Dependencies
Depends on #19223. That PR makes CI workflows derive their Go version
from `go.mod` rather than hardcoding it. Without it, merging this PR
would leave several workflows pinned to `go-version: '1.24'` or
`'1.25'`, which would conflict with the `go.mod` bump to 1.25 here and
cause CI failures.

---------

Co-authored-by: Alexey Sharov <AskAlexSharov@gmail.com>
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.

5 participants