Repository navigation
feat(release): ship Debian packages for the APT registry - #23
Merged
Merged
Conversation
pkg.shortarrow.jp indexes the .deb files each project attaches to its release with a SHA256SUMS. Building Linux on Ubuntu 22.04 keeps the arm64 binary off glibc 2.39, which bookworm lacks (ADR 0034).
ShortArrow
marked this pull request as ready for review
October 20, 2026 03:42
An rc package with the release's version would keep apt from upgrading a machine that installed it; 0.3.0~rc.1 sorts before 0.3.0.
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.
Each release gets Debian packages for amd64 and arm64 and a
SHA256SUMScovering every asset, the two things pkg.shortarrow.jp needs before it indexes a package. The registry builds nothing itself: it polls releases and checks each.debagainst the release'sSHA256SUMS. The decision is ADR 0034.The Linux release binaries move from
ubuntu-latesttoubuntu-22.04/ubuntu-22.04-arm. Built on 24.04, the aarch64 executable needsGLIBC_2.39without the WEAK flag, so it cannot start on Debian 12 or Raspberry Pi OS bookworm (glibc 2.36), and the registry's post-publish check runs on bookworm. The x86_64 one needs 2.39 only weakly.The
libc6floor inDependsis read from the executable at build time (glibc-floor.sh), so a later runner image that raises it changes the package rather than hiding behind a stale number. The bookworm install test fails in that case.Dependsonshortarrow-archive-keyringfollows ivi-cli: the key that verifies the source stays installed as long as gitreant is. As a result, a.debdownloaded from the Release page does not install on a machine without the registry configured.A prerelease tag builds its package as
0.3.0~rc.1-1, which sorts before0.3.0-1, so a machine that installed an rc by hand upgrades to the release. The registry indexes stable releases only.CI runs the same apt install test on every pull request with a debug build. The release workflow's
debjob runs only on a tag, so the next rc rehearsal is its first run.