Skip to content

fix(flow): upgrade to go 1.27 - #4757

Merged
itsbilal merged 1 commit into
mainfrom
bilal/go1.27-upgrade-flow
Aug 31, 2026
Merged

itsbilal merged 1 commit into
mainfrom
bilal/go1.27-upgrade-flow

Conversation

@itsbilal

@itsbilal itsbilal commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Bumps version of Go up to 1.27.

Only changes were some transitive
dependency bumps (pebble, swiss) and transposing the Error() method on
some errors that also have an Unwrap() method so that the pointer type
itself also implements the error interface, which govet now enforces
more strongly when an error is formatted with %w. Other lint changes
were removing excess parenthesis and always-nil return values.

@itsbilal itsbilal self-assigned this Aug 31, 2026
@itsbilal
itsbilal requested a review from a team as a code owner August 31, 2026 18:40
@itsbilal
itsbilal force-pushed the bilal/go1.27-upgrade-flow branch from 0deb614 to 3315929 Compare August 31, 2026 18:41
@itsbilal
itsbilal marked this pull request as draft August 31, 2026 18:43
@claude

claude Bot commented Aug 31, 2026

Copy link
Copy Markdown

Code review

flow/go.mod:3 — The go directive now requires 1.27.0, but the Go toolchain pins used to build and lint this module are still on 1.26 and were not bumped in this PR.

The flow builder image is pinned to 1.26:

FROM golang:1.26-alpine@sha256:0178a641fbb4858c5f1b48e34bdaabe0350a330a1b1149aabd498d0699ff5fb2 AS builder
# Allow build flags to be passed in at build time, for example debug flags

The official golang images set ENV GOTOOLCHAIN=local, so no newer toolchain is downloaded, and there is no toolchain directive in flow/go.mod (nor any GOTOOLCHAIN override anywhere in the repo). The first Go step in the builder stage (go mod download) therefore fails with go: go.mod requires go >= 1.27.0 (running go 1.26.x; GOTOOLCHAIN=local). This breaks all four images built from stacks/flow.Dockerfile (flow-api, flow-worker, flow-snapshot-worker, flow-maintenance) — and both docker-build (ubuntu-latest) and lint are currently failing on this PR after ~20s.

The same stale pin exists in the workflows (these only survive because actions/setup-go leaves GOTOOLCHAIN=auto and silently downloads 1.27 at build time, which defeats the pin):

  • .github/workflows/golang-lint.yml:27 — go-version: 1.26.6
  • .github/workflows/tilt-flow.yml:235 — go-version: 1.26.6
  • .github/workflows/cleanup.yml:17 — go-version: 1.26.6

Suggested fix: bump stacks/flow.Dockerfile to golang:1.27-alpine (with the matching digest) and update the three go-version pins to a 1.27.x release.

The error-type refactor itself (embedded error -> named err field plus explicit Error()) checks out: field order is preserved for the positional literals, the one keyed literal was renamed, all external usages go through the constructors or errors.AsType[*T], and no new nil-panic surface is introduced.

🤖 Generated with Claude Code

Bumps version of Go up to 1.27. Only changes were some transitive
dependency bumps (pebble, swiss) and transposing the `Error()` method on
some errors that also have an Unwrap() method so that the pointer type
itself also implements the `error` interface, which govet now enforces
more strongly when an error is formatted with %w. Other lint changes
were removing excess parenthesis and always-nil return values.
@itsbilal
itsbilal force-pushed the bilal/go1.27-upgrade-flow branch from 3315929 to c757e12 Compare August 31, 2026 19:00
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Deprecated destination connector

This issue or pull request relates to a deprecated destination connector (Snowflake, BigQuery, ElasticSearch, Kafka, Redpanda, Confluent, Azure Event Hubs, Google Pub/Sub, or S3).

These destinations are no longer actively maintained, but remain functional. We are unlikely to prioritize new work here.

Note: BigQuery is deprecated only as a destination — it remains a supported source.

If you depend on one of these connectors, we recommend:

  • Pin to a known-good PeerDB version so behavior stays stable.
  • Fork the repository if you need to carry your own changes.

See the deprecated connectors documentation for details and migration guidance.

@github-actions

Copy link
Copy Markdown
Contributor

❌ Test Failure

Analysis: Not flaky: the PR bumps flow/go.mod to go 1.27.0 but the workflows still pin actions/setup-go to 1.26.6 with GOTOOLCHAIN=local, so go mod download fails deterministically before any test runs.
Confidence: 0.98

⚠️ This appears to be a real bug - manual intervention needed

View workflow run

@itsbilal
itsbilal marked this pull request as ready for review August 31, 2026 19:19
@itsbilal
itsbilal requested a review from a team as a code owner August 31, 2026 19:19
@itsbilal

Copy link
Copy Markdown
Contributor Author

There's some overlap here with #4753. I'll re-trigger the bot on that branch to pick up the rest if this one merges first.

@ilidemi ilidemi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

@itsbilal
itsbilal merged commit 9d45705 into main Aug 31, 2026
26 checks passed
@itsbilal
itsbilal deleted the bilal/go1.27-upgrade-flow branch August 31, 2026 19:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants