README now describes the Gitea Arch registry path as the canonical install/update mechanism — the paru --pkgbuilds fallback is no longer advertised to users. Adds troubleshooting for missing updates (check the repo DB directly) and file conflicts. DECISIONS.md records why the build-and-publish workflow now wipes all existing versions before upload, and why three packages had to be re-registered manually.
1.8 KiB
1.8 KiB
Decisions
2026-04-20 – CI wipes all package versions before upload to kill DB zombies
- Who: Dominik, ClaudeCode
- Why:
paru -Syustopped offeringmoonarch-gitupdates after the r99 → r105 pkgver bump. Root cause: Gitea's Arch registry updatesmoonarch.dbincrementally on upload, but does not evict old entries when a pkgver changes.r99lingered in the DB as a zombie — file already 404, but desc/sig still present — so clients sawr99as "latest" and never gotr105. Not a one-off: every future pkgver bump would repeat the issue. - Tradeoffs: Delete-before-upload adds an HTTP round-trip per package and requires
read:packageon the registry token (write:packagewas already there for upload). Alternative was an admin-side DB scrub per zombie — unscalable and hostile to the user. - How:
build-and-publish.yamlnow lists every existing version of each built package viaGET /api/v1/packages/{owner}?type=arch&q={name}andDELETEs them before the upload loop. jq installed on the runner as a dependency of the listing parser. The per-uploadDELETEof the exact new version was removed (redundant).
2026-04-20 – Register moongreet/moonset/sweet-cursors in the Arch registry
- Who: Dominik, ClaudeCode
- Why: These three packages were missing entirely from the registry — their last pkgver-bumps landed before the
build-and-publishCI fixes (makedepends install, source-based PKGBUILD parse, multi-artifact upload). Without a new PKGBUILD change, the workflow never re-triggered, so they stayed absent. - Tradeoffs: Bumping
pkgrelmanually is a one-shot push. Alternative (wait for the next real upstream change) would have left packages uninstallable indefinitely. - How: Bumped
pkgrelin each PKGBUILD, single commit, triggered thebuild-and-publishworkflow.