Skip to content

Upgrade to Go 1.27.1 and address the lint findings it surfaces - #4098

Draft
masih wants to merge 12 commits into
mainfrom
masih/lets-go-1-dot-23-plus-4
Draft

Upgrade to Go 1.27.1 and address the lint findings it surfaces#4098
masih wants to merge 12 commits into
mainfrom
masih/lets-go-1-dot-23-plus-4

Conversation

@masih

@masih masih commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Go 1.25.6 is behind the toolchain the rest of the stack targets, and golangci-lint v2.8.0 does not run on Go 1.27. This moves the module, the Dockerfiles, and every workflow to Go 1.27.1 and golangci-lint v2.13.2, and fixes what the new linters report. The Go version is read from go.mod everywhere it is needed (a small scripts/go-toolchain.sh handles the patch-less go 1.28 shape), the frozen precompiles/*/legacy and utils/helpers/legacy trees are excluded from lint in .golangci.yml rather than edited, and precompiles/p256/verifier.go is left byte-identical so bump_version does not mint a new legacy copy.

Two changes go beyond lint. Go 1.27's compress/flate emits different bytes than Go 1.26 for the same input, which reaches state-sync snapshots through both the multistore zlib stream and the gzipped wasm code the wasm extension writes into it, so the multistore snapshot format is bumped from 1 to 2. Upgraded nodes restore both formats, but an old binary answers REJECT_FORMAT to every snapshot an upgraded node serves, so operators should keep old-binary snapshot providers up until the rollout completes. Separately, CommitSig.FromProto now rejects a block_id_flag outside ABSENT, COMMIT, NIL at decode instead of truncating it through uint8; a value such as 257 used to wrap to Absent and pass ValidateBasic. Both are recorded in CHANGELOG.md.

Smaller behavioural effects worth knowing about: the p2p mux now returns an error instead of silently truncating a frame header longer than 255 bytes, the Tendermint HTTP client dials with the request context so cancellation aborts a pending dial, and the EVM JSON-RPC error strings for malformed eth_call arguments changed wording because Go 1.27 implements encoding/json v1 as a shim over v2 (they still match geth, and the rpc integration tests were loosened accordingly, as were the exact-bytes gzip and JSON-error-text unit tests). The v2 shim promises identical marshal/unmarshal semantics; amino-JSON sign bytes and wasmvm Env/Info serialization were checked and the Determinism and geth-parity jobs pass. Releases up to release/v6.7 cannot be built with a Go 1.27 toolchain because of their pinned cockroachdb/swiss, so the upgrade-test harness pins each worktree's toolchain from its own go.mod and operators building old tags need to do the same.

Upgrade the entire go module to latest go 1.27.1 and address lint
issues, adjust CI builds, etc.
@masih masih changed the title masih/lets go 1 dot 23 plus 4 Upgrade to go 1.27 and address lint issues Sep 4, 2026
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedSep 10, 2026, 3:31 PM

@codecov

codecov Bot commented Sep 4, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 59.81308% with 86 lines in your changes missing coverage. Please review.
✅ Project coverage is 62.12%. Comparing base (fcbbc9e) to head (52cf7c8).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
sei-cosmos/x/auth/client/testutil/helpers.go 0.00% 19 Missing ⚠️
giga/deps/xevm/types/gov.go 12.50% 14 Missing ⚠️
x/evm/types/gov.go 12.50% 14 Missing ⚠️
sei-cosmos/client/rpc/validators.go 0.00% 4 Missing ⚠️
sei-cosmos/x/params/types/proposal/proposal.go 0.00% 4 Missing ⚠️
sei-tendermint/internal/rpc/core/mempool.go 0.00% 4 Missing ⚠️
sei-cosmos/x/distribution/types/proposal.go 0.00% 2 Missing ⚠️
sei-cosmos/x/gov/types/vote.go 0.00% 2 Missing ⚠️
sei-tendermint/cmd/tendermint/commands/debug/io.go 0.00% 2 Missing ⚠️
sei-tendermint/rpc/jsonrpc/server/http_server.go 33.33% 2 Missing ⚠️
... and 18 more
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #4098      +/-   ##
==========================================
+ Coverage   61.36%   62.12%   +0.76%     
==========================================
  Files        2191     2105      -86     
  Lines      192106   182253    -9853     
==========================================
- Hits       117887   113233    -4654     
+ Misses      62737    61742     -995     
+ Partials    11482     7278    -4204     
Flag Coverage Δ
sei-chain-pr 72.34% <59.81%> (?)
sei-db 74.50% <ø> (+4.48%) ⬆️
sei-db-state-db ?
sei-db-state-db-pr 83.88% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
cmd/autobahn-e2e/aws.go 66.56% <100.00%> (+13.55%) ⬆️
cmd/frozen-rpc-router/router.go 77.67% <100.00%> (+12.27%) ⬆️
config/registry/registry.go 99.22% <100.00%> (+0.77%) ⬆️
config/registry/resolve.go 96.75% <100.00%> (+1.38%) ⬆️
evmrpc/block.go 87.50% <ø> (+8.22%) ⬆️
evmrpc/info.go 86.57% <100.00%> (+9.88%) ⬆️
evmrpc/server.go 89.86% <100.00%> (+4.14%) ⬆️
evmrpc/tests/mock_client.go 53.89% <100.00%> (+4.54%) ⬆️
evmrpc/utils.go 81.10% <100.00%> (+8.29%) ⬆️
giga/deps/xevm/types/ethtx/access_list.go 100.00% <100.00%> (ø)
... and 70 more

... and 527 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@devin-ai-integration devin-ai-integration Bot changed the title Upgrade to go 1.27 and address lint issues Upgrade to Go 1.27.1 and address the lint findings it surfaces Sep 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant