From d96f0d16f1abeb828d47005db18cb52cc88c95a5 Mon Sep 17 00:00:00 2001 From: Chris Bandy Date: Thu, 14 Nov 2024 16:59:46 -0600 Subject: [PATCH 1/2] Use the Go toolchain installed by actions/setup-go Since version 1.21, Go may automatically download a different version of Go. Disable this behavior so that pipeline jobs use only one version. See: https://go.dev/doc/toolchain --- .github/workflows/ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 889f3f4..c335c91 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,6 +18,11 @@ on: permissions: contents: read +env: + # Use the Go toolchain installed by setup-go + # https://github.com/actions/setup-go/issues/457 + GOTOOLCHAIN: local + jobs: test: @@ -86,7 +91,7 @@ jobs: - uses: actions/setup-go@v5 name: Set up Go with: - # Use the Go version specified in the go.mod for linting. + # Use the Go language version in go.mod for linting. go-version-file: go.mod cache: false # managed by golangci-lint From 8fad5b37c8941430bea43c94b4bda21b2eb4a863 Mon Sep 17 00:00:00 2001 From: Chris Bandy Date: Thu, 14 Nov 2024 17:02:29 -0600 Subject: [PATCH 2/2] Remove Go 1.21 polyfills We can drop these now that the main module requires Go 1.21. Co-authored-by: Prashant V --- CHANGELOG.md | 2 +- cmd/errtrace/slices_contains_go121.go | 9 --------- cmd/errtrace/slices_contains_pre_go121.go | 12 ------------ cmd/errtrace/toolexec.go | 2 +- tree.go | 3 ++- tree_go121.go | 9 --------- tree_pre_go121.go | 9 --------- 7 files changed, 4 insertions(+), 42 deletions(-) delete mode 100644 cmd/errtrace/slices_contains_go121.go delete mode 100644 cmd/errtrace/slices_contains_pre_go121.go delete mode 100644 tree_go121.go delete mode 100644 tree_pre_go121.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 0036a2f..9fdf6a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,7 +37,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Example: `go build -toolexec="errtrace -required-packages pkg/..." pkg/to/build` ### Changed -- Update `go` directive in go.mod to 1.21. +- Update `go` directive in go.mod to 1.21, and drop compatibility with Go 1.20 and earlier. ### Fixed - cmd/errtrace: Don't exit with a non-zero status when `-h` is used. diff --git a/cmd/errtrace/slices_contains_go121.go b/cmd/errtrace/slices_contains_go121.go deleted file mode 100644 index c6188ca..0000000 --- a/cmd/errtrace/slices_contains_go121.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build go1.21 - -package main - -import "slices" - -func slicesContains[T comparable](s []T, find T) bool { - return slices.Contains[[]T](s, find) -} diff --git a/cmd/errtrace/slices_contains_pre_go121.go b/cmd/errtrace/slices_contains_pre_go121.go deleted file mode 100644 index ec19412..0000000 --- a/cmd/errtrace/slices_contains_pre_go121.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build !go1.21 - -package main - -func slicesContains[T comparable](s []T, find T) bool { - for _, v := range s { - if v == find { - return true - } - } - return false -} diff --git a/cmd/errtrace/toolexec.go b/cmd/errtrace/toolexec.go index 911899e..76be1c3 100644 --- a/cmd/errtrace/toolexec.go +++ b/cmd/errtrace/toolexec.go @@ -309,7 +309,7 @@ func readBuildSHA() (_ string, ok bool) { // isStdLib checks if the current execution is for stdlib. func isStdLib(args []string) bool { - return slicesContains(args, "-std") + return slices.Contains(args, "-std") } func packageSelectorMatch(selector, importPath string) bool { diff --git a/tree.go b/tree.go index 1d06efa..1565833 100644 --- a/tree.go +++ b/tree.go @@ -5,6 +5,7 @@ import ( "fmt" "io" "runtime" + "slices" "strings" ) @@ -72,7 +73,7 @@ loop: } } - sliceReverse(current.Trace) + slices.Reverse(current.Trace) return current } diff --git a/tree_go121.go b/tree_go121.go deleted file mode 100644 index 73d9c26..0000000 --- a/tree_go121.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build go1.21 - -package errtrace - -import "slices" - -func sliceReverse[T any](s []T) { - slices.Reverse(s) -} diff --git a/tree_pre_go121.go b/tree_pre_go121.go deleted file mode 100644 index ad7d640..0000000 --- a/tree_pre_go121.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build !go1.21 - -package errtrace - -func sliceReverse[T any](s []T) { - for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 { - s[j], s[i] = s[i], s[j] - } -}