From 86b73db71f8f3cc8aca2d9866fe23502443fb065 Mon Sep 17 00:00:00 2001 From: Eric Rakestraw Date: Fri, 9 Oct 2026 03:20:21 +0000 Subject: [PATCH] Raise the Go minimum to 1.26.0 --- build_test.go | 4 ++-- buildinfo/version_integration_test.go | 2 +- cmd/releasekit/main_test.go | 2 +- cmd/releasekit/woodpecker_test.go | 2 +- docs/releases/v0.3.0.md | 13 ++++++++----- go.mod | 2 +- 6 files changed, 14 insertions(+), 11 deletions(-) diff --git a/build_test.go b/build_test.go index bc27851..d0c11e2 100644 --- a/build_test.go +++ b/build_test.go @@ -516,7 +516,7 @@ func newBuildConsumer(t *testing.T, mainSource string) string { if err != nil { t.Fatal(err) } - module := fmt.Sprintf("module example.com/buildfixture\n\ngo 1.25.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.0.0\n\nreplace gitea.maximumdirect.net/eric/ReleaseKit => %s\n", filepath.ToSlash(root)) + module := fmt.Sprintf("module example.com/buildfixture\n\ngo 1.26.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.0.0\n\nreplace gitea.maximumdirect.net/eric/ReleaseKit => %s\n", filepath.ToSlash(root)) writeBuildFixture(t, repository, "go.mod", module) writeBuildFixture(t, repository, "cmd/app/main.go", mainSource) writeBuildFixture(t, repository, "cmd/app/main_test.go", "package main\nimport \"testing\"\nfunc TestCandidateFixture(t *testing.T) {}\n") @@ -534,7 +534,7 @@ func prepareCandidateBuild(t *testing.T, repository, mainSource string) { if err != nil { t.Fatal(err) } - module := fmt.Sprintf("module example.com/candidatebuild\n\ngo 1.25.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.0.0\n\nreplace gitea.maximumdirect.net/eric/ReleaseKit => %s\n", filepath.ToSlash(root)) + module := fmt.Sprintf("module example.com/candidatebuild\n\ngo 1.26.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.0.0\n\nreplace gitea.maximumdirect.net/eric/ReleaseKit => %s\n", filepath.ToSlash(root)) writeFile(t, repository, "go.mod", module) writeFile(t, repository, ".gitignore", "dist/\n") writeFile(t, repository, "cmd/app/main.go", mainSource) diff --git a/buildinfo/version_integration_test.go b/buildinfo/version_integration_test.go index ff8f1af..40c9ee5 100644 --- a/buildinfo/version_integration_test.go +++ b/buildinfo/version_integration_test.go @@ -19,7 +19,7 @@ func TestVersionInConsumerExecutable(t *testing.T) { dir := t.TempDir() module := fmt.Sprintf(`module example.com/versionfixture -go 1.25.0 +go 1.26.0 require gitea.maximumdirect.net/eric/ReleaseKit v0.0.0 diff --git a/cmd/releasekit/main_test.go b/cmd/releasekit/main_test.go index 662ae54..a447f11 100644 --- a/cmd/releasekit/main_test.go +++ b/cmd/releasekit/main_test.go @@ -1155,7 +1155,7 @@ func newCLIBuildRepository(t *testing.T, mainSource string) string { if err != nil { t.Fatal(err) } - module := fmt.Sprintf("module example.com/cli-candidate\n\ngo 1.25.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.0.0\n\nreplace gitea.maximumdirect.net/eric/ReleaseKit => %s\n", filepath.ToSlash(root)) + module := fmt.Sprintf("module example.com/cli-candidate\n\ngo 1.26.0\n\nrequire gitea.maximumdirect.net/eric/ReleaseKit v0.0.0\n\nreplace gitea.maximumdirect.net/eric/ReleaseKit => %s\n", filepath.ToSlash(root)) write := func(name, contents string) { t.Helper() path := filepath.Join(repository, filepath.FromSlash(name)) diff --git a/cmd/releasekit/woodpecker_test.go b/cmd/releasekit/woodpecker_test.go index 2fea8a7..3dcee21 100644 --- a/cmd/releasekit/woodpecker_test.go +++ b/cmd/releasekit/woodpecker_test.go @@ -487,7 +487,7 @@ func executeWoodpeckerBlock(block, repository string, environment map[string]str func selectReleaseKitModule(t *testing.T, repository, releaseKitSource string, includeSum bool) { t.Helper() const module = "gitea.maximumdirect.net/eric/ReleaseKit" - goMod := fmt.Sprintf("module example.com/tagged-app\n\ngo 1.25.0\n\nrequire %s v0.2.0\n\nreplace %s => %s\n", module, module, strconv.Quote(releaseKitSource)) + goMod := fmt.Sprintf("module example.com/tagged-app\n\ngo 1.26.0\n\nrequire %s v0.2.0\n\nreplace %s => %s\n", module, module, strconv.Quote(releaseKitSource)) writeRepositoryFile(t, repository, "go.mod", goMod) cliGitRun(t, repository, "add", "go.mod") if includeSum { diff --git a/docs/releases/v0.3.0.md b/docs/releases/v0.3.0.md index 871d7d0..17cd282 100644 --- a/docs/releases/v0.3.0.md +++ b/docs/releases/v0.3.0.md @@ -42,10 +42,11 @@ complete in-memory diagnostics and existing validation selections. ## Compatibility -The declared minimum Go version remains 1.25.0, and module dependencies are -unchanged from v0.2.0. ReleaseKit's maintainer build toolchain and maintained -Woodpecker template images use Go 1.26.8; consumers select a local toolchain -compatible with their module and the selected ReleaseKit version. +The declared minimum Go version increases from 1.25.0 to 1.26.0. Consumers +require Go 1.26.0 or newer; dependency versions are unchanged from v0.2.0. +ReleaseKit's maintainer build toolchain and maintained Woodpecker template images +use Go 1.26.8; consumers select a local toolchain compatible with their module +and the selected ReleaseKit version. The root orchestration facade, separate lightweight `buildinfo` facade, public signatures, CLI commands, and profile schema are unchanged. Existing v0.2.0 @@ -61,7 +62,9 @@ ReleaseKit's deliverables remain the source tag and hosted Gitea note page. ## Upgrade guidance -1. Select v0.3.0 using the dependency form appropriate to the consumer. +1. Use Go 1.26.0 or newer for local tooling and CI before selecting v0.3.0. + Updating ReleaseKit in a shared module graph can raise the consumer's declared + Go minimum. Select the dependency form appropriate to the consumer. Go API consumers: diff --git a/go.mod b/go.mod index f9dc2ad..6d7773f 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module gitea.maximumdirect.net/eric/ReleaseKit -go 1.25.0 +go 1.26.0 require ( github.com/yuin/goldmark/v2 v2.1.6