Skip to content

Commit 6c0726e

Browse files
all: upgrade minimum Go version to 1.25 (#19235)
## 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>
1 parent 93cef94 commit 6c0726e

File tree

17 files changed

+16
-137
lines changed

17 files changed

+16
-137
lines changed

.github/workflows/test-hive-eest.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ jobs:
7373
- name: Setup go env and cache
7474
uses: actions/setup-go@v6
7575
with:
76-
go-version: '>=1.24'
76+
go-version: '>=1.25'
7777

7878
# Targetting the clients/erigon/Dockerfile.git in the Hive director -
7979
# this builds the container from github and uses it for tests

.github/workflows/test-hive.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ jobs:
7676
- name: Setup go env and cache
7777
uses: actions/setup-go@v6
7878
with:
79-
go-version: '>=1.24'
79+
go-version: '>=1.25'
8080
go-version-file: 'hive/go.mod'
8181

8282
- name: Conditional Docker Login

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ default: all
112112

113113
## go-version: print and verify go version
114114
go-version:
115-
@if [ $(shell $(GO) version | cut -c 16-17) -lt 20 ]; then \
116-
echo "minimum required Golang version is 1.20"; \
115+
@if [ $(shell $(GO) version | cut -c 16-17) -lt 25 ]; then \
116+
echo "minimum required Golang version is 1.25"; \
117117
exit 1 ;\
118118
fi
119119

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Set `--prune.mode` to "archive" if you need an archive node or to "minimal" if y
7070
System Requirements
7171
===================
7272

73-
RAM: >=32GB, [Golang >= 1.24](https://golang.org/doc/install); GCC 10+ or Clang; On Linux: kernel > v4. 64-bit
73+
RAM: >=32GB, [Golang >= 1.25](https://golang.org/doc/install); GCC 10+ or Clang; On Linux: kernel > v4. 64-bit
7474
architecture.
7575

7676
- ArchiveNode Ethereum Mainnet: 1.6TB (May 2025). FullNode: 1.1TB (May 2025)
@@ -691,7 +691,7 @@ Windows users may run erigon in 3 possible ways:
691691
build on windows :
692692
* [Git](https://git-scm.com/downloads) for Windows must be installed (provides bash and MSYS2 environment). If
693693
you're cloning this repository is very likely you already have it
694-
* [GO Programming Language](https://golang.org/dl/) must be installed. Minimum required version is 1.24
694+
* [GO Programming Language](https://golang.org/dl/) must be installed. Minimum required version is 1.25
695695
* [Chocolatey package manager](https://chocolatey.org/) for Windows must be installed. Then install the required
696696
build tools: `choco install cmake make mingw` (provides GNU CC Compiler >= 13, GNU Make, and CMake). Make sure
697697
Windows System "Path" variable has:

agents.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This file provides guidance for AI agents working with this codebase.
44

5-
**Requirements**: Go 1.24+, GCC 10+ or Clang, 32GB+ RAM, SSD/NVMe storage
5+
**Requirements**: Go 1.25+, GCC 10+ or Clang, 32GB+ RAM, SSD/NVMe storage
66

77
## Build & Test
88

common/crypto/blake2b/blake2bAVX2_amd64.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Use of this source code is governed by a BSD-style
33
// license that can be found in the LICENSE file.
44

5-
//go:build go1.7 && amd64 && !gccgo && !appengine
5+
//go:build amd64 && !gccgo && !appengine
66

77
package blake2b
88

common/crypto/blake2b/blake2bAVX2_amd64.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Use of this source code is governed by a BSD-style
33
// license that can be found in the LICENSE file.
44

5-
// +build go1.7,amd64,!gccgo,!appengine
5+
// +build amd64,!gccgo,!appengine
66

77
#include "textflag.h"
88

common/crypto/blake2b/blake2b_amd64.go

Lines changed: 0 additions & 24 deletions
This file was deleted.

common/crypto/blake2b/register.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// Use of this source code is governed by a BSD-style
33
// license that can be found in the LICENSE file.
44

5-
//go:build go1.9
6-
75
package blake2b
86

97
import (

common/synctest/synctest.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,11 @@
1616

1717
package synctest
1818

19-
import (
20-
"testing"
21-
"testing/synctest"
22-
)
19+
import "testing/synctest"
2320

2421
//
25-
// NOTE: we can remove this pkg once go1.26 is out, and we've dropped support for go1.24
22+
// NOTE: we can remove this pkg once go1.26 is out, and we've dropped support for go1.25
2623
//
2724

2825
var Wait = synctest.Wait // nolint:govet
29-
30-
type testFunc func(t *testing.T, f func(*testing.T))
26+
var Test = synctest.Test // nolint:govet

0 commit comments

Comments
 (0)