bootstrap packages: tap casks using the appdir DSL fail metadata evaluation
#13136
Replies: 1 comment
|
Opened a fix: #13138 — defines |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
mise bootstrap packagesfails on tap casks that use theappdirDSLbrew-cask:packages from a third-party tap fail the packages phase when the cask interpolatesappdir(e.g.binary "#{appdir}/..."). mise's lightweight tap-cask metadata evaluator definesbinary,app,version, etc., but notappdir, somethod_missingraises and — since third-party taps have no published API metadata to fall back on — evaluation hard-fails and the whole bootstrap packages phase fails.appdiris a very common cask idiom (it's how casks reference the real/Applicationspath for binaries inside an app bundle), and the install-time shim already defines it (cask_shim.rbhasdef appdir; MISE_BREW_CASK_APPDIR; end) — it's only missing from the metadata evaluator (tap_cask_metadata.rb) andCaskFlightSteps.Repro
A tap with this cask:
Observed vs expected
unsupported cask metadata DSL 'appdir', and since tap casks never have published API metadata, the packages phase errors out entirely.appdirresolves (as in the install shim / real Homebrew) and metadata extraction succeeds.Notes from a real-world hit
Cask in question:
umputun/apps/agterm(binary "#{appdir}/agterm.app/Contents/MacOS/agtermctl"). It also usesappdirinsidepostflight_steps→run(via the{{appdir}}template, which 2026.9.6 handles — #13060), so the top-levelbinaryinterpolation is the remaining blocker there.Suggested fix: define
appdironCaskMetadata(andCaskFlightStepsfor defense) insrc/system/packages/brew/tap_cask_metadata.rb, mirroringcask_shim.rb'sMISE_BREW_CASK_APPDIR-backed method.Verified against 2026.9.5 and 2026.9.6 on macOS arm64;
main'stap_cask_metadata.rbstill lacksappdir.This report was prepared with AI assistance (pi coding agent), based on hands-on debugging of the failure.
All reactions