Repository navigation
Description
Goal
Mac developers should be able to install, upgrade and remove Semaprax through a familiar package manager without building Rust sources.
Priority: P2 · Classification: New package-manager distribution channel
Reviewed baseline: main 56ad6438653f, 6 October 2026. Published distribution inspected: v0.8.0 (CLI build commit 615e501). Recheck these installation surfaces against the current branch before implementing.
Current behavior and evidence
No Homebrew recipe or supported Homebrew installation command was found in the inspected Semaprax source/docs or complete GitHub issue inventory.
Apple Silicon macOS already has a prebuilt v0.8.0 archive with semaprax and semapraxd. This channel can use that supported distribution immediately; it does not need to wait for Intel macOS binaries.
An in-repository formula alone is not a usable package-manager channel. The tap/binary package must actually be reachable and tested before README commands claim it works.
- Current manual release-archive path
- Current macOS arm64 archive target
- Full CLI and daemon artifact pair
- Official Homebrew tap maintenance guide
- Official Homebrew formula/binary packaging reference
Implementation scope
- Check for an existing official Wavect tap before creating a new one; use one canonical maintained tap and a clear semaprax package identity. The intended public UX is brew install wavect/tap/semaprax, adjusted to the actual published tap name.
- Provide a binary installation path using the already verified release artifacts, following the current Homebrew formula/bottle or cask rules for the chosen package. The default install must not compile the Semaprax Rust workspace. Use Homebrew-native conventions rather than running install.sh from a postinstall hook.
- Install both semaprax and semapraxd from the same tag, plus the relevant license/receipt metadata. Pin version-specific URLs and hashes; have the release process propose or publish a channel update only after that tag's validated artifacts exist.
- Initially advertise/test Apple Silicon macOS. Fail clearly on unsupported architectures; extend Intel and Linux only when their real matching packages and Homebrew tests pass. Do not block the first supported channel on INSTALL-10.
- Let Homebrew own updates and removal. Document brew upgrade and brew uninstall and the interaction with an existing source/manual installation so PATH precedence is visible rather than silently taking over another manager's files.
- Add a formula/package test that creates a project in a temporary directory, checks/tests/runs it and observes 42 using the installed executable. Verify the daemon file is included and belongs to the same release.
- Make release updates repeatable and idempotent. A delayed/rejected channel update must leave the prior working version available and must not falsely change the README to claim the new version is installable.
Acceptance criteria
- The actual documented brew install command works in a fresh supported Homebrew environment and uses prebuilt artifacts.
- brew upgrade moves both executables to the selected published version; brew uninstall removes Homebrew-owned files cleanly.
- All URLs/hashes correspond to the exact release and preserve the existing provenance chain.
- brew audit and the package's meaningful test pass under the chosen current Homebrew packaging rules.
- Unsupported architecture behavior is explicit; no automatic source compilation or untested emulation is hidden in the default path.
- The canonical README/install guide links the verified channel and gives its upgrade/removal commands.
Verification
- Install the published tap package on Apple Silicon, run its test, upgrade between two candidate versions and remove it.
- Simulate a checksum mismatch or missing release asset and confirm the channel update/install fails clearly.
- Check PATH behavior alongside an existing manual installation without overwriting it.
Existing issues and boundaries
- All 495 issue bodies and 54 PR bodies available at review were checked; no Homebrew work item was found.
- #167 already validates releases. This channel consumes those releases; it is not a replacement publishing pipeline.
- INSTALL-01/04 will advertise the channel after publication; INSTALL-10 can extend platform availability later.
Delivery notes
Implement in the existing owning modules and test harnesses. Follow AGENTS.md and the relevant release/editor contracts. Keep fixes focused, preserve unrelated behavior, and attach the actual verification results. Do not replace existing signing, publication, project generation or harness setup with a second system.
Activity
Install: prebuilt-first guide, checked install claims, Homebrew tap
wsdt commentedon Oct 11, 2026
The maintained public wavect/homebrew-tap formula now serves v0.9.0 on both Apple Silicon and Intel. Both public installations, formula tests, strict audits and removal passed. Apple Silicon v0.8.0-to-v0.9.0 upgrade also passed in https://github.com/wavect/semaprax/actions/runs/38155570863 (the independent Windows job failed in that earlier run and was subsequently fixed). https://github.com/wavect/homebrew-tap/blob/main/Formula/semaprax.rb
Verified against published v0.9.0 (commit
933196b9ef3cb611343f1401e9eb0b08fa404d0a) and installation implementation0c9c2a2fe8e55733fddfa3fd8dba1682a93cc5aa. Native installer/archive and package-channel qualification: https://github.com/wavect/semaprax/actions/runs/38156173827 (all executed jobs passed). Release build/publication qualification: https://github.com/wavect/semaprax/actions/runs/38131350918. Changes are onwavect/install, based onwavect/v0-10-0, with the v0.10 merge requested. This evidence qualifies the released installation surface; it does not claim the in-progress v0.10 compiler full gate passed.