build: bump CI and Docker Go version to 1.26.0#10566
build: bump CI and Docker Go version to 1.26.0#10566Roasbeef wants to merge 1 commit intolightningnetwork:masterfrom
Conversation
In this commit, we update the Go version used across the entire build and CI infrastructure from 1.25.5 to 1.26.0. This covers the Makefile reference version, all Dockerfiles (production, dev, btcd, lnrpc, tools, builder), GitHub Actions workflows (CI and release), the golangci-lint configuration, and the protobuf generation script.
Summary of ChangesHello @Roasbeef, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request systematically upgrades the Go version used throughout the project's continuous integration and build environment from 1.25.5 to 1.26.0. This update aligns the development toolchain with the latest stable Go release, enabling the project to leverage recent compiler optimizations, standard library enhancements, runtime improvements, and critical security updates. The changes are purely configuration-based, involving no functional code modifications, and aim to maintain a modern and secure build pipeline. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Ignored Files
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request correctly updates the Go version from 1.25.5 to 1.26.0 across the CI and build infrastructure, as intended. The changes are consistent across Makefiles, Dockerfiles, and GitHub Actions configurations.
I've added a few suggestions to further improve the project's maintainability by ensuring version consistency in go.mod and enhancing the automated version checking scripts. These changes will help make future version bumps even more straightforward and less error-prone.
| # - The base part is made from the OS name, Go version and a | ||
| # job-specified key prefix. Example: `linux-go-1.25.5-unit-test-`. | ||
| # It ensures that a job running on Linux with Go 1.25 only looks for | ||
| # job-specified key prefix. Example: `linux-go-1.26.0-unit-test-`. |
There was a problem hiding this comment.
| # GitHub Actions. This is the reference version for the project. All other Go | ||
| # versions are checked against this version. | ||
| GO_VERSION = 1.25.5 | ||
| GO_VERSION = 1.26.0 |
There was a problem hiding this comment.
While you've updated the GO_VERSION here, the go.mod file still specifies go 1.25.5. To maintain consistency and ensure that the minimum required version reflects the build toolchain, it's recommended to update the go directive in go.mod as well. The comment within go.mod itself suggests that this version should be kept in sync with the GO_VERSION in the Makefile.
I suggest changing it to go 1.26.0 to match the GO_VERSION. This will also allow developers to start using Go 1.26 language features, with the toolchain enforcing this minimum version.
|
Cross-compilation is broken for the Reproduction: All targets build successfully except Root cause: Go 1.26 removed the Proposed fix: Replace
-windows-arm
+windows-arm64
- sys: darwin-arm64 freebsd-arm linux-armv6 linux-armv7 linux-arm64 windows-arm
+ sys: darwin-arm64 freebsd-arm linux-armv6 linux-armv7 linux-arm64 windows-arm64This drops 32-bit ARM Windows (dead platform — only ever used on Windows RT/Surface RT circa 2012) and adds 64-bit ARM Windows (Surface Pro X, Snapdragon laptops), which is the actively supported modern ARM Windows platform. |
ziggie1984
left a comment
There was a problem hiding this comment.
Please remove the windows 32 bit arm support
|
@Roasbeef, remember to re-request review from reviewers when ready |
This PR updates the Go version used across the entire CI and build infrastructure from 1.25.5 to 1.26.0. The prior PR (#10563) bumped the minimum Go version in all go.mod files and documentation to 1.25.5, and this change now brings the build toolchain forward to 1.26.0 so we compile and test with the latest stable release.
The following files have been updated: the Makefile GO_VERSION reference, both GitHub Actions workflows (CI and release), the golangci-lint configuration, all six Dockerfiles (production, dev, btcd, lnrpc, builder, and tools), and the protobuf generation script. Each of these previously pinned golang:1.25.5 as the base image or version string, and now references golang:1.26.0 instead. A comment example in the setup-go action was also updated for consistency.
Go 1.26 includes improvements to the compiler toolchain, standard library, and runtime that we want to take advantage of in both local development and CI. Building with the latest Go release also ensures we pick up any upstream security fixes and performance improvements that have landed since the 1.25 series.
No functional code changes are included in this PR -- only version string updates in build configuration files. The change is intentionally minimal and mechanical to make review straightforward.
All CI jobs will now build and test against Go 1.26.0, which validates that our codebase compiles cleanly under the new toolchain.