Skip to content

build: upgrade Go toolchain from 1.25.7 to 1.26.1#1287

Open
lklimek wants to merge 3 commits into
v1.6-devfrom
chore/upgrade-go-1.26.1
Open

build: upgrade Go toolchain from 1.25.7 to 1.26.1#1287
lklimek wants to merge 3 commits into
v1.6-devfrom
chore/upgrade-go-1.26.1

Conversation

@lklimek
Copy link
Copy Markdown
Collaborator

@lklimek lklimek commented Mar 18, 2026

Summary

  • Upgrades Go toolchain from 1.25.7 to 1.26.1 across all 15 files: go.mod, CI workflows, Dockerfiles, BLS action, docs, and README
  • Required for oasis-core/go v0.2600.0 which declares go 1.26.0 in its module directive
  • No application code changes — purely version string replacements

Files changed

  • go.modgo directive
  • .github/workflows/ — 6 workflow files + BLS composite action
  • DOCKER/Dockerfile, test/docker/Dockerfile, test/e2e/docker/Dockerfile
  • README.md, docs/tutorials/go-built-in.md, docs/tutorials/go.md, test/fuzz/README.md

Test plan

🤖 Co-authored by Claudius the Magnificent AI Agent

Summary by CodeRabbit

  • Chores
    • Updated Go toolchain requirement from 1.25.7 to 1.26.1 across CI/CD workflows, build configurations, Docker images used for builds and tests, module metadata, and related documentation examples and guides.

lklimek and others added 2 commits March 18, 2026 09:15
Required for oasis-core/go v0.2600.0 which declares go 1.26.0.
Updates go.mod, CI workflows, and Dockerfiles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Updates remaining Go 1.25.7 references in README, tutorials,
fuzz README, and BLS GitHub action to 1.26.1.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 18, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ba5f284b-2a2b-4294-82b4-0aef4fbc7da9

📥 Commits

Reviewing files that changed from the base of the PR and between 0861100 and 87fe0eb.

📒 Files selected for processing (1)
  • go.mod
✅ Files skipped from review due to trivial changes (1)
  • go.mod

📝 Walkthrough

Walkthrough

The pull request updates Go toolchain references from 1.25.7 to 1.26.1 across CI workflows, Dockerfiles, go.mod, and documentation. No functional logic or API signature changes were made.

Changes

Cohort / File(s) Summary
GitHub Actions Workflows
.github/workflows/build.yml, .github/workflows/check-generated.yml, .github/workflows/e2e.yml, .github/workflows/lint.yml, .github/workflows/release.yml, .github/workflows/tests.yml
Bumped Go version from 1.25.7 → 1.26.1 in setup-go steps and workflow constraints.
GitHub Action Metadata
.github/actions/bls/action.yml
Updated action's Go version reference from 1.25.7 → 1.26.1.
Docker Configurations
DOCKER/Dockerfile, test/docker/Dockerfile, test/e2e/docker/Dockerfile
Changed ARG/BASE image Go version from 1.25.7 → 1.26.1.
Go Module & Documentation
go.mod, README.md, docs/tutorials/go.md, docs/tutorials/go-built-in.md, test/fuzz/README.md
Updated go directive and documentation examples to 1.26.1 from 1.25.7.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 From one-two-five point seven we leap,
To one-two-six point one, a hop not steep.
Workflows, Docker, docs in tune,
A tidy update under the moon.
Tiny paws, proud heart — onward we sweep!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title clearly and accurately summarizes the main change: upgrading the Go toolchain from 1.25.7 to 1.26.1, which is the singular focus across all 15 files modified in this changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/upgrade-go-1.26.1

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (2)
test/docker/Dockerfile (1)

1-42: Run the test image as a non-root user.

From Line 1 onward, there is no USER instruction, so runtime defaults to root. This can fail policy gates and hide permission issues during tests.

🔒 Proposed hardening
 # Now copy in the code
 # NOTE: this will overwrite whatever is in vendor/
 COPY . $REPO
 
