forge-recovery fed59092c0
QRun-IO/ci-policy: ci / fork-guard (push) Skipped
QRun-IO/ci-policy: native / fork-deny (push) Skipped
QRun-IO/ci-policy: native / dotnet-0 (push) Skipped
QRun-IO/ci-policy: ci / Scoped workflow [workflow 60e5a80ed7a5a67877bfb3e129b1929c83464b6e] (push) Successful in 12s
QRun-IO/ci-policy: ci / head-profile (push) Skipped
QRun-IO/ci-policy: ci / repository-policy (push) Skipped
QRun-IO/ci-policy: ci / application-template-0 (push) Skipped
QRun-IO/ci-policy: ci / gradle-1 (push) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (push) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (push) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (push) Skipped
QRun-IO/ci-policy: ci / node-8 (push) Skipped
QRun-IO/ci-policy: ci / node-9 (push) Skipped
QRun-IO/ci-policy: ci / node-10 (push) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (push) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (push) Skipped
QRun-IO/ci-policy: ci / source-config-13 (push) Skipped
QRun-IO/ci-policy: ci / source-config-14 (push) Skipped
QRun-IO/ci-policy: ci / android-0 (push) Skipped
QRun-IO/ci-policy: ci / original-business (push) Skipped
QRun-IO/ci-policy: ci / original-mcp (push) Skipped
QRun-IO/ci-policy: ci / original-voyage (push) Skipped
QRun-IO/ci-policy: ci / original-cli (push) Skipped
QRun-IO/ci-policy: ci / not-enrolled (push) Skipped
QRun-IO/ci-policy: native / native-result (push) Successful in 10s
QRun-IO/ci-policy: Shared pipeline / Prepare plan [workflow 60e5a80ed7a5a67877bfb3e129b1929c83464b6e] (push) Successful in 39s
QRun-IO/ci-policy: Shared pipeline / Secret scan (push) Successful in 27s
QRun-IO/ci-policy: Shared pipeline / Verify source / Linux / Node 22.20.0 (push) Successful in 35s
QRun-IO/ci-policy: Shared pipeline / Report (push) Successful in 22s
QRun-IO/ci-policy: ci / shared-pipeline (push) Successful in 5m11s
QRun-IO/ci-policy: Shared pipeline / Release tag (push) Skipped
QRun-IO/ci-policy: ci / ci-result (push) Successful in 11s
QRun-IO/ci-policy: Shared pipeline / Verify ${{ matrix.display }} (push) Skipped
Merge pull request 'ci: use the shared source verification pipeline' (#2) from migration/shared-source-configuration-20261105 into main
2026-11-05 12:56:32 +00:00

QRun-IO Homebrew tap

Homebrew formulae for QRun-IO command-line tools. Today that is qqq: the QQQ command-line client and its terminal UI (qqq ui) in one prebuilt binary, from the cli-v* GitHub releases of QRun-IO/qqq-cli.

Formula What Platforms
qqq QQQ command-line client and terminal UI, one binary macOS arm64 and x64, Linux arm64 and x64 (glibc)

Install

brew install qrun-io/tap/qqq        # taps QRun-IO/homebrew-tap on first use
qqq --version                       # qqq 1.0.0 (... binary with ui ...)
qqq login --server https://your-qqq-server
qqq ui                              # the terminal UI, same binary

The formula installs bin/qqq and bash, zsh and fish completions. Nothing else.

Upgrade

brew update
brew upgrade qrun-io/tap/qqq

Notes

  • The macOS binaries are signed ad hoc, not notarized. Homebrew does not set the quarantine flag, so Gatekeeper does not block them. A binary downloaded from the releases page with a browser is a different story; see the qqq-cli packaging notes.
  • Alpine and other musl systems are not covered by Homebrew. Use the curl installer from qqq-cli, which picks the -musl build.
  • Windows: use the Scoop bucket, QRun-IO/scoop-bucket.
  • qctl lives in QRun-IO/homebrew-qctl for now.

How the formula is updated

Formula/qqq.rb is generated in qqq-cli, at docs/packaging/homebrew-tap/Formula/qqq.rb; the copy here should only differ from that file by version and sums. After a cli-v<version> GitHub release, in a qqq-cli checkout:

gh release download cli-v<version> --repo QRun-IO/qqq-cli -p SHA256SUMS -D /tmp/qqq-<version>
node scripts/update-packaging.mjs /tmp/qqq-<version>/SHA256SUMS
cp docs/packaging/homebrew-tap/Formula/qqq.rb <this repo>/Formula/qqq.rb

update-packaging.mjs takes the version from packages/cli/package.json and puts each binary's sum from the release's SHA256SUMS into the matching url/sha256 pair. Always use the uploaded SHA256SUMS, never a local rebuild: each build stamps its commit, so the sums differ. Open a pull request here with the result.

How CI verifies it

CircleCI runs the qqq-orb homebrew-tap profile (.qqq-ci.yml, orb track 0.8; .circleci/config.yml is the orb's canonical setup caller and must not be edited by hand). On every branch push, one job in a digest-pinned homebrew/brew Linux container:

  1. taps this exact checkout as qrun-io/tap and checks the tapped revision is the commit under test;
  2. brew readall --syntax --os=all --arch=all (every OS and architecture block parses);
  3. brew fetch --all-platforms (downloads all four binaries and checks every sha256);
  4. brew install and brew test on Linux x64. The test runs qqq --version and requires binary with ui, and checks that shell completion answers.

The macOS binaries are downloaded and checksum-verified but not executed in CI.

License

Apache-2.0, see LICENSE. The formula is packaging only; qqq itself is licensed as stated in qqq-cli.

S
Description
Homebrew tap for QRun-IO tools: brew install qrun-io/tap/qqq
Readme Apache-2.0
44 KiB
0 Stars 2 Watchers 0 Forks
Languages
Ruby 100%