Owner decision 2026-11-08: CI opens pull requests in the tap and the bucket; a human merges.
scripts/publish-packaging.sh (called by release.yaml publish): for a final version, push branch release/qqq-<version> to QRun-IO/homebrew-tap (Formula/qqq.rb) and QRun-IO/scoop-bucket (bucket/qqq.json) with PACKAGES_TOKEN, open a pull request qqq <version> into the default branch (re-runs force-update the CI-owned branch and find the open PR).
Prerelease, empty token, refused push, or refused PR: attach qqq.rb / qqq.json to the release as today. Nothing here fails the release (a failed attach is a warning).
DRY_RUN=1 VERSION=<v> SUMS_FILE=<SHA256SUMS>: clones and commits locally, pushes/opens/attaches nothing.
Runbook updated.
Verified (no release cut): shellcheck clean; dry run against the real public tap/bucket with VERSION=1.0.1 showed the formula/manifest commits and "would push release/qqq-1.0.1 ... open pull request "qqq 1.0.1" into main" for both; dry run with a prerelease version took the attach path; a non-dry run with no PACKAGES_TOKEN fell back to attach and exited 0.
Owner action before the first final release: grant qqq-package-publisher write on QRun-IO/homebrew-tap and QRun-IO/scoop-bucket, and protect their main branches (so CI can only propose).
Owner decision 2026-11-08: CI opens pull requests in the tap and the bucket; a human merges.
- `scripts/publish-packaging.sh` (called by `release.yaml` publish): for a **final** version, push branch `release/qqq-<version>` to `QRun-IO/homebrew-tap` (`Formula/qqq.rb`) and `QRun-IO/scoop-bucket` (`bucket/qqq.json`) with `PACKAGES_TOKEN`, open a pull request `qqq <version>` into the default branch (re-runs force-update the CI-owned branch and find the open PR).
- Prerelease, empty token, refused push, or refused PR: attach `qqq.rb` / `qqq.json` to the release as today. Nothing here fails the release (a failed attach is a warning).
- `DRY_RUN=1 VERSION=<v> SUMS_FILE=<SHA256SUMS>`: clones and commits locally, pushes/opens/attaches nothing.
- Runbook updated.
Verified (no release cut): shellcheck clean; dry run against the real public tap/bucket with `VERSION=1.0.1` showed the formula/manifest commits and "would push release/qqq-1.0.1 ... open pull request \"qqq 1.0.1\" into main" for both; dry run with a prerelease version took the attach path; a non-dry run with no `PACKAGES_TOKEN` fell back to attach and exited 0.
**Owner action before the first final release:** grant `qqq-package-publisher` write on `QRun-IO/homebrew-tap` and `QRun-IO/scoop-bucket`, and protect their `main` branches (so CI can only propose).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
For a final version the publish job now pushes branch release/qqq-<version>
to QRun-IO/homebrew-tap and QRun-IO/scoop-bucket with PACKAGES_TOKEN and
opens a pull request "qqq <version>" in each; a human merges. A prerelease,
or a refused push or pull request, attaches qqq.rb / qqq.json to the release
as before, and never fails the release. The logic moves to
scripts/publish-packaging.sh, with a DRY_RUN=1 path that clones and commits
locally but writes nothing remote.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Owner decision 2026-11-08: CI opens pull requests in the tap and the bucket; a human merges.
scripts/publish-packaging.sh(called byrelease.yamlpublish): for a final version, push branchrelease/qqq-<version>toQRun-IO/homebrew-tap(Formula/qqq.rb) andQRun-IO/scoop-bucket(bucket/qqq.json) withPACKAGES_TOKEN, open a pull requestqqq <version>into the default branch (re-runs force-update the CI-owned branch and find the open PR).qqq.rb/qqq.jsonto the release as today. Nothing here fails the release (a failed attach is a warning).DRY_RUN=1 VERSION=<v> SUMS_FILE=<SHA256SUMS>: clones and commits locally, pushes/opens/attaches nothing.Verified (no release cut): shellcheck clean; dry run against the real public tap/bucket with
VERSION=1.0.1showed the formula/manifest commits and "would push release/qqq-1.0.1 ... open pull request "qqq 1.0.1" into main" for both; dry run with a prerelease version took the attach path; a non-dry run with noPACKAGES_TOKENfell back to attach and exited 0.Owner action before the first final release: grant
qqq-package-publisherwrite onQRun-IO/homebrew-tapandQRun-IO/scoop-bucket, and protect theirmainbranches (so CI can only propose).🤖 Generated with Claude Code