+RUN useradd --create-home --uid 10001 tenderdash && \
+    chown -R tenderdash:tenderdash $REPO
+USER tenderdash
+
 # expose the volume for debugging
 VOLUME $REPO
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/docker/Dockerfile` around lines 1 - 42, The Dockerfile currently leaves
the container running as root; create and switch to a non-root user (e.g., add a
dedicated user/group and use USER) and ensure $REPO ownership/permissions are
set so that subsequent runtime operations (tenderdash testnet, VOLUME $REPO,
exposed ports) work without root: during image build (before the final
COPY/VOLUME/EXPOSE and before invoking tenderdash for the test data or at the
end of the file) create the user/group, chown $REPO and any bin dirs (GOBIN) to
that user, and add a USER instruction to run the container as that non-root user
while keeping privileged install steps (make tools, make install, install_abci)
executed as root earlier in the Dockerfile so builds succeed.
.github/workflows/lint.yml (1)

43-43: Pin exact Go version in lint workflow for deterministic CI.

Line 43 uses ^1.26.1, which can drift to newer 1.x releases. All other workflows pin to "1.26.1" exactly; align this for consistency.

♻️ Proposed change
-          go-version: "^1.26.1"
+          go-version: "1.26.1"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/lint.yml at line 43, The lint workflow currently pins Go
using a caret range ("^1.26.1") which allows unintended upgrades; change the
go-version setting from "^1.26.1" to the exact string "1.26.1" so it matches
other workflows and ensures deterministic CI (update the value referenced as
go-version in the lint workflow).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/actions/bls/action.yml:
- Around line 16-19: Update the GitHub Action step that currently reads "uses:
actions/setup-go@v2" to match other workflows by using the newer release tag
(e.g., "actions/setup-go@v6.3.0"); keep the existing "with: go-version:
\"1.26.1\"" input unchanged and ensure the surrounding step (the "uses:
actions/checkout@v6" step) remains intact so the job configuration stays
consistent.

---

Nitpick comments:
In @.github/workflows/lint.yml:
- Line 43: The lint workflow currently pins Go using a caret range ("^1.26.1")
which allows unintended upgrades; change the go-version setting from "^1.26.1"
to the exact string "1.26.1" so it matches other workflows and ensures
deterministic CI (update the value referenced as go-version in the lint
workflow).

In `@test/docker/Dockerfile`:
- Around line 1-42: The Dockerfile currently leaves the container running as
root; create and switch to a non-root user (e.g., add a dedicated user/group and
use USER) and ensure $REPO ownership/permissions are set so that subsequent
runtime operations (tenderdash testnet, VOLUME $REPO, exposed ports) work
without root: during image build (before the final COPY/VOLUME/EXPOSE and before
invoking tenderdash for the test data or at the end of the file) create the
user/group, chown $REPO and any bin dirs (GOBIN) to that user, and add a USER
instruction to run the container as that non-root user while keeping privileged
install steps (make tools, make install, install_abci) executed as root earlier
in the Dockerfile so builds succeed.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4d981bc6-9e6c-408f-abda-03e81c9a2040

📥 Commits

Reviewing files that changed from the base of the PR and between 297c65c and 0861100.

📒 Files selected for processing (15)
  • .github/actions/bls/action.yml
  • .github/workflows/build.yml
  • .github/workflows/check-generated.yml
  • .github/workflows/e2e.yml
  • .github/workflows/lint.yml
  • .github/workflows/release.yml
  • .github/workflows/tests.yml
  • DOCKER/Dockerfile
  • README.md
  • docs/tutorials/go-built-in.md
  • docs/tutorials/go.md
  • go.mod
  • test/docker/Dockerfile
  • test/e2e/docker/Dockerfile
  • test/fuzz/README.md

Comment on lines 16 to 19
- uses: actions/setup-go@v2
with:
go-version: "1.25.7"
go-version: "1.26.1"
- uses: actions/checkout@v6
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify all setup-go action versions used in repository workflows/actions
rg -nP 'uses:\s*actions/setup-go@' .github

Repository: dashpay/tenderdash

Length of output: 767


Upgrade actions/setup-go to align with other workflows.

Line 16 uses actions/setup-go@v2 while all other workflows use @v6.3.0. Standardizing on the same major version prevents CI setup drift.

♻️ Proposed update
-    - uses: actions/setup-go@v2
+    - uses: actions/setup-go@v6.3.0
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- uses: actions/setup-go@v2
with:
go-version: "1.25.7"
go-version: "1.26.1"
- uses: actions/checkout@v6
- uses: actions/setup-go@v6.3.0
with:
go-version: "1.26.1"
- uses: actions/checkout@v6
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/actions/bls/action.yml around lines 16 - 19, Update the GitHub
Action step that currently reads "uses: actions/setup-go@v2" to match other
workflows by using the newer release tag (e.g., "actions/setup-go@v6.3.0"); keep
the existing "with: go-version: \"1.26.1\"" input unchanged and ensure the
surrounding step (the "uses: actions/checkout@v6" step) remains intact so the
job configuration stays consistent.

@github-actions
Copy link
Copy Markdown

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions Bot added the Stale label Apr 19, 2026
@github-actions github-actions Bot removed the Stale label Apr 26, 2026
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