Packaging: échouer tôt avec Paru stable incompatible #44

Merged
mathieu merged 1 commit from followup/issue-34-comment-1771 into main 2026-09-05 18:41:40 +00:00
Owner

Advances #34; this leaves the issue open for Mathieu's desktop verification.

Diagnosis:

  • Pacman correctly notices that AURoscope conflicts with installed paru 2.1.0, but the package archive only depends on the virtual paru capability;
  • accepting removal cannot add the absent AUR-only paru-git provider to that Pacman transaction, so the dependency becomes unsatisfied after a roughly three-minute build;
  • provider replacement must therefore happen first, as a separate AUR-helper transaction.

Changes:

  • publish package revision 0.1.0.r4.gd0ad113-3;
  • detect the exact installed stable paru<=2.1.0 package in prepare() and stop before compilation with install paru-git first, then rerun makepkg -si;
  • retain depends=('paru') for compatible providers and conflicts=('paru<=2.1.0') as the final installation guard;
  • document the recovery command and the verified Pacman/makepkg behavior;
  • extend the disposable package gate to prove no AURoscope archive is created in the incompatible state, then prove a separate paru-git replacement permits build and installation.

TDD and verification:

  • RED: the modified package gate built AURoscope successfully with disposable stable paru 2.1.0-1, then failed with AURoscope unexpectedly built with incompatible stable Paru installed;
  • packaging/aur/scripts/test-package.sh — pass; builds/installs 0.1.0.r4.gd0ad113-3 only after separate provider replacement;
  • CGO_ENABLED=1 go test ./... — pass;
  • go vet ./... — pass;
  • git diff --check and bash -n on packaging/E2E scripts — pass;
  • AUROSCOPE_E2E_DISPOSABLE_ARCH=1 scripts/e2e-disposable-arch.sh — pass;
  • AUROSCOPE_E2E_SUPPORTED_PARU=1 scripts/e2e-supported-paru.sh — pass against pinned real Paru 9ac3578.

Risk:

  • package metadata alone cannot make Pacman fetch an AUR-only replacement provider; the separate paru -S paru-git transaction remains necessary;
  • the early check deliberately targets only the exact package named paru, so a compatible provider named paru-git is not rejected even though pacman -Q paru resolves it;
  • conflicts=('paru<=2.1.0') remains the fail-closed backstop for direct archive installation.

Review guidance:

  • inspect the exact package-name check around pacman -Q paru and vercmp;
  • verify .SRCINFO parity and pkgrel=3;
  • inspect the package gate's failure-before-artifact assertion and subsequent successful paru-git path.
Advances #34; this leaves the issue open for Mathieu's desktop verification. Diagnosis: - Pacman correctly notices that AURoscope conflicts with installed `paru 2.1.0`, but the package archive only depends on the virtual `paru` capability; - accepting removal cannot add the absent AUR-only `paru-git` provider to that Pacman transaction, so the dependency becomes unsatisfied after a roughly three-minute build; - provider replacement must therefore happen first, as a separate AUR-helper transaction. Changes: - publish package revision `0.1.0.r4.gd0ad113-3`; - detect the exact installed stable `paru<=2.1.0` package in `prepare()` and stop before compilation with `install paru-git first, then rerun makepkg -si`; - retain `depends=('paru')` for compatible providers and `conflicts=('paru<=2.1.0')` as the final installation guard; - document the recovery command and the verified Pacman/makepkg behavior; - extend the disposable package gate to prove no AURoscope archive is created in the incompatible state, then prove a separate `paru-git` replacement permits build and installation. TDD and verification: - RED: the modified package gate built AURoscope successfully with disposable stable `paru 2.1.0-1`, then failed with `AURoscope unexpectedly built with incompatible stable Paru installed`; - `packaging/aur/scripts/test-package.sh` — pass; builds/installs `0.1.0.r4.gd0ad113-3` only after separate provider replacement; - `CGO_ENABLED=1 go test ./...` — pass; - `go vet ./...` — pass; - `git diff --check` and `bash -n` on packaging/E2E scripts — pass; - `AUROSCOPE_E2E_DISPOSABLE_ARCH=1 scripts/e2e-disposable-arch.sh` — pass; - `AUROSCOPE_E2E_SUPPORTED_PARU=1 scripts/e2e-supported-paru.sh` — pass against pinned real Paru `9ac3578`. Risk: - package metadata alone cannot make Pacman fetch an AUR-only replacement provider; the separate `paru -S paru-git` transaction remains necessary; - the early check deliberately targets only the exact package named `paru`, so a compatible provider named `paru-git` is not rejected even though `pacman -Q paru` resolves it; - `conflicts=('paru<=2.1.0')` remains the fail-closed backstop for direct archive installation. Review guidance: - inspect the exact package-name check around `pacman -Q paru` and `vercmp`; - verify `.SRCINFO` parity and `pkgrel=3`; - inspect the package gate's failure-before-artifact assertion and subsequent successful `paru-git` path.
Author
Owner
No description provided.
<!-- auroscope-loop:pr-feedback:task:t_f9cc0755;comment-cursor:0;review-cursor:0 -->
mathieu approved these changes 2026-09-05 18:41:35 +00:00
mathieu deleted branch followup/issue-34-comment-1771 2026-09-05 18:41:41 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
2027a/auroscope!44
No description provided.