Skip to content

release: sync master with checksums-collision fix - #16

Merged
mesrikanthreddy merged 1 commit into
masterfrom
dev
Jul 18, 2026
Merged

release: sync master with checksums-collision fix#16
mesrikanthreddy merged 1 commit into
masterfrom
dev

Conversation

@mesrikanthreddy

Copy link
Copy Markdown
Collaborator

Summary

What's in it

Fixes the release-pipeline checksum-collision bug that broke v1.1.0's Homebrew formula (all four platform binaries built fine, but the merged checksums.txt only kept one platform's entry due to same-named files colliding across actions/upload-artifact uploads). Also restores the Linux REPLACE_AFTER_LINUX_*_BUILD placeholder tokens in homebrew/kshield.rb that had been overwritten with unverified hardcoded hashes.

Test plan

  • Cut a future release tag and confirm the published Homebrew formula has all four correct checksums without manual intervention

v1.1.0's release run built all four platform binaries successfully,
but the published Homebrew formula ended up with empty macOS
checksums and stale Linux ones. Root causes, both in release.yml:

- Each matrix build job wrote to a file literally named
  "checksums.txt" and uploaded it as part of its own artifact. The
  "Publish GitHub Release" job downloads all artifacts into one
  directory with merge-multiple: true, which silently overwrites
  same-named files across artifacts — only the last-downloaded
  platform's single line survived, so the "Update Homebrew formula
  checksums" step's greps came back empty for three of four
  platforms.
- homebrew/kshield.rb's Linux entries had been hand-edited to
  hardcoded-looking (but never build-verified) sha256 values instead
  of the REPLACE_AFTER_LINUX_*_BUILD placeholder tokens, so even when
  the checksum *was* found, sed had nothing left to substitute.

Fixed by giving each matrix job's checksum file a per-target name
(checksums-${{ matrix.target }}.txt) so downloads no longer collide,
updating the merge step to glob them all in, and restoring the Linux
placeholder tokens.

v1.1.0's actual GitHub Release binaries were all built correctly —
only the formula metadata was wrong. Verified by downloading the
release's real tarballs and hashing them directly; ytt-global/tap's
homebrew-tap repo has been hand-corrected with those verified
checksums so `brew install ytt-global/tap/kshield` works now.
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