Skip to content

Drop 386 release targets from GoReleaser builds - #92

Merged
apstndb merged 1 commit into
mainfrom
chore/drop-386-release-targets
Sep 8, 2026
Merged

apstndb merged 1 commit into
mainfrom
chore/drop-386-release-targets

Conversation

@apstndb

@apstndb apstndb commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Summary

Restrict GoReleaser builds to amd64 and arm64 on linux, windows, and darwin. Release archives go from eight to six; the i386 special case in the archive name template is removed.

Why

  • GoReleaser's default goarch list includes 386, so 32-bit archives were published implicitly, never by decision.
  • Download counts across all releases (gh api repos/apstndb/execspansql/releases): 386 assets total 4 downloads, exactly one per Linux/Windows i386 asset on v0.4.0 and v0.5.0-alpha.3 and zero elsewhere, which matches automated fetchers rather than users. amd64 and arm64 totals are 7 and 6.
  • A Spanner developer CLI has no realistic x86-32 audience (Windows 11 is 64-bit only; Go dropped darwin/386 long ago).
  • Upcoming dependencies are 64-bit oriented: the planned embedded Graphviz plan renderer runs on wazero, which has an optimizing compiler only on amd64/arm64 and falls back to an interpreter on 386. Keeping 386 would add build and CI failure surface for a target nobody uses.

Verification

  • goreleaser check: configuration valid.
  • goreleaser build --snapshot --clean --skip=validate: built exactly linux_amd64, linux_arm64, windows_amd64, windows_arm64, darwin_amd64, darwin_arm64.

Release note

Breaking for anyone consuming the *_i386.* release assets: 32-bit builds are discontinued starting with the next release. go install on 386 hosts is unaffected.

Restrict release builds to amd64 and arm64 on linux, windows, and darwin
(six archives instead of eight).

GoReleaser's default arch list includes 386, so 32-bit archives were
published implicitly. Download counts across all releases show one
download per 386 asset at most, consistent with automated fetchers
rather than users, while the 32-bit targets add build and CI surface
for dependencies that are 64-bit oriented (the planned embedded
Graphviz renderer runs on wazero, which has no optimizing compiler on
386).

The archive name template no longer needs the i386 special case.
Verified with `goreleaser check` and `goreleaser build --snapshot`,
which produced exactly the six expected targets.
@apstndb
apstndb merged commit db00e52 into main Sep 8, 2026
2 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