Skip to content

Add AUR qn-bin recipe#17

Merged
johnpmitsch merged 3 commits into
mainfrom
add/aur-bin-recipe
Jun 11, 2026
Merged

Add AUR qn-bin recipe#17
johnpmitsch merged 3 commits into
mainfrom
add/aur-bin-recipe

Conversation

@johnpmitsch

@johnpmitsch johnpmitsch commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

Three coordinated changes:

1. release-update-aur-bin Justfile recipe. A maintainer-run command that renders a PKGBUILD + .SRCINFO for the qn-bin AUR package and stages them in a local clone of the AUR git remote. Mirror of the Homebrew and Scoop recipes — manual today, becomes a manual-recovery fallback once CI has SSH access to push to the AUR.

Covers both x86_64 and aarch64 Linux. provides=('qn') + conflicts=('qn') so any future official qn package coexists cleanly. End-to-end-tested against v0.1.4's actual release, and the package is now registered on AUR (v0.1.4 live).

3. Add RELEASING.md. Documents the per-release flow as we've actually lived it: the three named Justfile orchestrators, the publish channels in release.yml, the post-CI manual updates for Homebrew/Scoop/AUR, and the one-time setup notes a future maintainer would otherwise have to rediscover (including the AUR main/master rename gotcha we just hit). Keeps maintainer ops out of the user-facing README.

Test plan

  • just --list shows the new release-update-aur-bin recipe.
  • Running the recipe against v0.1.4 + a throwaway git repo produces a valid PKGBUILD and .SRCINFO with real sha256s, correct multi-arch source blocks, and the leading TABs that AUR's .SRCINFO format requires.
  • After the scrub, grep -E "[A-Z]+_(TOKEN|KEY|SECRET|PAT)" against committed files returns only standard names that come from a tool's own public docs (CARGO_REGISTRY_TOKEN, GITHUB_TOKEN).
  • qn-bin is registered on AUR (web page returns 200; git ls-remote shows v0.1.4 ref).
  • After merge, confirm yay -S qn-bin works on an Arch host.

Mirrors release-update-homebrew-tap and release-update-scoop-bucket:
a maintainer-run command that syncs a PKGBUILD + .SRCINFO for the
`qn-bin` AUR package to a local clone of the AUR git remote
(ssh://aur@aur.archlinux.org/qn-bin.git).

Until CI has SSH access to push to the AUR, this is the manual path.
When that's wired we'll add a publish-aur workflow modeled on
publish-deb and this recipe becomes a manual-recovery fallback.

The PKGBUILD covers both x86_64 and aarch64 Linux (the gnu archives
cargo-dist ships), downloads them from the GitHub Release, and verifies
each against its sha256 sidecar. `provides=('qn')` and
`conflicts=('qn')` so users of any future official `qn` package don't
end up with both.

The .SRCINFO is generated inline rather than via `makepkg --printsrcinfo`
because makepkg isn't available on macOS dev boxes. The fields mirror
makepkg's canonical output order (validated against a real-world reference,
astral-sh/uv-bin).

Usage:

  just release-update-aur-bin 0.1.4 ~/qn/aur-qn-bin

Precondition: the AUR package `qn-bin` has been registered on the AUR,
and aur_path is a clean local clone of ssh://aur@aur.archlinux.org/qn-bin.git.

End-to-end-tested against v0.1.4's actual release: pulled both sha256
sidecars, rendered a valid PKGBUILD and .SRCINFO (with leading TABs on
the indented lines, as the AUR format requires).
A public repo's commit messages, code comments, and PR bodies shouldn't
mention internal secret names — even ones we haven't created yet.
Names invented for planned CI secrets are still infrastructure detail
and read as roadmap leaks.

Edits:

* Justfile: replace a `release-update-homebrew-tap` comment that named
  the planned tap-push secret with generic "a PAT with contents:write
  on the tap repo".
* dist-workspace.toml: same scrub on the `tap = ...` block's
  explanation of why "homebrew" stays out of publish-jobs.
* CLAUDE.md: add a bullet to the open-source repo rules block calling
  out this exact pattern, with the carve-out for standard names that
  come from a tool's own public docs (e.g. CARGO_REGISTRY_TOKEN is the
  name `cargo publish` itself reads, so it's documented surface, not
  internal).

No behavior change — comment edits only.
@johnpmitsch johnpmitsch changed the title Add AUR qn-bin recipe; scrub secret-name leaks Add AUR qn-bin recipe Jun 11, 2026
Captures what we've actually been doing: the three Justfile recipes
(release-prepare, release.yml in CI, post-CI manual steps), the
per-channel manual update commands (Homebrew, Scoop, AUR), and the
one-time setup notes a future maintainer would otherwise have to
rediscover — especially the AUR registration sequence with the
main/master rename gotcha we just hit.

Also documents the recovery path for a partially-failed release
(re-run just the failed publish job) and the local sanity checks to
run before tagging.

Doesn't replicate user-facing install instructions — those live in
README.md. This file is for maintainers.
@johnpmitsch johnpmitsch merged commit 8e05602 into main Jun 11, 2026
12 checks passed
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.

2 participants