Skip to content

Fix release checksums and install.sh without the GitHub API - #19

Merged
joowon-jang merged 3 commits into
mainfrom
fix/checksums-lf
Oct 5, 2026
Merged

joowon-jang merged 3 commits into
mainfrom
fix/checksums-lf

Conversation

@joowon-jang

Copy link
Copy Markdown
Collaborator

Findings from verifying the published v0.3.0:

  • checksums.txt line endings: the Windows publish job wrote CRLF (also in v0.2.1), so sha256sum -c checksums.txt rejects every entry, although all hashes match once the CR is removed. The manifest is now written with LF and the publish fails if a CR remains. install.sh ignores a trailing CR when it reads checksums.txt, so it also handles the published files.
  • install.sh without the API: on a hosted Apple silicon Mac the documented one-liner stopped at the GitHub API anonymous limit (403). When the API request fails, the script now resolves the latest tag from the release page redirect and verifies the DMG against that release's checksums.txt; GitHub's asset digest is still preferred when the API answers.

Validation against the published v0.3.0 (run 37334645617), both architectures: dry run and reinstall through the API, install with api.github.com blocked (fallback, CRLF checksums), strict signature, no quarantine, LaunchServices launch and standard quit. The published v0.3.0 assets are not modified; the fix ships with the next release.

🤖 Generated with Claude Code

joowon-jang and others added 3 commits October 6, 2026 00:38
Downloading v0.3.0 showed that checksums.txt, written by Set-Content on the
Windows publish runner, uses CRLF: `sha256sum -c checksums.txt` reports every
file as unreadable, although each hash matches once the CR is removed. v0.2.1
has the same file. Write the manifest with LF and fail the publish if a CR
remains. install.sh ignores a trailing CR when it falls back to
checksums.txt, so it also reads the files already published.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Installing the published v0.3.0 on a hosted Mac stopped at "could not read
release latest from GitHub": the anonymous API limit is shared by every user
behind one address. When the API request fails, resolve the latest tag from
the release page redirect and verify the DMG against that release's
checksums.txt. GitHub's asset digest is still preferred when the API answers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Record the release runs, the asset checksum comparison, the CRLF checksums
file in v0.3.0 and v0.2.1, and install.sh against the published release on
both Macs, including the fallback with the GitHub API blocked. The
installation guides mention that fallback.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@joowon-jang
joowon-jang merged commit 3f38551 into main Oct 5, 2026
5 checks passed
@joowon-jang joowon-jang mentioned this pull request Oct 6, 2026
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