Skip to content

build(aur): gate the recipe against version drift, refresh it on release (GDK-115) - #12

Merged
midagedev merged 1 commit into
mainfrom
feat/gdk-115-aur-bin
Aug 18, 2026
Merged

build(aur): gate the recipe against version drift, refresh it on release (GDK-115)#12
midagedev merged 1 commit into
mainfrom
feat/gdk-115-aur-bin

Conversation

@midagedev

Copy link
Copy Markdown
Owner

contrib/aur/gadak-bin/ already had a working PKGBUILD, .SRCINFO, update.sh and a container verify.sh. What it lacked was anything that notices pkgver drifting from the tag it claims, and anything that refreshes it when a release happens — both were steps a person had to remember.

  • contrib/aur/gadak-bin/check-pkgver.sh — offline gate: pkgver == latest tag minus v. Same version owner as tools/doc-checks.sh check 6 (git describe --tags --abbrev=0), not gadak version (an unstamped tree prints 0.0.0-dev). Skips a tagless checkout and a hyphenated prerelease tag, which cannot be a pkgver.
  • .github/workflows/aur.yml runs it with fetch-depth: 0, because a shallow clone has no tags and the gate would pass by skipping. Path-scoped to contrib/aur/**, so it fires when the recipe is edited rather than on every tag.
  • .github/workflows/release.yml gains aur-pkgbuild: after GoReleaser it runs update.sh for the published tag, prints the commit-ready diff, and uploads the PKGBUILD as an artifact. It does not push to aur.archlinux.org (account + SSH key, lead-only), and .SRCINFO is still regenerated by verify.sh because that needs makepkg.

FAIL-first: a copy of PKGBUILD with pkgver=0.0.0 gives FAIL: PKGBUILD pkgver=0.0.0 does not match latest tag v0.15.2 (want 0.15.2), exit 1. The real file was not mutated.

Publishing remains blocked upstream: AUR closed new-package registration after the 2026-08 supply-chain attack (already recorded in docs/INSTALL.md), and rpc/v5/search/gadak is still resultcount 0. A correct recipe and an installable recipe are two different states.

🤖 Generated with Claude Code

…release refresh (GDK-115)

contrib/aur/gadak-bin/ already held a working PKGBUILD, .SRCINFO, update.sh
and a container verify.sh. What it did not have was anything that notices
pkgver drifting from the tag it claims, or anything that refreshes it when a
release happens — both were steps a person had to remember.

- contrib/aur/gadak-bin/check-pkgver.sh: offline gate, pkgver == the latest
  tag with the v stripped. Same version owner as tools/doc-checks.sh check 6
  (git describe --tags --abbrev=0), not `gadak version`, which prints
  0.0.0-dev in an unstamped tree. Skips on a tagless checkout and on a
  hyphenated prerelease tag, which cannot be a pkgver.
- .github/workflows/aur.yml runs it, with fetch-depth: 0 so tags exist — a
  registered gate that always skips is worse than no gate. The workflow is
  path-scoped to contrib/aur/**, so it fires when the recipe is edited and
  not on every tag.
- .github/workflows/release.yml gains aur-pkgbuild: after GoReleaser it runs
  update.sh for the published tag, prints the commit-ready diff, and uploads
  the PKGBUILD as an artifact. It does not push to aur.archlinux.org — that
  needs an account and an SSH key, and stays lead-only. .SRCINFO still needs
  makepkg, so it is regenerated by verify.sh, not here.

FAIL-first: a copy of PKGBUILD with pkgver=0.0.0 gives
"FAIL: PKGBUILD pkgver=0.0.0 does not match latest tag v0.15.2 (want 0.15.2)",
exit 1. The real file was not mutated.

Publishing is still blocked upstream: AUR closed new-package registration
after the 2026-08 supply-chain attack (docs/INSTALL.md already records this),
and aur.archlinux.org/rpc/v5/search/gadak is still resultcount 0. The recipe
being correct and the recipe being installable are two different states.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@midagedev
midagedev merged commit 08fea75 into main Aug 18, 2026
7 checks passed
@midagedev
midagedev deleted the feat/gdk-115-aur-bin branch August 18, 2026 19:53
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.

1 participant