brew-cask: AeroSpace tap Ruby metadata evaluation lacks HOMEBREW_PREFIX on 2026.9.7 #13163
ProblemOn mise 2026.9.7, a dry-run for Expected: resolve the cask metadata and produce a dry-run plan. Actual: metadata evaluation fails before installation or lifecycle execution. Environment
I reproduced this with an isolated home and isolated mise config, data, cache, The command was run twice and exited 1 both times; the first run used a fresh ReproductionMinimal min_version = "2026.9.7"
[settings]
experimental = true
[tools]
ruby = "4.0.6"
[bootstrap.packages]
"brew-cask:nikitabobko/tap/aerospace" = { version = "latest", os = "macos" }With Ruby 4.0.6 already installed and its real binary on ruby --version
mise --version
mise --verbose bootstrap packages apply --dry-run \
brew-cask:nikitabobko/tap/aerospaceThe verbose output shows the expected API-first lookup returning 404, followed Ruby metadata evaluation then fails: The pinned AeroSpace cask uses For example: binary "AeroSpace-v#{version}/shell-completion/zsh/_aerospace",
target: "#{HOMEBREW_PREFIX}/share/zsh/site-functions/_aerospace"Reduced metadata-only testI also tested the unmodified cask "example" do
version "1.0"
sha256 "0000000000000000000000000000000000000000000000000000000000000000"
url "https://example.invalid/example.zip"
binary "example", target: "#{HOMEBREW_PREFIX}/bin/example"
endWith the required Adding only this line before the HOMEBREW_PREFIX = "/opt/homebrew"allows the same shim to exit 0 and serialize the binary target as: {"binary":["example",{"target":"/opt/homebrew/bin/example"}]}This reduced test performs metadata extraction only; it does not fetch or Related work and question
Should the tap cask metadata evaluator expose a If exposing the constant is intended, should it resolve to mise's
|
Replies: 2 comments 1 reply
|
Follow-up: I tested the full pinned AeroSpace cask after manually supplying the missing The triggering declaration is: Dir["#{staged_path}/AeroSpace-v#{version}/manpage/*"].each { |man| manpage man }The v2026.9.7 tap metadata evaluator does not define https://github.com/jdx/mise/blob/v2026.9.7/src/system/packages/brew/tap_cask_metadata.rb For isolation, I then supplied both: HOMEBREW_PREFIX = "/opt/homebrew"
class CaskMetadata
def staged_path = "/mise-metadata-staged-path"
endWith that inert, nonexistent staged path, the full cask evaluates successfully and emits six artifacts: the structured postflight steps, app, CLI binary, and three completion binaries. The There also does not appear to be a https://github.com/jdx/mise/blob/v2026.9.7/src/system/packages/brew/cask/artifacts.rs#L3-L59 This was metadata-only testing; no archive was downloaded and no package was installed. It suggests full AeroSpace compatibility needs either support for deferred AI-assisted — Tool: Pi; model: openai-codex/gpt-5.6-sol; version: 0.85.1. |
Opened 2 narrowly scoped PRs to address these issues so far:
#13199
#13200