3.4 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, references, priority
| id | title | status | assignee | created_date | updated_date | labels | dependencies | references | priority | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-166 | Prevent AUR upgrade cache collisions for unversioned release assets | Done |
|
2026-03-17 18:10 | 2026-03-17 18:14 |
|
|
|
medium |
Description
Fix the AUR release metadata generated by the tagged-release workflow so end-user upgrades do not reuse stale cached downloads for unversioned subminer and subminer-assets.tar.gz source names.
Acceptance Criteria
- #1 AUR packaging generated for a new
pkgveruses versioned local source aliases for the non-versioned GitHub release assets. - #2 The package install step references the versioned local launcher filename correctly.
- #3 Regression coverage fails if metadata generation reintroduces stable cache-colliding source aliases.
- #4 Targeted verification records the commands run and results.
Implementation Plan
- Add a failing regression test around
scripts/update-aur-package.shoutput for versioned local source aliases. - Update the repo AUR template and
.SRCINFOrewrite logic to stamp versioned alias names forsubminerandsubminer-assets. - Verify the generated metadata and targeted workflow/package tests, then record results here.
Implementation Notes
Root cause: the AUR package used stable local source aliases for the unversioned subminer and subminer-assets.tar.gz GitHub release assets. makepkg/AUR helpers can reuse those cached filenames across upgrades, so a stale cached download survives into a newer pkgver and then fails checksum validation.
Patched the repo AUR template to version the local cache aliases:
subminer-${pkgver}::.../subminersubminer-assets-${pkgver}.tar.gz::.../subminer-assets.tar.gz
Updated package() to install the versioned local wrapper filename, and updated scripts/update-aur-package.sh so the generated .SRCINFO stamps matching concrete versioned aliases for release automation.
Added regression assertions in scripts/update-aur-package.test.ts covering both versioned source aliases and the launcher install path, then watched that test fail before the patch and pass after it.
Verification:
bun test scripts/update-aur-package.test.tsbash -n scripts/update-aur-package.sh && bash -n packaging/aur/subminer-bin/PKGBUILDbun run typecheckbun run test:fastbun run test:envbun run buildbun run test:smoke:dist
Final Summary
The tagged-release AUR metadata path now emits versioned local source aliases for the non-versioned GitHub release assets, preventing stale makepkg cache reuse across subminer-bin upgrades. The change is covered by a regression test and passed the repo's maintained verification gate.