Skip to content

Add one-command installers and sync version with release tags - #5

Merged
waveFrontSet merged 3 commits into
mainfrom
feat/install-and-version-sync
Jul 18, 2026
Merged

Add one-command installers and sync version with release tags#5
waveFrontSet merged 3 commits into
mainfrom
feat/install-and-version-sync

Conversation

@waveFrontSet

Copy link
Copy Markdown
Owner

Summary

  • Adopt binstaller for one-command installation on Unix-like systems: .config/binstaller.yml maps existing release asset names, install.sh is generated via binst gen (version-independent, regenerate only if config changes).
  • Add install.ps1 for native Windows PowerShell installs.
  • Version sync: bump package.yaml from 0.1.0.0 to 0.5.0 (matching the latest published tag); add a --version flag; add a CI tag guard that fails the release if the tag doesn't match v<package.yaml version>.
  • README: new Installation section (curl one-liners + manual fallback + Apple-Silicon-only note), AI explanations documentation, trophies, and config-file locations. Add --version to the options table and explanation-scrolling keys to Controls.

Test plan

  • binst check validates config against real v0.5.0 release assets
  • sh install.sh -b <dir> downloads and installs the macOS aarch64 release binary
  • cabal build && cabal run cert-prep -- --version prints 0.5.0
  • cabal test passes (126 examples, 0 failures)
  • Tag guard logic: passes on matching tag, fails on mismatches
  • Push a throwaway tag (v0.0.99) to exercise the negative path (tag guard gates the build, no release created)
  • After merge to main, verify raw.githubusercontent install URLs resolve (200 OK)
  • Next release: push a tag with mismatched version to trigger the guard, then with correct version to trigger the full build

Notes

  • No changes to the existing build/upload logic in .github/workflows/release.yml beyond adding the tag guard job; asset naming and release creation remain untouched.
  • Checksum embedding/GitHub attestation verification is deferred (no checksum file published yet, would require a regenerate-and-commit step on every release).

🤖 Generated with Claude Code

waveFrontSet and others added 3 commits July 18, 2026 16:52
Bump the package version to 0.5.0 to match the latest published
release tag, add a --version flag backed by Paths_cert_prep, and add a
release-workflow guard that fails the build when the pushed tag does
not match the version in package.yaml.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adopt binstaller for Unix-like systems: .config/binstaller.yml maps
the existing release asset names and install.sh is generated from it
via `binst gen` (regenerate only when the config changes; the script
is version-independent because asset names carry no version). Add a
hand-written install.ps1 for native Windows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@waveFrontSet
waveFrontSet merged commit a08cbbf into main Jul 18, 2026
2 checks passed
@waveFrontSet
waveFrontSet deleted the feat/install-and-version-sync branch July 18, 2026 15:03
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