fix(aur): first publish of a new package pushed nothing, and reported success#46
Merged
Conversation
…cess The v0.2.0 AUR publish reported success and produced a 404 package. warning: You appear to have cloned an empty repository. No change to publish. The AUR repo for a package that has never been published is empty, so the copied PKGBUILD and .SRCINFO are UNTRACKED. `git diff --quiet` compares tracked files only, saw nothing, printed "No change to publish" and exited 0 -- so the workflow went green having pushed nothing at all. It would silently skip the first publish of ANY new AUR package. Stages first, then tests with git status --porcelain, which counts untracked and staged entries and works in a repo with no HEAD to diff against. Reproduced against a real empty repo before and after: the old form reports no change with both files present, the new one commits. Also verifies the push actually landed by comparing HEAD against ls-remote. A push that resolves to a no-op exits 0, and this workflow has now demonstrated once that reporting success while publishing nothing is a state it can reach -- so exit codes alone are not sufficient evidence that a package is live.
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ❌ Deployment failed View logs |
thinkutils | db88774 | Jul 20 2026, 07:34 AM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The v0.2.0 AUR publish reported success and produced a 404 package.
Cause
The AUR repo for a never-published package is empty, so the copied
PKGBUILDand.SRCINFOare untracked.git diff --quietcompares tracked files only — it saw nothing, printed "No change to publish", and exited 0. The workflow went green having pushed nothing.This would silently skip the first publish of any new AUR package. It only looks correct on updates, where the files already exist as tracked.
Reproduced, not reasoned about
Against a real empty bare repo with both files present:
git status --porcelaincounts untracked and staged entries, and works in a repo with no HEAD to diff against.Also: verify the push landed
A push that resolves to a no-op exits 0. This workflow has now demonstrated once that "reported success, published nothing" is a state it can reach, so the exit code alone isn't evidence. It now compares
HEADagainstgit ls-remoteand fails loudly if the remote didn't move.Wider point
Three bugs in this workflow have now shared one shape: a step that succeeds while accomplishing nothing —
ssh-keyscanreturning no keys and exiting 0,git diffnot seeing untracked files, andgit pushno-oping. Each reported success. The external check (curlthe AUR RPC) is what caught it, not CI.