Skip to content

release: fix "deb" applied as a procedure with non-empty linux-formats (#320) - #321

Merged
turinglambdaai merged 2 commits into
mainfrom
fix/linux-formats-shadowing
Oct 24, 2026
Merged

turinglambdaai merged 2 commits into
mainfrom
fix/linux-formats-shadowing

Conversation

@turinglambdaai

Copy link
Copy Markdown
Owner

Fixes #320.

First commit is deliberately red (test-only): it adds the regression test — a project with linux-formats '("deb") goes through production create-installer! and verify-package! — and should fail on ubuntu with application: not a procedure; given: "deb". The second commit applies the fix and turns it green.

Root cause

verify-linux-native-installers! (rivet-cli/verify.rkt) named its for loop variable format, shadowing the Racket builtin; the deb branch then calls (format "Package: ~a" …), which applies the loop value — the string "deb" — as a procedure. Every project shipping a non-empty linux-formats list crashed at production verification, after all installers were built. The same shadowing pattern exists (latently, no builtin call in scope) in create-linux-installer! and the release summary; both are renamed too.

…loops

verify-linux-native-installers! named its for-loop variable `format`,
so the deb branch's (format "Package: ~a" …) applied the loop value —
the string "deb" — as a procedure; every production release with a
non-empty linux-formats list died after packaging (rivet #320, caught
by the previous commit's regression test on CI). Rename the loop
variable to fmt here, and in create-linux-installer! and the release
summary where the same shadowing was latent.
@turinglambdaai

Copy link
Copy Markdown
Owner Author

Red confirmed on CI (application: not a procedure; given: "deb" in Racket core / Racket 9.0 compatibility) — the regression test reproduces #320 exactly. Fix pushed; waiting for green.

@turinglambdaai
turinglambdaai merged commit a92877c into main Oct 24, 2026
23 checks passed
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.

release: crash ("deb" applied as a procedure) when linux-formats is non-empty

1 participant