From 73af7bb3672a5598a8d8f6f5e1aa37f595da7889 Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Thu, 12 Feb 2026 08:27:33 +0100 Subject: [PATCH 1/4] CI: Test with Golang 1.26 --- .github/workflows/tarball.yml | 3 +++ .github/workflows/test.yml | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/.github/workflows/tarball.yml b/.github/workflows/tarball.yml index 1e54cc2..3ad6174 100644 --- a/.github/workflows/tarball.yml +++ b/.github/workflows/tarball.yml @@ -26,6 +26,7 @@ jobs: go-version: - "1.24" - "1.25" + - "1.26" runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 @@ -50,6 +51,7 @@ jobs: go-version: - "1.24" - "1.25" + - "1.26" runs-on: ubuntu-latest needs: [create] steps: @@ -95,6 +97,7 @@ jobs: go-version: - "1.24" - "1.25" + - "1.26" runs-on: ubuntu-latest needs: [create] steps: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 14f5a07..58d9684 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -28,6 +28,7 @@ jobs: go-version: - "1.24" - "1.25" + - "1.26" runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 @@ -51,6 +52,7 @@ jobs: go-version: - "1.24" - "1.25" + - "1.26" runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 @@ -71,6 +73,7 @@ jobs: go-version: - "1.24" - "1.25" + - "1.26" runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 @@ -91,6 +94,7 @@ jobs: go-version: - "1.24" - "1.25" + - "1.26" runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 From f9f2347d1114a5c52d363a0f6709a9bcfcaa225e Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Thu, 12 Feb 2026 08:27:58 +0100 Subject: [PATCH 2/4] CI: Run modernize and checklocks with Golang 1.26 --- .github/workflows/lint.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index f528ff4..f8b9180 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -49,7 +49,7 @@ jobs: - uses: actions/checkout@v6 - uses: actions/setup-go@v6 with: - go-version: "1.25" + go-version: "1.26" - name: moderize run: | @@ -63,7 +63,7 @@ jobs: - uses: actions/checkout@v6 - uses: actions/setup-go@v6 with: - go-version: "1.25" + go-version: "1.26" check-latest: true - name: checklocks From ba482a544b3d6965f40151c075e3f10963946fa9 Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Thu, 12 Feb 2026 08:39:15 +0100 Subject: [PATCH 3/4] make: Only need "synctest" GOEXPERIMENT on go1.24 --- Makefile | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 7f29cb7..7299df0 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ GODIR := $(shell dirname "$(GO)") GOFMT := "$(GODIR)/gofmt" GOOS ?= linux GOARCH ?= amd64 -GOVERSION := $(shell "$(GO)" env GOVERSION | sed "s|go||" ) +GOVERSION := $(shell "$(GO)" env GOVERSION | sed -E 's|go([0-9]+\.[0-9]+)\..*|\1|') TMPDIR := $(CURDIR)/tmp BINDIR := $(CURDIR)/bin VENDORDIR := "$(CURDIR)/vendor" @@ -77,6 +77,12 @@ else GOPATHBIN := $(GOPATH)/bin/$(GOOS)_$(GOARCH) endif +ifeq ($(GOVERSION), 1.24) +GOEXPERIMENT := synctest +else +GOEXPERIMENT := +endif + hook: [ ! -d "$(CURDIR)/.git/hooks" ] || ln -sf "$(CURDIR)/scripts/pre-commit.hook" "$(CURDIR)/.git/hooks/pre-commit" @@ -110,24 +116,24 @@ fmt: hook | $(PROTO_GO_FILES) $(GOFMT) -s -w *.go cmd/client cmd/proxy cmd/server vet: - GOEXPERIMENT=synctest $(GO) vet ./... + GOEXPERIMENT=$(GOEXPERIMENT) $(GO) vet ./... test: vet - GOEXPERIMENT=synctest $(GO) test -timeout $(TIMEOUT) $(TESTARGS) ./... + GOEXPERIMENT=$(GOEXPERIMENT) $(GO) test -timeout $(TIMEOUT) $(TESTARGS) ./... benchmark: - GOEXPERIMENT=synctest $(GO) test -bench=$(BENCHMARK) -benchmem -run=^$$ -timeout $(TIMEOUT) $(TESTARGS) ./... + GOEXPERIMENT=$(GOEXPERIMENT) $(GO) test -bench=$(BENCHMARK) -benchmem -run=^$$ -timeout $(TIMEOUT) $(TESTARGS) ./... checklocks: $(GOPATHBIN)/checklocks - GOEXPERIMENT=synctest go vet -vettool=$(GOPATHBIN)/checklocks ./... + GOEXPERIMENT=$(GOEXPERIMENT) go vet -vettool=$(GOPATHBIN)/checklocks ./... cover: vet rm -f cover.out && \ - GOEXPERIMENT=synctest $(GO) test -timeout $(TIMEOUT) -coverprofile cover.out ./... + GOEXPERIMENT=$(GOEXPERIMENT) $(GO) test -timeout $(TIMEOUT) -coverprofile cover.out ./... coverhtml: vet rm -f cover.out && \ - GOEXPERIMENT=synctest $(GO) test -timeout $(TIMEOUT) -coverprofile cover.out ./... && \ + GOEXPERIMENT=$(GOEXPERIMENT) $(GO) test -timeout $(TIMEOUT) -coverprofile cover.out ./... && \ sed -i "/_easyjson/d" cover.out && \ sed -i "/\.pb\.go/d" cover.out && \ $(GO) tool cover -html=cover.out -o coverage.html From 9b062a994a8131f37f0ba26bf7d4888382eefac7 Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Thu, 12 Feb 2026 08:43:55 +0100 Subject: [PATCH 4/4] Temporarily run some tests only on Go 1.25 or newer. Prevents error "synctest.Wait requires go1.25 or later (file is go1.24)". --- api/transient_data_test.go | 2 ++ async/notifier_test.go | 2 ++ async/single_notifier_test.go | 2 ++ 3 files changed, 6 insertions(+) diff --git a/api/transient_data_test.go b/api/transient_data_test.go index bbb5920..0e34eae 100644 --- a/api/transient_data_test.go +++ b/api/transient_data_test.go @@ -1,3 +1,5 @@ +//go:build go1.25 + /** * Standalone signaling server for the Nextcloud Spreed app. * Copyright (C) 2021 struktur AG diff --git a/async/notifier_test.go b/async/notifier_test.go index 9bd61eb..b8d1b99 100644 --- a/async/notifier_test.go +++ b/async/notifier_test.go @@ -1,3 +1,5 @@ +//go:build go1.25 + /** * Standalone signaling server for the Nextcloud Spreed app. * Copyright (C) 2021 struktur AG diff --git a/async/single_notifier_test.go b/async/single_notifier_test.go index 1f2c7dd..9748451 100644 --- a/async/single_notifier_test.go +++ b/async/single_notifier_test.go @@ -1,3 +1,5 @@ +//go:build go1.25 + /** * Standalone signaling server for the Nextcloud Spreed app. * Copyright (C) 2022 struktur AG