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]

Reply via email to