diff --git a/.github/actions/setup-go/action.yml b/.github/actions/setup-go/action.yml index b6d85c030..b7c7cc468 100644 --- a/.github/actions/setup-go/action.yml +++ b/.github/actions/setup-go/action.yml @@ -38,7 +38,23 @@ runs: ~/.cache/go-build ~/Library/Caches/go-build ~\AppData\Local\go-build - key: ${{ runner.os }}-go-${{ inputs.go-version }}-${{ inputs.key-prefix }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} + + # 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.23.12-unit-test-`. + # It ensures that a job running on Linux with Go 1.23 only looks for + # caches from the same environment. + # - The unique part is the `hashFiles('**/go.sum')`, which calculates a + # hash (a fingerprint) of the go.sum file. + key: ${{ runner.os }}-go-${{ inputs.go-version }}-${{ inputs.key-prefix }}-${{ hashFiles('**/go.sum') }} + + # The restore-keys provides a list of fallback keys. If no cache + # matches the key exactly, the action will look for a cache where the + # key starts with one of the restore-keys. The action searches the + # restore-keys list in order and restores the most recently created + # cache that matches the prefix. Once the job is done, a new cache is + # created and saved using the new key. restore-keys: | ${{ runner.os }}-go-${{ inputs.go-version }}-${{ inputs.key-prefix }}-${{ github.job }}- ${{ runner.os }}-go-${{ inputs.go-version }}-${{ inputs.key-prefix }}- diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 50ae6ea6d..9f70e71b0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -34,7 +34,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.23.9 + GO_VERSION: 1.23.12 jobs: ######################## diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 74dcfbd45..915869017 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.23.9 + GO_VERSION: 1.23.12 jobs: main: diff --git a/.golangci.yml b/.golangci.yml index 7e76289de..eaf737177 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,7 +1,7 @@ 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.23.9" + go: "1.23.12" # Abort after 10 minutes. timeout: 10m diff --git a/Dockerfile b/Dockerfile index ce42fef1f..5cf4f96c7 100644 --- a/Dockerfile +++ b/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.23.9-alpine as builder +FROM golang:1.23.12-alpine as builder # Force Go to use the cgo based DNS resolver. This is required to ensure DNS # queries required to connect to linked containers succeed. diff --git a/Makefile b/Makefile index f068aeae1..06539d847 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,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.23.9 +GO_VERSION = 1.23.12 GOBUILD := $(GOCC) build -v GOINSTALL := $(GOCC) install -v diff --git a/dev.Dockerfile b/dev.Dockerfile index 37518c795..aa584110b 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.23.9-alpine AS builder +FROM golang:1.23.12-alpine AS builder LABEL maintainer="Olaoluwa Osuntokun " diff --git a/docker/btcd/Dockerfile b/docker/btcd/Dockerfile index ebfab6714..22d48a884 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.23.9-alpine as builder +FROM golang:1.23.12-alpine as builder LABEL maintainer="Olaoluwa Osuntokun " diff --git a/docs/INSTALL.md b/docs/INSTALL.md index e17c6996e..39422c974 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.23.9` (or, in case this +`lnd` is written in Go, with a minimum version of `1.23.12` (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,16 +101,16 @@ requires). To install, run one of the following commands for your OS: Linux (x86-64) ``` - wget https://dl.google.com/go/go1.23.9.linux-amd64.tar.gz - sha256sum go1.23.9.linux-amd64.tar.gz | awk -F " " '{ print $1 }' + wget https://dl.google.com/go/go1.23.12.linux-amd64.tar.gz + sha256sum go1.23.12.linux-amd64.tar.gz | awk -F " " '{ print $1 }' ``` The final output of the command above should be - `de03e45d7a076c06baaa9618d42b3b6a0561125b87f6041c6397680a71e5bb26`. If it + `d3847fef834e9db11bf64e3fb34db9c04db14e068eeb064f49af747010454f90`. 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.23.9.linux-amd64.tar.gz + sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.12.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin ``` @@ -119,16 +119,16 @@ requires). To install, run one of the following commands for your OS: Linux (ARMv6) ``` - wget https://dl.google.com/go/go1.23.9.linux-armv6l.tar.gz - sha256sum go1.23.9.linux-armv6l.tar.gz | awk -F " " '{ print $1 }' + wget https://dl.google.com/go/go1.23.12.linux-armv6l.tar.gz + sha256sum go1.23.12.linux-armv6l.tar.gz | awk -F " " '{ print $1 }' ``` The final output of the command above should be - `ade33880caacb8919b48767e0957e9880f2cdf634e137402a6f22552504136dd`. If it + `9704eba01401a3793f54fac162164b9c5d8cc6f3cab5cee72684bb72294d9f41`. 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 && tar -C /usr/local -xzf go1.23.9.linux-armv6l.tar.gz + sudo rm -rf /usr/local/go && tar -C /usr/local -xzf go1.23.12.linux-armv6l.tar.gz export PATH=$PATH:/usr/local/go/bin ``` diff --git a/go.mod b/go.mod index 2bfef4efa..835198529 100644 --- a/go.mod +++ b/go.mod @@ -212,6 +212,6 @@ replace google.golang.org/protobuf => github.com/lightninglabs/protobuf-go-hex-d // If you change this please also update docs/INSTALL.md and GO_VERSION in // Makefile (then run `make lint` to see where else it needs to be updated as // well). -go 1.23.6 +go 1.23.12 retract v0.0.2 diff --git a/healthcheck/go.mod b/healthcheck/go.mod index 81afe04f0..64ec2db3c 100644 --- a/healthcheck/go.mod +++ b/healthcheck/go.mod @@ -24,4 +24,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -go 1.21 +go 1.23.12 diff --git a/kvdb/go.mod b/kvdb/go.mod index 3388f7ea7..b1c066fc5 100644 --- a/kvdb/go.mod +++ b/kvdb/go.mod @@ -144,6 +144,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.22 - -toolchain go1.22.0 +go 1.23.12 diff --git a/lnrpc/Dockerfile b/lnrpc/Dockerfile index 923b2a0b8..be8c9f7c0 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.23.9-bookworm +FROM golang:1.23.12-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 4f53098da..2253bdc06 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.23.6-alpine +GO_IMAGE=docker.io/library/golang:1.23.12-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 906162aa4..d2abf4b96 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.23.9-bookworm +FROM golang:1.23.12-bookworm MAINTAINER Olaoluwa Osuntokun diff --git a/sqldb/go.mod b/sqldb/go.mod index f1c64416f..29dd44b01 100644 --- a/sqldb/go.mod +++ b/sqldb/go.mod @@ -68,4 +68,4 @@ require ( modernc.org/token v1.1.0 // indirect ) -go 1.21.4 +go 1.23.12 diff --git a/tlv/go.mod b/tlv/go.mod index a99f794fa..d01625715 100644 --- a/tlv/go.mod +++ b/tlv/go.mod @@ -22,4 +22,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -go 1.19 +go 1.23.12 diff --git a/tools/Dockerfile b/tools/Dockerfile index f8758e26b..a9b39edb2 100644 --- a/tools/Dockerfile +++ b/tools/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23.9 +FROM golang:1.23.12 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 e5420965d..cd3d55bfd 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -1,6 +1,6 @@ module github.com/lightningnetwork/lnd/tools -go 1.23.6 +go 1.23.12 require ( github.com/btcsuite/btcd v0.24.2 diff --git a/tor/go.mod b/tor/go.mod index db8310157..97eac208f 100644 --- a/tor/go.mod +++ b/tor/go.mod @@ -23,4 +23,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -go 1.21 +go 1.23.12