From d46ca97680f024ef0dfb69c1f8f6f71f01462fb3 Mon Sep 17 00:00:00 2001 From: Preston Van Loon Date: Wed, 5 Mar 2025 11:46:39 -0600 Subject: [PATCH] Update go to 1.24.0 (#14969) * Update rules_go to v0.53.0 * Update staticcheck to v0.6.0 * Update to go 1.24.0 * Update github.com/trailofbits/go-mutexasserts to latest * Use rules_go @ cf3c3af34bd869b864f5f2b98e2f41c2b220d6c9 * Provide the go binary to SszGen. https://github.com/bazel-contrib/rules_go/pull/4173 * Unskip SA9003 * Update github ci checks to go1.24.0 * CI: Update gosec to v2.22.1 and golangci to v1..64.5 * Temporarily disable usetesting lint check for go1.24 * gosec: Disable G115 - integer overflow conversion * gosec: Ignore G407 for "hardcoded" IV. It's not hardcoded. * Fix uses of rand.Seed. This is a no-op in go1.24 and deprecated since go1.20. * Changelog fragment --- .github/actions/gomodtidy/Dockerfile | 2 +- .github/workflows/go.yml | 16 ++++---- .golangci.yml | 1 + BUILD.bazel | 2 +- WORKSPACE | 10 ++--- changelog/pvl_go1.24.md | 11 +++++ crypto/keystore/keystore.go | 2 +- deps.bzl | 40 +++++++++---------- go.mod | 22 +++++----- go.sum | 40 +++++++++---------- .../aggregation/testing/bitlistutils.go | 8 ++-- third_party/io_bazel_rules_go_test.patch | 8 ++-- tools/ssz.bzl | 29 +++++++++++--- 13 files changed, 111 insertions(+), 80 deletions(-) create mode 100644 changelog/pvl_go1.24.md diff --git a/.github/actions/gomodtidy/Dockerfile b/.github/actions/gomodtidy/Dockerfile index 570585ef87..118fe174c6 100644 --- a/.github/actions/gomodtidy/Dockerfile +++ b/.github/actions/gomodtidy/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23-alpine +FROM golang:1.24-alpine COPY entrypoint.sh /entrypoint.sh diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 202782263f..811e7a8d7a 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -28,15 +28,15 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - - name: Set up Go 1.23 + - name: Set up Go 1.24 uses: actions/setup-go@v4 with: - go-version: '1.23.5' + go-version: '1.24.0' - name: Run Gosec Security Scanner run: | # https://github.com/securego/gosec/issues/469 export PATH=$PATH:$(go env GOPATH)/bin - go install github.com/securego/gosec/v2/cmd/gosec@v2.19.0 - gosec -exclude-generated -exclude=G307 -exclude-dir=crypto/bls/herumi ./... + go install github.com/securego/gosec/v2/cmd/gosec@v2.22.1 + gosec -exclude-generated -exclude=G307,G115 -exclude-dir=crypto/bls/herumi ./... lint: name: Lint @@ -45,16 +45,16 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Set up Go 1.23 + - name: Set up Go 1.24 uses: actions/setup-go@v4 with: - go-version: '1.23.5' + go-version: '1.24.0' id: go - name: Golangci-lint uses: golangci/golangci-lint-action@v5 with: - version: v1.63.4 + version: v1.64.5 args: --config=.golangci.yml --out-${NO_FUTURE}format colored-line-number build: @@ -64,7 +64,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v4 with: - go-version: '1.23.5' + go-version: '1.24.0' id: go - name: Check out code into the Go module directory diff --git a/.golangci.yml b/.golangci.yml index 5dbb659483..d5606d1185 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -75,6 +75,7 @@ linters: - tagliatelle - thelper - unparam + - usetesting - varnamelen - wrapcheck - wsl diff --git a/BUILD.bazel b/BUILD.bazel index 4020dcac40..7c5ecdcd6c 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -165,7 +165,7 @@ STATICCHECK_ANALYZERS = [ "sa6006", "sa9001", "sa9002", - #"sa9003", # Doesn't build. See https://github.com/dominikh/go-tools/pull/1483 + "sa9003", "sa9004", "sa9005", "sa9006", diff --git a/WORKSPACE b/WORKSPACE index ef4561bc3d..9f1d3dffae 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -160,15 +160,15 @@ oci_register_toolchains( http_archive( name = "io_bazel_rules_go", + integrity = "sha256-JD8o94crTb2DFiJJR8nMAGdBAW95zIENB4cbI+JnrI4=", patch_args = ["-p1"], patches = [ # Expose internals of go_test for custom build transitions. "//third_party:io_bazel_rules_go_test.patch", ], - sha256 = "b2038e2de2cace18f032249cb4bb0048abf583a36369fa98f687af1b3f880b26", + strip_prefix = "rules_go-cf3c3af34bd869b864f5f2b98e2f41c2b220d6c9", urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.48.1/rules_go-v0.48.1.zip", - "https://github.com/bazelbuild/rules_go/releases/download/v0.48.1/rules_go-v0.48.1.zip", + "https://github.com/bazel-contrib/rules_go/archive/cf3c3af34bd869b864f5f2b98e2f41c2b220d6c9.tar.gz", ], ) @@ -210,7 +210,7 @@ load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_depe go_rules_dependencies() go_register_toolchains( - go_version = "1.23.5", + go_version = "1.24.0", nogo = "@//:nogo", ) @@ -431,7 +431,7 @@ gometalinter_dependencies() load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") -gazelle_dependencies() +gazelle_dependencies(go_sdk = "go_sdk") load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") diff --git a/changelog/pvl_go1.24.md b/changelog/pvl_go1.24.md new file mode 100644 index 0000000000..7496bf0561 --- /dev/null +++ b/changelog/pvl_go1.24.md @@ -0,0 +1,11 @@ +### Changed + +- Updated go to go1.24.0. +- Updated gosec to v2.22.1 and golangci to v1.64.5. +- Updated github.com/trailofbits/go-mutexasserts. +- Updated rules_go to cf3c3af34bd869b864f5f2b98e2f41c2b220d6c9 to support go1.24.0. + +### Fixed + +- Fixed use of deprecated rand.Seed. +- Fixed build issue with SszGen where the go binary was not present in the $PATH. diff --git a/crypto/keystore/keystore.go b/crypto/keystore/keystore.go index 2a6eec507c..95477b3e99 100644 --- a/crypto/keystore/keystore.go +++ b/crypto/keystore/keystore.go @@ -146,7 +146,7 @@ func EncryptKey(key *Key, password string, scryptN, scryptP int) ([]byte, error) return nil, errors.New("reading from crypto/rand failed: " + err.Error()) } - cipherText, err := aesCTRXOR(encryptKey, keyBytes, iv) + cipherText, err := aesCTRXOR(encryptKey, keyBytes, iv) // #nosec G407 if err != nil { return nil, err } diff --git a/deps.bzl b/deps.bzl index 71790e18c7..a07822d311 100644 --- a/deps.bzl +++ b/deps.bzl @@ -37,8 +37,8 @@ def prysm_deps(): go_repository( name = "co_honnef_go_tools", importpath = "honnef.co/go/tools", - sum = "h1:4bH5o3b5ZULQ4UrBmP+63W9r7qIkqJClEA9ko5YKx+I=", - version = "v0.5.1", + sum = "h1:TAODvD3knlq75WCp2nyGJtT4LeRV/o7NN9nYPeVJXf8=", + version = "v0.6.0", ) go_repository( name = "com_github_aclements_go_moremath", @@ -3363,8 +3363,8 @@ def prysm_deps(): go_repository( name = "com_github_trailofbits_go_mutexasserts", importpath = "github.com/trailofbits/go-mutexasserts", - sum = "h1:+LynomhWB+14Plp/bOONEAZCtvCZk4leRbTvNzNVkL0=", - version = "v0.0.0-20230328101604-8cdbc5f3d279", + sum = "h1:EBoYk5zHOfuHDBqLFx4eSPRVcbnW+L3aFJzoCi8zRnk=", + version = "v0.0.0-20250212181730-4c2b8e9e784b", ) go_repository( name = "com_github_tyler_smith_go_bip39", @@ -4739,8 +4739,8 @@ def prysm_deps(): go_repository( name = "org_golang_x_crypto", importpath = "golang.org/x/crypto", - sum = "h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=", - version = "v0.32.0", + sum = "h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus=", + version = "v0.33.0", ) go_repository( name = "org_golang_x_exp", @@ -4775,14 +4775,14 @@ def prysm_deps(): go_repository( name = "org_golang_x_mod", importpath = "golang.org/x/mod", - sum = "h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=", - version = "v0.22.0", + sum = "h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM=", + version = "v0.23.0", ) go_repository( name = "org_golang_x_net", importpath = "golang.org/x/net", - sum = "h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=", - version = "v0.34.0", + sum = "h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=", + version = "v0.35.0", ) go_repository( name = "org_golang_x_oauth2", @@ -4799,14 +4799,14 @@ def prysm_deps(): go_repository( name = "org_golang_x_sync", importpath = "golang.org/x/sync", - sum = "h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=", - version = "v0.10.0", + sum = "h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=", + version = "v0.11.0", ) go_repository( name = "org_golang_x_sys", importpath = "golang.org/x/sys", - sum = "h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=", - version = "v0.29.0", + sum = "h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=", + version = "v0.30.0", ) go_repository( name = "org_golang_x_telemetry", @@ -4817,14 +4817,14 @@ def prysm_deps(): go_repository( name = "org_golang_x_term", importpath = "golang.org/x/term", - sum = "h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=", - version = "v0.28.0", + sum = "h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU=", + version = "v0.29.0", ) go_repository( name = "org_golang_x_text", importpath = "golang.org/x/text", - sum = "h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=", - version = "v0.21.0", + sum = "h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=", + version = "v0.22.0", ) go_repository( name = "org_golang_x_time", @@ -4835,8 +4835,8 @@ def prysm_deps(): go_repository( name = "org_golang_x_tools", importpath = "golang.org/x/tools", - sum = "h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=", - version = "v0.29.0", + sum = "h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY=", + version = "v0.30.0", ) go_repository( name = "org_golang_x_xerrors", diff --git a/go.mod b/go.mod index cbd8d3eb83..8b4b245043 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/prysmaticlabs/prysm/v5 -go 1.23.5 +go 1.24.0 require ( github.com/MariusVanDerWijden/FuzzyVM v0.0.0-20240516070431-7828990cad7d @@ -71,7 +71,7 @@ require ( github.com/stretchr/testify v1.10.0 github.com/supranational/blst v0.3.14 github.com/thomaso-mirodin/intmath v0.0.0-20160323211736-5dc6d854e46e - github.com/trailofbits/go-mutexasserts v0.0.0-20230328101604-8cdbc5f3d279 + github.com/trailofbits/go-mutexasserts v0.0.0-20250212181730-4c2b8e9e784b github.com/tyler-smith/go-bip39 v1.1.0 github.com/urfave/cli/v2 v2.27.1 github.com/uudashr/gocognit v1.0.5 @@ -87,17 +87,17 @@ require ( go.opentelemetry.io/otel/trace v1.34.0 go.uber.org/automaxprocs v1.5.2 go.uber.org/mock v0.4.0 - golang.org/x/crypto v0.32.0 + golang.org/x/crypto v0.33.0 golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa - golang.org/x/sync v0.10.0 - golang.org/x/tools v0.29.0 + golang.org/x/sync v0.11.0 + golang.org/x/tools v0.30.0 google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 google.golang.org/grpc v1.69.4 google.golang.org/protobuf v1.36.3 gopkg.in/d4l3k/messagediff.v1 v1.2.1 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 - honnef.co/go/tools v0.5.1 + honnef.co/go/tools v0.6.0 k8s.io/apimachinery v0.30.4 k8s.io/client-go v0.30.4 ) @@ -259,11 +259,11 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp/typeparams v0.0.0-20231108232855-2478ac86f678 // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.34.0 // indirect + golang.org/x/mod v0.23.0 // indirect + golang.org/x/net v0.35.0 // indirect golang.org/x/oauth2 v0.24.0 // indirect - golang.org/x/term v0.28.0 // indirect - golang.org/x/text v0.21.0 // indirect + golang.org/x/term v0.29.0 // indirect + golang.org/x/text v0.22.0 // indirect golang.org/x/time v0.5.0 // indirect gopkg.in/cenkalti/backoff.v1 v1.1.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect @@ -284,7 +284,7 @@ require ( github.com/go-playground/validator/v10 v10.13.0 github.com/peterh/liner v1.2.0 // indirect github.com/prysmaticlabs/gohashtree v0.0.4-beta.0.20240624100937-73632381301b - golang.org/x/sys v0.29.0 // indirect + golang.org/x/sys v0.30.0 // indirect k8s.io/klog/v2 v2.120.1 // indirect k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect ) diff --git a/go.sum b/go.sum index a81dc7200d..0c937500a6 100644 --- a/go.sum +++ b/go.sum @@ -1037,8 +1037,8 @@ github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5I github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4= github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/trailofbits/go-mutexasserts v0.0.0-20230328101604-8cdbc5f3d279 h1:+LynomhWB+14Plp/bOONEAZCtvCZk4leRbTvNzNVkL0= -github.com/trailofbits/go-mutexasserts v0.0.0-20230328101604-8cdbc5f3d279/go.mod h1:GA3+Mq3kt3tYAfM0WZCu7ofy+GW9PuGysHfhr+6JX7s= +github.com/trailofbits/go-mutexasserts v0.0.0-20250212181730-4c2b8e9e784b h1:EBoYk5zHOfuHDBqLFx4eSPRVcbnW+L3aFJzoCi8zRnk= +github.com/trailofbits/go-mutexasserts v0.0.0-20250212181730-4c2b8e9e784b/go.mod h1:4R6Qam+w871wOlyRq59zRLjhb5x9/De/wgPeaCTaCwI= github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/umbracle/gohashtree v0.0.2-alpha.0.20230207094856-5b775a815c10 h1:CQh33pStIp/E30b7TxDlXfM0145bn2e8boI30IxAhTg= @@ -1172,8 +1172,8 @@ golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= -golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= -golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= +golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1216,8 +1216,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= +golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1274,8 +1274,8 @@ golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= -golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/oauth2 v0.0.0-20170912212905-13449ad91cb2/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1305,8 +1305,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= -golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= +golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1395,8 +1395,8 @@ golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= -golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1405,8 +1405,8 @@ golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= -golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= -golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= +golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= +golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1421,8 +1421,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/time v0.0.0-20170424234030-8be79e1e0910/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1495,8 +1495,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= -golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= +golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= +golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1672,8 +1672,8 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.5.1 h1:4bH5o3b5ZULQ4UrBmP+63W9r7qIkqJClEA9ko5YKx+I= -honnef.co/go/tools v0.5.1/go.mod h1:e9irvo83WDG9/irijV44wr3tbhcFeRnfpVlRqVwpzMs= +honnef.co/go/tools v0.6.0 h1:TAODvD3knlq75WCp2nyGJtT4LeRV/o7NN9nYPeVJXf8= +honnef.co/go/tools v0.6.0/go.mod h1:3puzxxljPCe8RGJX7BIy1plGbxEOZni5mR2aXe3/uk4= k8s.io/api v0.30.4 h1:XASIELmW8w8q0i1Y4124LqPoWMycLjyQti/fdYHYjCs= k8s.io/api v0.30.4/go.mod h1:ZqniWRKu7WIeLijbbzetF4U9qZ03cg5IRwl8YVs8mX0= k8s.io/apimachinery v0.30.4 h1:5QHQI2tInzr8LsT4kU/2+fSeibH1eIHswNx480cqIoY= diff --git a/proto/prysm/v1alpha1/attestation/aggregation/testing/bitlistutils.go b/proto/prysm/v1alpha1/attestation/aggregation/testing/bitlistutils.go index 370f6f7166..f02a8c12bb 100644 --- a/proto/prysm/v1alpha1/attestation/aggregation/testing/bitlistutils.go +++ b/proto/prysm/v1alpha1/attestation/aggregation/testing/bitlistutils.go @@ -46,11 +46,11 @@ func Bitlists64WithSingleBitSet(n, length uint64) []*bitfield.Bitlist64 { func BitlistsWithMultipleBitSet(t testing.TB, n, length, count uint64) []bitfield.Bitlist { seed := time.Now().UnixNano() t.Logf("bitlistsWithMultipleBitSet random seed: %v", seed) - rand.Seed(seed) + r := rand.New(rand.NewSource(seed)) // #nosec G404 lists := make([]bitfield.Bitlist, n) for i := uint64(0); i < n; i++ { b := bitfield.NewBitlist(length) - keys := rand.Perm(int(length)) // lint:ignore uintcast -- This is safe in test code. + keys := r.Perm(int(length)) // lint:ignore uintcast -- This is safe in test code. for _, key := range keys[:count] { b.SetBitAt(uint64(key), true) } @@ -63,11 +63,11 @@ func BitlistsWithMultipleBitSet(t testing.TB, n, length, count uint64) []bitfiel func Bitlists64WithMultipleBitSet(t testing.TB, n, length, count uint64) []*bitfield.Bitlist64 { seed := time.Now().UnixNano() t.Logf("Bitlists64WithMultipleBitSet random seed: %v", seed) - rand.Seed(seed) + r := rand.New(rand.NewSource(seed)) // #nosec G404 lists := make([]*bitfield.Bitlist64, n) for i := uint64(0); i < n; i++ { b := bitfield.NewBitlist64(length) - keys := rand.Perm(int(length)) // lint:ignore uintcast -- This is safe in test code. + keys := r.Perm(int(length)) // lint:ignore uintcast -- This is safe in test code. for _, key := range keys[:count] { b.SetBitAt(uint64(key), true) } diff --git a/third_party/io_bazel_rules_go_test.patch b/third_party/io_bazel_rules_go_test.patch index 6b918487ad..75ceb20cb6 100644 --- a/third_party/io_bazel_rules_go_test.patch +++ b/third_party/io_bazel_rules_go_test.patch @@ -1,8 +1,8 @@ diff --git a/go/private/rules/test.bzl b/go/private/rules/test.bzl -index 413a19da..b289f52f 100644 +index 066c6892..5275f541 100644 --- a/go/private/rules/test.bzl +++ b/go/private/rules/test.bzl -@@ -189,7 +189,7 @@ def _go_test_impl(ctx): +@@ -224,7 +224,7 @@ def _go_test_impl(ctx): run_environment_info, ] @@ -11,12 +11,12 @@ index 413a19da..b289f52f 100644 "implementation": _go_test_impl, "attrs": { "data": attr.label_list( -@@ -471,7 +471,7 @@ _go_test_kwargs = { +@@ -508,7 +508,7 @@ _go_test_kwargs = { """, } -go_test = rule(**_go_test_kwargs) +go_test = rule(**go_test_kwargs) - def _recompile_external_deps(go, external_source, internal_archive, library_labels): + def _recompile_external_deps(go, external_go_info, internal_archive, library_labels): """Recompiles some archives in order to split internal and external tests. diff --git a/tools/ssz.bzl b/tools/ssz.bzl index 763972a422..bf15ca519d 100644 --- a/tools/ssz.bzl +++ b/tools/ssz.bzl @@ -63,12 +63,30 @@ def _ssz_go_proto_library_impl(ctx): if len(ctx.attr.exclude_objs) > 0: args.append("--exclude-objs=%s" % ",".join(ctx.attr.exclude_objs)) - ctx.actions.run( - executable = ctx.executable.sszgen, - progress_message = "Generating ssz marshal and unmarshal functions", - inputs = input_files, - arguments = args, + # golang.org/x/tools requires the go binary to be available in the PATH. + # Follows the same pattern as https://github.com/bazel-contrib/rules_go/pull/4173 + sdk = ctx.toolchains["@io_bazel_rules_go//go:toolchain"].sdk + goroot = sdk.root_file.dirname + env = { + "PATH": "PATH={goroot}/bin:$PATH".format(goroot = goroot), + "GOROOT": goroot, + } + ctx.actions.run_shell( outputs = [output], + command = """ + export GOROOT=$(pwd)/{goroot} && + export PATH=$GOROOT/bin:$PATH && + {cmd} {args}""".format( + goroot = goroot, + cmd = ctx.executable.sszgen.path, + args = " ".join(args), + ), + tools = [ + ctx.executable.sszgen, + sdk.go, + ], + mnemonic = "SszGen", + inputs = input_files, ) ssz_gen_marshal = rule( @@ -86,6 +104,7 @@ ssz_gen_marshal = rule( "includes": attr.label_list(providers = [GoLibrary]), "out": attr.output(), }, + toolchains = ["@io_bazel_rules_go//go:toolchain"], ) SSZ_DEPS = ["@com_github_prysmaticlabs_fastssz//:go_default_library"]