The homebrew-tap profile's validator rejects a setup caller that runs on
tags, so the tap's .circleci/config.yml is now byte-for-byte the one in
QRun-IO/homebrew-qctl (tags: ignore). brew style flags a formula without
the frozen_string_literal magic comment, so it is added; the 64-hex zero
placeholders stay so scripts/update-packaging.mjs still fills them.
The formula and Scoop manifest placeholders now name 1.0.0 instead of
1.0.0-rc.1, and the packaging notes name QRun-IO/scoop-bucket, say that
the tap's CI executes only the Linux x64 binary (macOS downloads are
fetched and checksummed, not run), and that the bucket uses the
ScoopInstaller BucketTemplate Actions with Excavator auto-updating on new
cli-v* releases.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
docs/packaging/homebrew-tap/ is the whole tap repository (formula,
README, LICENSE, qqq-orb homebrew-tap profile); the formula moves there
as the single source, installs only bin/qqq with completions, says qqq ui
is bundled, and its test fails on a binary without the UI. The binary is
chmod 0755 before install: Homebrew downloads arrive without the
execute bit and the completion step runs the binary (found by installing
the formula in the homebrew/brew container, where it then installed,
passed brew test and wrote the three completion files). The Scoop
manifest describes the with-UI binary and notes the ConPTY requirement.
The packaging README covers Gatekeeper without notarization and the
xattr workaround, SmartScreen, and what is still unverified.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
release.mjs passes --with-tui to the binary build. docs/packaging
records the three ways tried to ship qqq ui (one binary with the UI, a
second qqq-ui binary, npm with Bun), the sizes, what was smoke-tested
and what was not, and recommends one qqq binary with the UI bundled.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
scripts/install.sh picks the binary for the machine (musl on Alpine,
native arm64 under Rosetta), verifies it against the release's
SHA256SUMS and installs to ~/.local/bin. qqq.rb and qqq.json follow the
qctl tap and bucket shapes; scripts/update-packaging.mjs fills their
version and checksums from the uploaded release so nobody pastes sums
by hand. The formula writes its own #compdef zsh file because the
output of qqq completion zsh is an eval script, not an fpath file.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>