Skip to content

build: build and test with Go 1.27.3 - #98

Merged
magicdrive merged 1 commit into
mainfrom
deps/go-1.27.3
Oct 28, 2026
Merged

magicdrive merged 1 commit into
mainfrom
deps/go-1.27.3

Conversation

@magicdrive

Copy link
Copy Markdown
Owner

Summary

Build, test and release Ark with Go 1.27.3 instead of 1.27.2.

Why

Go 1.27.3 fixes GO-2026-6809 in crypto/x509 (distrust compromised intermediate certificates). govulncheck reports it in the standard library Ark imports — through net/http, used by the MCP HTTP transport (internal/mcp/transport.go) — and finds no call of the vulnerable code. A release built with Go 1.27.2 would still ship it, so the toolchain is updated before v6.8.0.

Go 1.27.3 is an official stable release (go.dev/dl, stable: true, all platforms).

Changes

  • go.mod: go 1.27.2 → go 1.27.3. This line is the only source of the Go version:
    • CI and the release workflow set Go up from it (go-version-file: 'go.mod', enforced by release_workflow_test.go);
    • .github/release/build.sh builds the release binaries with the toolchain it names (GOTOOLCHAIN);
    • .github/release/verify-dist.sh checks every binary against it.
  • Comments and guides that name the version: Makefile, .github/workflows/ci.yml, the label of the staticcheck requirement in release_workflow_test.go, the examples in docs/maintenance/renovate.md.
    • staticcheck stays pinned to the development version: staticcheck 2026.2.1 (v0.8.1) still cannot read Go 1.27.3's export data (checked locally: export data version 5 is greater than maximum supported version 4).
  • Records of past runs (release notes, checklists, measurement logs) keep the version they ran with.

No module dependency changes (go.sum unchanged).

Verification

Locally with go version go1.27.3 darwin/amd64 (the toolchain go.mod names, fetched by the Go command):

Target Result
make fmt-check pass
make lint (vet, all tests, race, staticcheck) pass
make smoke pass
make vulncheck (govulncheck v1.9.0) No vulnerabilities found (GO-2026-6809 no longer reported)
make hephaestus-check pass
make snapshot pass: 8 archives verified, built by go1.27.3
make actionlint pass
make fuzz pass

CI: see the checks on this pull request.

Compatibility

Users are not affected: the release binaries are statically linked and built by the release workflow. Building from source (go install github.com/magicdrive/ark@main) requires Go 1.27.3 or a Go command that can fetch it (GOTOOLCHAIN=auto, the default).

Go 1.27.3 fixes GO-2026-6809 (crypto/x509: distrust compromised
intermediate certificates). govulncheck found it in the standard library
Ark imports (net/http, through the MCP HTTP transport), not called, but a
release built with 1.27.2 ships it.

go.mod's go line is the only source of the Go version: CI and the release
jobs set Go up from it (go-version-file: 'go.mod'), build.sh builds with
the toolchain it names (GOTOOLCHAIN) and verify-dist checks the binaries
against it. The notes that name the version follow: staticcheck 2026.2.1
still cannot read Go 1.27.3's export data (checked: "export data version 5
is greater than maximum supported version 4"), so the development version
stays pinned; the Renovate guide's examples say 1.27.3. Records of past
runs keep the version they ran with. No module dependency changes.
@magicdrive
magicdrive merged commit b869c70 into main Oct 28, 2026
28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant