Repository navigation
Conversation
Add a publish-aur workflow that runs when a stable cap-v release is published (or on manual dispatch with a tag). It downloads the release's linux-deb asset from DOWNLOADS_JSON, builds it with the existing Arch package builder in the pinned offline Arch container, and pushes the resulting PKGBUILD and .SRCINFO to ssh://aur@aur.archlinux.org/cap-bin.git using the AUR_SSH_PRIVATE_KEY secret. Without the secret it only builds and uploads the files as an artifact. The builder takes an optional download URL. With one, it sources the versioned DEB from that URL and also writes the PKGBUILD and .SRCINFO, so the AUR package is built from the same recipe as the release's own pacman package. The DEB file name is now versioned, because AUR helpers reuse build directories and would otherwise find a stale Cap.deb.
|
@Wraient is attempting to deploy a commit to the Cap Software Inc Team on Vercel. A member of the Team first needs to authorize it. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
| cp "$PACKAGE/PKGBUILD" "$PACKAGE/.SRCINFO" "$AUR/" | ||
| cd "$AUR" | ||
| git add PKGBUILD .SRCINFO | ||
| if git diff --cached --quiet; then |
There was a problem hiding this comment.
Recipe fixes miss installed users
Re-running publish-aur after changing the recipe can push different files with the same package version. The builder always writes pkgrel=1, and this step allows equal versions whenever the files differ. For example, correcting depends and dispatching the same release tag updates the AUR recipe, but installed users see no newer version to upgrade to.
Increment pkgrel for same-release package changes, or reject changed recipes with an unchanged package version.
Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/publish-aur.yml
Line: 135-138
Comment:
**Recipe fixes miss installed users**
Re-running `publish-aur` after changing the recipe can push different files with the same package version. The builder always writes `pkgrel=1`, and this step allows equal versions whenever the files differ. For example, correcting `depends` and dispatching the same release tag updates the AUR recipe, but installed users see no newer version to upgrade to.
Increment `pkgrel` for same-release package changes, or reject changed recipes with an unchanged package version.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Since 0.6.0, every release has shipped an Arch package (
cap-bin-*.pkg.tar.zst), but only as a direct download. Arch users install it withpacman -Uand never get updates throughyayorparu. This PR adds a workflow that publishes each stable release to the AUR ascap-bin.How it works
publish-aur.ymlruns when acap-v{x.y.z}release is published, skipping prereleases. It can also be dispatched manually with a tag.linux-deblink fromDOWNLOADS_JSON, the same data/download/versionsuses, and downloads the DEB.scripts/build-linux-arch-package.shwith that URL, in the pinned Arch containerdesktop-release.ymlalready uses, with--network none.PKGBUILDit built from and its.SRCINFO, with the source pointed at the CDN asset. The AUR package therefore uses the official package's recipe, dependencies andpackage-formatmarker, and later changes to the builder carry over.ssh://aur@aur.archlinux.org/cap-bin.git, with the AUR host key pinned. It skips the push if the AUR already has a newer version or identical files.Builder changes (without a URL, the output is the same as before):
Cap_0.6.1_x86_64.deb). AUR helpers reuse build directories, and makepkg uses an existing file of the same name, so a fixedCap.debwould fail the checksum on every upgrade.# Maintainer:line the AUR guidelines ask for.Cap Software <hello at cap dot so>is a placeholder; change it to whatever you prefer.Setup needed from maintainers
AUR_SSH_PRIVATE_KEYrepository secret. Until it exists, the workflow builds and uploads the files, then ends with a warning instead of pushing.mainwithtag: cap-v0.6.1(or the latest release) to create the package. A release event runs the workflow from the tagged commit, so tags that predate this PR need this manual run.The AUR guidelines warn that automated updates don't replace a maintainer's attention. Because this PKGBUILD comes from the same builder as the official package, dependency changes only need to be made once. The account should still watch the package's comments and out-of-date flags.
Verification
cap-bin-0.6.1-1.PKGINFOidentical apart from build date and packager. Every payload file is identical: paths, modes, sizes, sha256.--network nonePKGBUILDand.SRCINFO.SRCINFOmatchesmakepkg --printsrcinfo.namcap PKGBUILDrun:blocks run locally againstcap-v0.6.1(resolve, download, build)v0.6.1,cap-v0.6, a nightly tag,cap-v0.5.9(nolinux-deblink) and a tag with no release.epoch = 1, the version check compares onlypkgver, and the downgrade check includes the epoch.Not tested: the real SSH push to
aur.archlinux.org, which needs an AUR account. The pinned ed25519 host key matches the fingerprint published on aur.archlinux.org and the one in archlinux/infrastructure'sdocs/ssh-known_hosts.txt. The release trigger also assumes the GitHub release is published by a maintainer or the Discord bot, not by a workflow'sGITHUB_TOKEN, because releases published with that token don't start other workflows. Nothing in this repo publishes them that way. If the next release doesn't start publish-aur, a manual dispatch with its tag does the same job.namcapon the package also reportshicolor-icon-themeas a missing dependency. The current builder already has that gap, so this PR leaves it; it can be added todependsin a follow-up.The PR appears safe to merge, with a non-blocking improvement needed for republishing corrected recipes.
Findings
Fix with agent prompt
Summary
Adds stable-release publication to the AUR as
cap-bin.Acknowledged by
Wraient: the maintainer address is an intentional placeholder; the existinghicolor-icon-themegap is deferred; older tags require manual dispatch; releases published throughGITHUB_TOKENmay require manual dispatch.Reviews (1) · Last reviewed commit: "feat(ci): publish stable releases to the..." · Reviewed by Greptile