Skip to content

fix(release): correct dist archive names (shipped 0.2.0 release was broken) - #5

Merged
Cro22 merged 1 commit into
masterfrom
fix/release-archive-names
Aug 9, 2026
Merged

fix(release): correct dist archive names (shipped 0.2.0 release was broken)#5
Cro22 merged 1 commit into
masterfrom
fix/release-archive-names

Conversation

@Cro22

@Cro22 Cro22 commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Problem

The v0.2.0 release I cut had broken artifacts. The dist Makefile target named archives trazo_<ver>_$os_$arch, but in the shell recipe $os_ is parsed as the variable os_ (undefined, empty), so the OS was dropped from the name. Platforms then collided:

  • linux/amd64 and darwin/amd64 both -> trazo_v0.2.0_amd64.tar.gz
  • linux/arm64 and darwin/arm64 both -> trazo_v0.2.0_arm64.tar.gz

The darwin builds ran later and overwrote the linux archives, so the published "amd64" tarball actually contained a macOS binary. Five platforms collapsed to three mislabeled files.

I have already deleted the broken v0.2.0 release and tag to stop bad downloads (repo is public).

Fix

  • Brace the expansions: base=$(BIN)_$(VERSION)_${os}_${arch}. Verified output: trazo_v0.2.0_linux_amd64, _linux_arm64, _darwin_amd64, _darwin_arm64, _windows_amd64 -- five distinct, correctly labeled archives.
  • Set cache: false on every actions/setup-go step (ci + release): the core is stdlib-only with no go.sum, so setup-go's module cache logged "Dependencies file is not found" on every run.

After merge

Re-tag v0.2.0 on the new master; release.yml will rebuild and publish the correct binaries (its tag-vs-const Version guard still passes, version is unchanged).

🤖 Generated with Claude Code

…o cache

The `dist` target built archives named `trazo_<ver>_$os_$arch`, but in the shell
recipe `$os_` parses as the variable `os_` (undefined), dropping the OS from the
name. linux/amd64 and darwin/amd64 both collapsed to `trazo_<ver>_amd64.tar.gz`,
so the later darwin build overwrote the linux archive: the published linux
artifact actually contained a macOS binary. Brace the expansions
(`${os}_${arch}`) so every platform gets a distinct, correctly labeled archive
(trazo_<ver>_linux_amd64, _darwin_arm64, _windows_amd64, ...).

Also set `cache: false` on every actions/setup-go step (ci + release). The core
is stdlib-only with no go.sum, so setup-go's module cache had nothing to key on
and logged "Dependencies file is not found" on every run.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Cro22
Cro22 merged commit e9d914b into master Aug 9, 2026
6 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