Skip to content

fix(build): release binaries on Go 1.27.3 (GO-2026-6809) - #25

Open
antoinetoussaint-byte wants to merge 1 commit into
mainfrom
fix/go-1.27.3-go-2026-6809
Open

antoinetoussaint-byte wants to merge 1 commit into
mainfrom
fix/go-1.27.3-go-2026-6809

Conversation

@antoinetoussaint-byte

Copy link
Copy Markdown
Contributor

Why

Released service-temporal agent binaries are compiled by go1.27.0, which is affected by GO-2026-6809 (crypto/x509; fixed in go1.27.3).

Go literals found

Location Literal Class
go.mod go 1.27.0 → go 1.27.3 floor (and, through go-version-file, the shipped compiler)
.github/workflows/releaser.yml uses: codefly-dev/core/.github/workflows/go-service-release.yml@main, which runs actions/setup-go with go-version-file: go.mod selector reading the floor — unchanged
.github/workflows/ci.yml uses: codefly-dev/core/.github/workflows/go-service-ci.yml@main (same go-version-file: go.mod) selector reading the floor — unchanged

(github.com/aws/smithy-go v1.27.8 in go.mod is a dependency version, not a Go version.) No GOTOOLCHAIN, go-version: "x.y.z", golang: image or goreleaser-cross literal exists in this repo. No backwards selector found.

Mechanism

A go directive is a floor; with setup-go go-version-file: go.mod it is also exactly the compiler the release job installs. Raising the directive to 1.27.3 is the whole fix. go mod tidy changed nothing else.

Verified locally

  • go build ./... and go vet ./... exit 0.
  • go build -o /tmp/temporal/agent . && go version -m /tmp/temporal/agent → /tmp/temporal/agent: go1.27.3
  • go test ./... exits 1 with two failures, TestTemporalFullStack and TestTemporalSchemaUpgrade, both:
    CLI subprocess exited before it bound its control socket: exit status 1 / codefly must start postgres.
    The subprocess (/Users/antoine/go/bin/codefly run service -d …, a local development build) fails with
    endpoint postgres/tcp declares unsupported visibility "external" (one of "private", "internal", "public").
    The same test fails identically on the base go.mod (go 1.27.0), so it is the local CLI build against the test fixture, not this change. Every other test in the package passes. Nothing was skipped or weakened.

Classification

Fix at the place that owns the behaviour (the module's own floor, which the release workflow reads).

Deliberately not done

  • No toolchain line, no GOTOOLCHAIN=go1.27.3: both are backwards selectors that would pin the build below a future directive.

Not verified

  • The released archive does not exist until the owner cuts a tag; the CI go version line on this PR is the evidence that setup-go resolves the new directive.
  • The two CLI-driven tests above could not be run green on this machine.

Do not merge without the owner's say-so.

🤖 Generated with Claude Code

Raise the go directive from 1.27.0 to 1.27.3. Releases go through core's
shared go-service-release.yml, which installs Go with `actions/setup-go`
`go-version-file: go.mod`, so the directive is both the module floor and
exactly the compiler that ships; go1.27.3 carries the crypto/x509 fix for
GO-2026-6809.

No `toolchain` line and no GOTOOLCHAIN pin are added: both are selectors
that would hold the build back once the directive moves again.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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