From a8613ea52f77b4e1961254a17b04788ebab8744a Mon Sep 17 00:00:00 2001 From: ziggie Date: Tue, 20 Oct 2026 15:49:09 -0300 Subject: [PATCH] build: bump Go language and toolchain versions Keep lnd compatible with the previous stable Go release by updating the language version in every tracked go.mod file to Go 1.26.10. Move build and release tooling to Go 1.27.3, including CI, Docker images, the Makefile, protobuf generation, the linter configuration, and mobile build documentation. Update the installation documentation and official Linux archive checksums for Go 1.26.10 as well. (cherry picked from commit d67c9edf8da04f6aadb6503e83b18cfa583fa207) (cherry picked from commit 6389391f8d647ee68d1c07f59e562e7872d40c83) --- .github/actions/setup-go/action.yml | 2 +- .github/workflows/fork.yml | 2 +- .github/workflows/govulncheck.yml | 2 +- .github/workflows/main.yml | 2 +- .github/workflows/release.yaml | 2 +- .golangci.yml | 2 +- Dockerfile | 2 +- Makefile | 2 +- actor/go.mod | 2 +- cert/go.mod | 2 +- clock/go.mod | 2 +- dev.Dockerfile | 2 +- docker/btcd/Dockerfile | 2 +- docs/INSTALL.md | 18 +++++++++--------- docs/native-ubuntu.md | 2 +- fn/go.mod | 2 +- go.mod | 2 +- healthcheck/go.mod | 2 +- kvdb/go.mod | 2 +- lnrpc/Dockerfile | 2 +- lnrpc/gen_protos_docker.sh | 2 +- make/builder.Dockerfile | 2 +- mobile/README.md | 2 +- queue/go.mod | 2 +- scripts/native-ubuntu.sh | 6 +++--- sqldb/go.mod | 2 +- sqldb/v2/go.mod | 2 +- ticker/go.mod | 2 +- tlv/go.mod | 2 +- tools/Dockerfile | 2 +- tools/go.mod | 2 +- tools/linters/go.mod | 2 +- tor/go.mod | 2 +- 33 files changed, 43 insertions(+), 43 deletions(-) diff --git a/.github/actions/setup-go/action.yml b/.github/actions/setup-go/action.yml index 92792e330f4..3fedc37aae0 100644 --- a/.github/actions/setup-go/action.yml +++ b/.github/actions/setup-go/action.yml @@ -52,7 +52,7 @@ runs: # The key is used to create and later look up the cache. It's made of # four parts: # - The base part is made from the OS name, Go version and a - # job-specified key prefix. Example: `linux-go-1.27.2-unit-test-`. + # job-specified key prefix. Example: `linux-go-1.27.3-unit-test-`. # It ensures that a job running on Linux with Go 1.27 only looks for # caches from the same environment. # - The unique part is the `hashFiles('**/go.sum')`, which calculates a diff --git a/.github/workflows/fork.yml b/.github/workflows/fork.yml index 8202033127f..37b4f209eec 100644 --- a/.github/workflows/fork.yml +++ b/.github/workflows/fork.yml @@ -33,7 +33,7 @@ jobs: - uses: actions/setup-go@v5 with: # Keep with GO_VERSION in the Makefile; the next step checks. - go-version: '1.27.2' + go-version: '1.27.3' cache: true - name: Go version matches the Makefile run: test "$(go env GOVERSION)" = "go$(sed -n 's/^GO_VERSION = //p' Makefile)" diff --git a/.github/workflows/govulncheck.yml b/.github/workflows/govulncheck.yml index 385fcb1a140..69200290b21 100644 --- a/.github/workflows/govulncheck.yml +++ b/.github/workflows/govulncheck.yml @@ -40,7 +40,7 @@ defaults: env: # If you change this please also update GO_VERSION in Makefile (then run # `make lint` to see where else it needs to be updated as well). - GO_VERSION: 1.27.2 + GO_VERSION: 1.27.3 jobs: govulncheck: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9ac796593da..34de8387928 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -40,7 +40,7 @@ env: # If you change this please also update GO_VERSION in Makefile (then run # `make lint` to see where else it needs to be updated as well). - GO_VERSION: 1.27.2 + GO_VERSION: 1.27.3 jobs: static-checks: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 590686d37ff..e284f17777c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -12,7 +12,7 @@ defaults: env: # If you change this please also update GO_VERSION in Makefile (then run # `make lint` to see where else it needs to be updated as well). - GO_VERSION: 1.27.2 + GO_VERSION: 1.27.3 jobs: ######################## diff --git a/.golangci.yml b/.golangci.yml index de9e8fa792e..a9aa92916ce 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -3,7 +3,7 @@ version: "2" run: # If you change this please also update GO_VERSION in Makefile (then run # `make lint` to see where else it needs to be updated as well). - go: "1.27.2" + go: "1.27.3" # Abort after 10 minutes. timeout: 10m diff --git a/Dockerfile b/Dockerfile index 9784bc0236c..c2cce337d37 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ # The builder runs on the build machine's own architecture and cross-compiles # for the target (the release build has no cgo), so a multi-platform build # does not run the Go compiler under emulation. -FROM --platform=$BUILDPLATFORM golang:1.27.2-alpine AS builder +FROM --platform=$BUILDPLATFORM golang:1.27.3-alpine AS builder ARG checkout="blake2b" ARG git_url="https://github.com/paulscode/lightning-fork" diff --git a/Makefile b/Makefile index 82a018874b8..0e3a7ad6033 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,7 @@ ACTIVE_GO_VERSION_MINOR := $(shell echo $(ACTIVE_GO_VERSION) | cut -d. -f2) # GO_VERSION is the Go version used for the release build, docker files, and # GitHub Actions. This is the reference version for the project. All other Go # versions are checked against this version. -GO_VERSION = 1.27.2 +GO_VERSION = 1.27.3 GOBUILD := $(GOCC) build -v GOINSTALL := $(GOCC) install -v diff --git a/actor/go.mod b/actor/go.mod index 84b6a6161c5..701a6e34877 100644 --- a/actor/go.mod +++ b/actor/go.mod @@ -1,6 +1,6 @@ module github.com/lightningnetwork/lnd/actor -go 1.26.8 +go 1.26.10 require ( github.com/btcsuite/btclog/v2 v2.0.1-0.20250602222548-9967d19bb084 diff --git a/cert/go.mod b/cert/go.mod index 2fcddd29405..9f92857df79 100644 --- a/cert/go.mod +++ b/cert/go.mod @@ -1,6 +1,6 @@ module github.com/lightningnetwork/lnd/cert -go 1.26.8 +go 1.26.10 require github.com/stretchr/testify v1.8.2 diff --git a/clock/go.mod b/clock/go.mod index b28a00d3a4e..83da9ed2c6a 100644 --- a/clock/go.mod +++ b/clock/go.mod @@ -1,6 +1,6 @@ module github.com/lightningnetwork/lnd/clock -go 1.26.8 +go 1.26.10 require github.com/stretchr/testify v1.8.2 diff --git a/dev.Dockerfile b/dev.Dockerfile index a820ec3677f..4a356667322 100644 --- a/dev.Dockerfile +++ b/dev.Dockerfile @@ -1,6 +1,6 @@ # If you change this please also update GO_VERSION in Makefile (then run # `make lint` to see where else it needs to be updated as well). -FROM golang:1.27.1-alpine AS builder +FROM golang:1.27.3-alpine AS builder LABEL maintainer="Olaoluwa Osuntokun " diff --git a/docker/btcd/Dockerfile b/docker/btcd/Dockerfile index 27db0138743..84a1633f3b7 100644 --- a/docker/btcd/Dockerfile +++ b/docker/btcd/Dockerfile @@ -1,6 +1,6 @@ # If you change this please also update GO_VERSION in Makefile (then run # `make lint` to see where else it needs to be updated as well). -FROM golang:1.27.2-alpine AS builder +FROM golang:1.27.3-alpine AS builder LABEL maintainer="Olaoluwa Osuntokun " diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 5dabe4a27d6..7984a9ec05f 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -93,7 +93,7 @@ following build dependencies are required: ### Installing Go -`lnd` is written in Go, with a minimum version of `1.26.8` (or, in case this +`lnd` is written in Go, with a minimum version of `1.26.10` (or, in case this document gets out of date, whatever the Go version in the main `go.mod` file requires). To install, run one of the following commands for your OS: @@ -101,15 +101,15 @@ requires). To install, run one of the following commands for your OS: Linux (x86-64) ``` - wget https://dl.google.com/go/go1.26.8.linux-amd64.tar.gz - echo "d0f743b33e8d8945e6b1f432edd15785c70507121d6e2a723b21285eddf8b57b go1.26.8.linux-amd64.tar.gz" | sha256sum --check + wget https://dl.google.com/go/go1.26.10.linux-amd64.tar.gz + echo "ccfe7ae822d2c2f41f4fe7c956199967a4dac22d0ee0d2b2bfdb440aab3b20c5 go1.26.10.linux-amd64.tar.gz" | sha256sum --check ``` - The command above should output `go1.26.8.linux-amd64.tar.gz: OK`. If it + The command above should output `go1.26.10.linux-amd64.tar.gz: OK`. If it doesn't, then the target REPO HAS BEEN MODIFIED, and you shouldn't install this version of Go. If it matches, then proceed to install Go: ``` - sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.26.8.linux-amd64.tar.gz + sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.26.10.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin ``` @@ -118,15 +118,15 @@ requires). To install, run one of the following commands for your OS: Linux (ARMv6) ``` - wget https://dl.google.com/go/go1.26.8.linux-armv6l.tar.gz - echo "eab440beabf395870752021fa74cedf04f97b61e43ebbe005ecbb98b94e55697 go1.26.8.linux-armv6l.tar.gz" | sha256sum --check + wget https://dl.google.com/go/go1.26.10.linux-armv6l.tar.gz + echo "7d89fd32259eb0ff647381e8c3465dc32ccfc7f71cb7b9bcd95604c3481f5109 go1.26.10.linux-armv6l.tar.gz" | sha256sum --check ``` - The command above should output `go1.26.8.linux-armv6l.tar.gz: OK`. If it + The command above should output `go1.26.10.linux-armv6l.tar.gz: OK`. If it isn't, then the target REPO HAS BEEN MODIFIED, and you shouldn't install this version of Go. If it matches, then proceed to install Go: ``` - sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.26.8.linux-armv6l.tar.gz + sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.26.10.linux-armv6l.tar.gz export PATH=$PATH:/usr/local/go/bin ``` diff --git a/docs/native-ubuntu.md b/docs/native-ubuntu.md index 30a5257b9af..9cfd47cc3bc 100644 --- a/docs/native-ubuntu.md +++ b/docs/native-ubuntu.md @@ -53,7 +53,7 @@ scripts/native-ubuntu.sh all # packages, Go, build, configure | Step | What it does | | --- | --- | | `deps` | `sudo apt-get install git make curl ca-certificates unzip jq xz-utils openssh-client` (only what is missing) | -| `go` | Downloads Go 1.27.2 from go.dev into `~/.local/go`, after checking the file against Go's published SHA-256. Skipped if you already have a new enough Go. | +| `go` | Downloads Go 1.27.3 from go.dev into `~/.local/go`, after checking the file against Go's published SHA-256. Skipped if you already have a new enough Go. | | `build` | `make release-install`: builds `lnd` and `lncli` into `~/go/bin` (about 2 minutes on a recent machine, longer on a Pi) | | `configure` | Checks Knots (version, chain, RPC login, ZMQ) and writes `~/.lnd/lnd.conf`. It never overwrites an existing `lnd.conf`. | diff --git a/fn/go.mod b/fn/go.mod index 457bc8680fd..878073cfbd6 100644 --- a/fn/go.mod +++ b/fn/go.mod @@ -1,6 +1,6 @@ module github.com/lightningnetwork/lnd/fn/v2 -go 1.26.8 +go 1.26.10 require ( github.com/stretchr/testify v1.8.1 diff --git a/go.mod b/go.mod index ed2649ae82c..0c90c8aaf52 100644 --- a/go.mod +++ b/go.mod @@ -214,7 +214,7 @@ replace google.golang.org/protobuf => github.com/lightninglabs/protobuf-go-hex-d // If you change this please also update docs/INSTALL.md and all other go.mod // files. The release build toolchain version is tracked separately by // GO_VERSION in Makefile. -go 1.26.8 +go 1.26.10 retract v0.0.2 diff --git a/healthcheck/go.mod b/healthcheck/go.mod index 482a34cb79c..31b7ba51b80 100644 --- a/healthcheck/go.mod +++ b/healthcheck/go.mod @@ -24,4 +24,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -go 1.26.8 +go 1.26.10 diff --git a/kvdb/go.mod b/kvdb/go.mod index 65a3cdd014b..bb6a19e40c5 100644 --- a/kvdb/go.mod +++ b/kvdb/go.mod @@ -143,4 +143,4 @@ replace github.com/ulikunitz/xz => github.com/ulikunitz/xz v0.5.11 // https://deps.dev/advisory/OSV/GO-2021-0053?from=%2Fgo%2Fgithub.com%252Fgogo%252Fprotobuf%2Fv1.3.1 replace github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2 -go 1.26.8 +go 1.26.10 diff --git a/lnrpc/Dockerfile b/lnrpc/Dockerfile index 13f1e69db59..6d77c6d62ea 100644 --- a/lnrpc/Dockerfile +++ b/lnrpc/Dockerfile @@ -1,6 +1,6 @@ # If you change this please also update GO_VERSION in Makefile (then run # `make lint` to see where else it needs to be updated as well). -FROM golang:1.27.2-bookworm +FROM golang:1.27.3-bookworm RUN apt-get update && apt-get install -y \ git \ diff --git a/lnrpc/gen_protos_docker.sh b/lnrpc/gen_protos_docker.sh index 6b0b8a4cda5..7d09d8972e5 100755 --- a/lnrpc/gen_protos_docker.sh +++ b/lnrpc/gen_protos_docker.sh @@ -6,7 +6,7 @@ set -e DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # golang docker image version used in this script. -GO_IMAGE=docker.io/library/golang:1.27.2-alpine +GO_IMAGE=docker.io/library/golang:1.27.3-alpine PROTOBUF_VERSION=$(docker run --rm -v $DIR/../:/lnd -w /lnd $GO_IMAGE \ go list -f '{{.Version}}' -m google.golang.org/protobuf) diff --git a/make/builder.Dockerfile b/make/builder.Dockerfile index ed52f388182..a6a795d416b 100644 --- a/make/builder.Dockerfile +++ b/make/builder.Dockerfile @@ -1,6 +1,6 @@ # If you change this please also update GO_VERSION in Makefile (then run # `make lint` to see where else it needs to be updated as well). -FROM golang:1.27.1-bookworm +FROM golang:1.27.3-bookworm MAINTAINER Olaoluwa Osuntokun diff --git a/mobile/README.md b/mobile/README.md index 3e5b93b3c48..002dd21177b 100644 --- a/mobile/README.md +++ b/mobile/README.md @@ -103,7 +103,7 @@ following commands: ``` RUN apt-get install -y wget \ - && wget -c https://dl.google.com/go/go1.27.2.linux-amd64.tar.gz -O - \ + && wget -c https://dl.google.com/go/go1.27.3.linux-amd64.tar.gz -O - \ | tar -xz -C /usr/local ENV GOPATH=/go ENV PATH=$PATH:/usr/local/go/bin:/go/bin diff --git a/queue/go.mod b/queue/go.mod index f6a45667327..b27ff57f147 100644 --- a/queue/go.mod +++ b/queue/go.mod @@ -1,6 +1,6 @@ module github.com/lightningnetwork/lnd/queue -go 1.26.8 +go 1.26.10 require ( github.com/lightningnetwork/lnd/fn/v2 v2.0.8 diff --git a/scripts/native-ubuntu.sh b/scripts/native-ubuntu.sh index 4d391c9c1fb..f102a752621 100755 --- a/scripts/native-ubuntu.sh +++ b/scripts/native-ubuntu.sh @@ -42,9 +42,9 @@ set -euo pipefail # The Go release Lightning Fork's own release builds use (see Dockerfile), # with the checksums go.dev publishes for it. -GO_VERSION=1.27.2 -GO_SHA256_amd64=ecbadb99091a3f46e31f5f934b068b1864eafa7995211b39eaddf76996045fe5 -GO_SHA256_arm64=94f3e30b8e374bc285e7dadc11e0865726b9bc6e85b841ccceaabc0214c6b7c8 +GO_VERSION=1.27.3 +GO_SHA256_amd64=65efbc80fdc1fa2cd2631cad5b481777a68e8725f34e89f50fc6ac714e379b40 +GO_SHA256_arm64=a06e99309dbcbdca1a8ccd2282c3ee146e55930886e26b4f1193269587165f49 # The dashboard (github.com/paulscode/umbrel-lightning-fork) runs on the # Node.js its Umbrel and StartOS image uses, with nodejs.org's checksums. diff --git a/sqldb/go.mod b/sqldb/go.mod index 001d9f9ce2f..7451262dbfd 100644 --- a/sqldb/go.mod +++ b/sqldb/go.mod @@ -71,4 +71,4 @@ require ( modernc.org/memory v1.12.1 // indirect ) -go 1.26.8 +go 1.26.10 diff --git a/sqldb/v2/go.mod b/sqldb/v2/go.mod index b2a11e1a904..8c73616e6ae 100644 --- a/sqldb/v2/go.mod +++ b/sqldb/v2/go.mod @@ -74,4 +74,4 @@ require ( // did not yet make it into the upstream repository. replace github.com/golang-migrate/migrate/v4 => github.com/lightninglabs/migrate/v4 v4.18.2-9023d66a-fork-pr-2.0.20251211093704-71c1eef09789 -go 1.26.8 +go 1.26.10 diff --git a/ticker/go.mod b/ticker/go.mod index b5f0f7f6330..2e85daa2608 100644 --- a/ticker/go.mod +++ b/ticker/go.mod @@ -1,3 +1,3 @@ module github.com/lightningnetwork/lnd/ticker -go 1.26.8 +go 1.26.10 diff --git a/tlv/go.mod b/tlv/go.mod index 0db0fc97d36..9948ed9a70e 100644 --- a/tlv/go.mod +++ b/tlv/go.mod @@ -22,4 +22,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -go 1.26.8 +go 1.26.10 diff --git a/tools/Dockerfile b/tools/Dockerfile index 2c2037bb411..9a9c94a1883 100644 --- a/tools/Dockerfile +++ b/tools/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.27.2 +FROM golang:1.27.3 RUN apt-get update && apt-get install -y git ENV GOCACHE=/tmp/build/.cache diff --git a/tools/go.mod b/tools/go.mod index 82aed2ab4bd..463078847b8 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -1,6 +1,6 @@ module github.com/lightningnetwork/lnd/tools -go 1.26.8 +go 1.26.10 require ( 4d63.com/gocheckcompilerdirectives v1.4.0 // indirect diff --git a/tools/linters/go.mod b/tools/linters/go.mod index 0185376f791..57d331a270d 100644 --- a/tools/linters/go.mod +++ b/tools/linters/go.mod @@ -1,6 +1,6 @@ module github.com/lightningnetwork/lnd/tools/linters -go 1.26.8 +go 1.26.10 require ( github.com/golangci/plugin-module-register v0.1.1 diff --git a/tor/go.mod b/tor/go.mod index 3af1a705312..76dd4f54ac1 100644 --- a/tor/go.mod +++ b/tor/go.mod @@ -23,4 +23,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -go 1.26.8 +go 1.26.10