zeroshade opened a new pull request, #2077: URL: https://github.com/apache/iceberg-go/pull/2077
Bumps the module's minimum Go version to 1.26. Go 1.27 is out now, so the supported pair is 1.26 and 1.27. ### Changes **Module / CI** - `go.mod`: `go 1.25.9` → `go 1.26.0`. `go.sum` is unchanged. - `go-ci.yml`: test matrix `1.25.9, 1.26.1` → `1.26.8, 1.27.1`. The Arrow ownership assertions and the s390x cross-compile now run on `1.27.1`. - `go-integration.yml`: `1.25` → `'1.26'`. It's quoted now so YAML won't read it as a float. - golangci-lint `v2.12.2` → `v2.14.0` in the CI, `Makefile`, `.pre-commit-config.yaml` and README. `v2.12.2` was built with go1.26.2 and panics on the 1.27 stdlib (`file requires newer Go version go1.27`), so the 1.27 matrix cell can't lint with it. **Lint fixes caused by the bump** Once `go.mod` says 1.26, the modernize linter reports 36 issues, even on `v2.12.2`. Moving to `v2.14.0` brings the total to 48. - Replaced `errors.As` + a pointer variable with `errors.AsType[T]` in glue, hive, rest, sql, `partitions.go` and `table/sorting.go`. - Replaced `new(expr)` for the per-file test pointer helpers (`ptr`, `int64Ptr`, `strPtr`, `stringPtr`, `makeID`, `parityPtr`, `transactionTestPtr`, …). Call sites were rewritten with `go fix -inline` and the helpers are deleted. - Replaced `reflect` `NumField`/`NumMethod` loops with `Fields()`/`Methods()` in two tests. - Formatting changes from the 1.27 gofmt/gofumpt. In `snapshot_producers.go`, gofmt 1.26 and 1.27 disagree on how to indent a multi-literal `return` with an interior comment. I moved the updates slice into a local variable so both versions produce the same output. **`fix(puffin)` (separate commit)** `TestReaderPreservesLZ4ChecksumError` fails on Go 1.27 on current `main`. The cause is that `encoding/json` is backed by jsonv2 in 1.27, and `Decoder.More()` now returns `true` on a non-EOF read error. So a corrupt LZ4 footer was reported as "unexpected content after footer JSON" instead of the checksum error. The test passes with `GOEXPERIMENT=nojsonv2`. The reader now checks the captured decompression error on the `More()` path as well as on the `Token()` path. ### Verification (local, linux/amd64) - `go vet ./...` and `go vet -tags integration ./...` pass on go1.26.8 and go1.27.1. - `GOOS=linux GOARCH=s390x go build ./...` builds on both. - golangci-lint v2.14.0 reports 0 issues on go1.26.8 and go1.27.1. - `go test ./...` passes on go1.26.8 and go1.27.1. - `go test -race ./...` and `make test-assert` pass on go1.27.1. - `gofmt -l` from go1.26.8 is clean on all changed files. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
