Skip to content

Update Leiningen to 2.13.1 - #306

Open
cap10morgan wants to merge 3 commits into
masterfrom
update/leiningen
Open

cap10morgan wants to merge 3 commits into
masterfrom
update/leiningen

Conversation

@cap10morgan

Copy link
Copy Markdown
Collaborator

Summary

  • Upgrade Leiningen to 2.13.1, pinning the release tag to its commit d109a01c ("Release 2.13.1").
  • Keep Leiningen's signing key in the repo. Lein builds fetched the key from keyserver.ubuntu.com and failed whenever that timed out, which happens often when building many images in parallel. Builds now import resources/lein-signing-key.asc and still check it against the keyserver:
    • keyserver copy matches → build continues
    • keyserver unreachable → warning, build continues with the local copy
    • keyserver copy differs (revoked, expiry changed, new subkey or user ID) → build fails, prints both copies and says to run bb refresh-lein-key
  • Add bb refresh-lein-key, which fetches the key, checks it's the pinned fingerprint, and writes a minimal export to resources/.
  • Shorten smoke test log lines. The lein routing check passed its whole script and Clojure form as arguments, so each image logged ~25 lines; multi-line args now log as a line count and long args are truncated.

Regenerated Dockerfiles aren't included; CI regenerates target/ on master.

Testing

  • bb test (28 tests, 0 failures) and bb fmt-check pass.
  • Local arm64 builds of the lein variants on Debian, Ubuntu (jammy, noble, resolute), and Alpine, plus latest, with smoke tests via bb build-images.
  • Exercised all three key-check paths with real builds: matching key (Debian and Alpine), unreachable keyserver, and a local key with its subkey removed (fails with the expected message).
  • bb refresh-lein-key leaves an up-to-date key file byte-for-byte unchanged and restores a modified one.

🤖 Generated with Claude Code

cap10morgan and others added 3 commits November 11, 2026 10:36
Pin the 2.13.1 release tag to its commit, d109a01c ("Release 2.13.1").

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Lein builds fetched the release signing key from keyserver.ubuntu.com and
failed whenever it timed out, which happens often when building many
images in parallel. Import a copy kept in resources/ instead, and still
check it against the keyserver: fail with instructions if the keyserver's
copy differs (e.g. the key was revoked, extended or gained a subkey), and
carry on with the local copy if the keyserver can't be reached.

Add `bb refresh-lein-key` to update the local copy from the keyserver.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The lein routing check passes its whole script and Clojure form as
arguments, so logging each command printed ~25 lines per image. Log
multi-line args as a line count and truncate long ones.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cap10morgan

Copy link
Copy Markdown
Collaborator Author

@Quantisan I did a little more than just a version bump in here, so wanted your review. Thanks!

@Quantisan Quantisan left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! vendoring the key seems reasonable. I'm not sure if it should be code in the image's Dockerfile. Can we do the key server comparison in our CI here, perhaps?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants