You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(build): preserve prerelease ordering in Arch packages - #2934
Arch nightly packages currently sort above their corresponding stable release. Promotion therefore looks like a downgrade to package version comparison.
The builder uses an alphabetic prerelease suffix. It also keeps epoch=1, including in versioned cap provides, so corrected packages supersede the existing underscore-format packages. Retaining this upgrade path requires keeping the epoch on future packages; Arch's epoch rules make lower epochs older regardless of the upstream version.
Download filenames omit the epoch. For example, cap-bin-0.6.2-1-x86_64.pkg.tar.zst contains .PKGINFO version 1:0.6.2-1, which package version comparison uses.
Verified with actual makepkg artifacts and native vercmp: eight scoped tests pass with zero skips. The regression fails on baseline 848d18fe7. Tests also check RC/numeric prereleases, epoch-free filenames, retained metadata epochs, versioned provides, and all three executable payloads. Shell/Node syntax, scoped Biome, workflow parsing and whitespace checks pass.
A focused CI workflow runs the native integration test as a nonroot user in Arch with Node, and rejects skipped tests. Local verification used synthetic executables and installed Arch tools; no packages were installed or uploaded and no live package repository was tested. Explicit manual installation remains possible. The fix applies to releases containing this script change.
Confidence Score: 5/5
The PR appears safe to merge; no actionable new issues were found.
Summary
This PR fixes Arch package ordering so stable releases sort above their nightlies.
Arch stable releases now rank above matching prereleases.
Changes since the previous review add the filename rename, matching assertions, documentation, and a pinned checkout action. No actionable new issues were found. Tests were inspected, not run during this review.
Thanks @AksharP5, great catch, and the native vercmp job is a really nice addition. The pre suffix ordering checks out against the alpm rules. One thing we want to settle before merging: with epoch=1, makepkg names the artifact cap-bin-1:0.6.2-1-x86_64.pkg.tar.zst. That colon ends up in the file we upload to CrabNebula in .github/workflows/desktop-release.yml and in the download filename users see. Could you rename the built package at the end of scripts/build-linux-arch-package.sh so the filename has no epoch (for example cap-bin-0.6.2-1-x86_64.pkg.tar.zst; pacman -U reads the version from .PKGINFO, not the filename), with a test assertion for it, and update the example in packaging/linux/README.md? We're also confirming on our side that we want to carry the epoch permanently, and we'll follow up here.
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
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.
Arch nightly packages currently sort above their corresponding stable release. Promotion therefore looks like a downgrade to package version comparison.
The builder uses an alphabetic prerelease suffix. It also keeps
epoch=1, including in versionedcapprovides, so corrected packages supersede the existing underscore-format packages. Retaining this upgrade path requires keeping the epoch on future packages; Arch's epoch rules make lower epochs older regardless of the upstream version.Download filenames omit the epoch. For example,
cap-bin-0.6.2-1-x86_64.pkg.tar.zstcontains.PKGINFOversion1:0.6.2-1, which package version comparison uses.Closes #2933
0.6.2-nightly.202610220300vs0.6.2Verified with actual
makepkgartifacts and nativevercmp: eight scoped tests pass with zero skips. The regression fails on baseline848d18fe7. Tests also check RC/numeric prereleases, epoch-free filenames, retained metadata epochs, versioned provides, and all three executable payloads. Shell/Node syntax, scoped Biome, workflow parsing and whitespace checks pass.A focused CI workflow runs the native integration test as a nonroot user in Arch with Node, and rejects skipped tests. Local verification used synthetic executables and installed Arch tools; no packages were installed or uploaded and no live package repository was tested. Explicit manual installation remains possible. The fix applies to releases containing this script change.


Confidence Score: 5/5
The PR appears safe to merge; no actionable new issues were found.Summary
This PR fixes Arch package ordering so stable releases sort above their nightlies.
Changes since the previous review add the filename rename, matching assertions, documentation, and a pinned checkout action. No actionable new issues were found. Tests were inspected, not run during this review.
Reviews (2) · Last reviewed commit: "chore(ci): pin checkout in Arch package ..." · Reviewed by Greptile