Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

brew info reports "undefined method `analytics?'" on casks #18915

Closed
3 tasks done
ideabucket opened this issue Dec 12, 2024 · 4 comments · Fixed by #18917
Closed
3 tasks done

brew info reports "undefined method `analytics?'" on casks #18915

ideabucket opened this issue Dec 12, 2024 · 4 comments · Fixed by #18917
Labels
bug Reproducible Homebrew/brew bug

Comments

@ideabucket
Copy link

ideabucket commented Dec 12, 2024

brew doctor output

==> Cask Environment Variables:
BUNDLE_PATH
CHRUBY_VERSION
GEM_HOME
GEM_PATH
HOMEBREW_CASK_OPTS
LC_ALL
PATH
RBENV_VERSION
RUBYLIB
RUBYOPT
RUBYPATH
SHELL
==> $LOAD_PATHS
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/bundler-2.5.20/lib
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/lib/ruby/gems/3.3.0/gems/msgpack-1.7.3/lib
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/lib/ruby/gems/3.3.0/gems/debug-1.9.2/lib
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/lib/ruby/gems/3.3.0/gems/bootsnap-1.18.4/lib
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/lib/ruby/gems/3.3.0/extensions/arm64-darwin-20/3.3.0-static/msgpack-1.7.3
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/lib/ruby/gems/3.3.0/extensions/arm64-darwin-20/3.3.0-static/debug-1.9.2
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/lib/ruby/gems/3.3.0/extensions/arm64-darwin-20/3.3.0-static/bootsnap-1.18.4
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/warning-1.4.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/vernier-1.4.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-20/3.3.0-static/vernier-1.4.0
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/tapioca-0.16.5/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/yard-sorbet-0.9.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/yard-0.9.37/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/stackprof-0.2.26/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-20/3.3.0-static/stackprof-0.2.26
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/spoom-1.5.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-static-and-runtime-0.5.11690/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-0.5.11690/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-static-0.5.11690-universal-darwin/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.13.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/ruby-prof-1.7.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-20/3.3.0-static/ruby-prof-1.7.1
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/ruby-macho-4.1.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/ruby-lsp-0.22.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-sorbet-0.8.7/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.2.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-performance-1.23.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-md-1.2.4/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-1.69.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-3.1.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/unicode-emoji-4.0.4/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/ruby-progressbar-1.13.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-ast-1.36.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rspec_junit_formatter-0.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rspec-sorbet-1.9.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rspec-retry-0.6.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rspec-github-2.4.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/redcarpet-3.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-20/3.3.0-static/redcarpet-3.6.0
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rbs-3.7.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-20/3.3.0-static/rbs-3.7.0
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rbi-0.2.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11690/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rainbow-3.1.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/pry-0.15.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/prism-1.2.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-20/3.3.0-static/prism-1.2.0
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/plist-3.7.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/patchelf-1.5.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-20/3.3.0-static/racc-1.8.1
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/parallel_tests-4.7.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/netrc-0.11.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/minitest-5.25.4/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/logger-1.6.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/language_server-protocol-3.17.0.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/kramdown-2.5.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rexml-3.3.9/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json_schemer-2.3.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/simpleidn-0.2.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/regexp_parser-2.9.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.9.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-20/3.3.0-static/json-2.9.0
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/hana-1.3.7/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/elftools-1.3.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.5.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/coderay-1.1.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/bindata-2.5.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/bigdecimal-3.1.8/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-20/3.3.0-static/bigdecimal-3.1.8
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/ast-2.4.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/lib
/opt/homebrew/Library/Homebrew
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/lib/ruby/vendor_ruby/3.3.0
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/lib/ruby/vendor_ruby/3.3.0/arm64-darwin20
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/lib/ruby/vendor_ruby
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/lib/ruby/3.3.0
/opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/lib/ruby/3.3.0/arm64-darwin20
==> Homebrew Version
4.4.11-24-g0bcb764
==> macOS
15.1.1
==> SIP
Enabled
==> Homebrew Cask Staging Location
/opt/homebrew/Caskroom
==> Homebrew Cask Taps:
/opt/homebrew/Library/Taps/homebrew/homebrew-cask (7263 casks)
Your system is ready to brew.

Verification

  • My "brew doctor output" above says Your system is ready to brew. and am still able to reproduce my issue.
  • I ran brew update twice and am still able to reproduce my issue.
  • This issue's title and/or description do not reference a single formula e.g. brew install wget. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.

brew config output

HOMEBREW_VERSION: 4.4.11-24-g0bcb764
ORIGIN: https://github.com/Homebrew/brew
HEAD: 0bcb7648ce209631a1e483c1fdff50842584e209
Last commit: 8 hours ago
Branch: master
Core tap JSON: 12 Dec 03:20 UTC
Core cask tap JSON: 12 Dec 03:20 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_DISPLAY: /private/tmp/com.apple.launchd.00qBss0aq9/org.xquartz:0
HOMEBREW_EDITOR: /usr/local/bin/bbedit --new-window --wait --resume --
HOMEBREW_MAKE_JOBS: 8
HOMEBREW_SORBET_RUNTIME: set
Homebrew Ruby: 3.3.6 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/bin/ruby
CPU: octa-core 64-bit arm_blizzard_avalanche
Clang: 16.0.0 build 1600
Git: 2.47.1 => /opt/homebrew/bin/git
Curl: 8.7.1 => /usr/bin/curl
macOS: 15.1.1-arm64
CLT: 16.1.0.0.1.1729049160
Xcode: 16.1
Rosetta 2: false

What were you trying to do (and why)?

When running brew info on a cask, whether installed or not, most of the standard brew info output is displayed, but it generates an error: "Error: undefined method `analytics?' for an instance of Homebrew::CLI::Args".

What happened (include all command output)?

Sample output of brew info --verbose:

~$ brew info vlc --verbose
==> vlc: 3.0.21 (auto_updates)
https://www.videolan.org/vlc/
Installed
/opt/homebrew/Caskroom/vlc/3.0.17.3 (129.8MB)
From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/v/vlc.rb
==> Name
VLC media player
==> Description
Multimedia player
==> Artifacts
VLC.app (App)
/opt/homebrew/Caskroom/vlc/3.0.21/vlc.wrapper.sh -> vlc (Binary)
Error: undefined method `analytics?' for an instance of Homebrew::CLI::Args
/opt/homebrew/Library/Homebrew/utils/analytics.rb:248:in `output_analytics'
/opt/homebrew/Library/Homebrew/utils/analytics.rb:342:in `cask_output'
/opt/homebrew/Library/Homebrew/cask/info.rb:39:in `info'
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11690/lib/types/private/methods/call_validation.rb:278:in `bind_call'
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11690/lib/types/private/methods/call_validation.rb:278:in `validate_call'
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11690/lib/types/private/methods/_methods.rb:277:in `block in _on_method_added'
/opt/homebrew/Library/Homebrew/cmd/info.rb:385:in `info_cask'
/opt/homebrew/Library/Homebrew/cmd/info.rb:164:in `block in print_info'
/opt/homebrew/Library/Homebrew/cmd/info.rb:157:in `each'
/opt/homebrew/Library/Homebrew/cmd/info.rb:157:in `each_with_index'
/opt/homebrew/Library/Homebrew/cmd/info.rb:157:in `print_info'
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11690/lib/types/private/methods/call_validation.rb:278:in `bind_call'
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11690/lib/types/private/methods/call_validation.rb:278:in `validate_call'
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11690/lib/types/private/methods/_methods.rb:277:in `block in _on_method_added'
/opt/homebrew/Library/Homebrew/cmd/info.rb:110:in `run'
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11690/lib/types/private/methods/call_validation.rb:278:in `bind_call'
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11690/lib/types/private/methods/call_validation.rb:278:in `validate_call'
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11690/lib/types/private/methods/_methods.rb:277:in `block in _on_method_added'
/opt/homebrew/Library/Homebrew/brew.rb:94:in `<main>'
Please report this issue:
  https://docs.brew.sh/Troubleshooting

What did you expect to happen?

brew info should not generate an error (and should presumably show the cask analytics).

Step-by-step reproduction instructions (by running brew commands)

Run brew info on any cask.

I originally noticed the error when running brew info miniforge (which I do not currently have installed).

To verify this was not an issue with a particular cask I ran:

brew ls --cask -1 | xargs -I {} brew info {}

And to verify it did not affect formulae I ran:

brew ls --formula -1 | xargs -I {} brew info {}

It is theoretically possible that for some reason this only affects the 45 casks I have installed but that seems unlikely.

@ideabucket ideabucket added the bug Reproducible Homebrew/brew bug label Dec 12, 2024
@ideabucket
Copy link
Author

(Apologies if this should have been filed against homebrew-cask. If so let me know and I'll refile it there.)

@RJHsiao
Copy link

RJHsiao commented Dec 12, 2024

Same issue here that I also got it at almost same time.
BTW, this issue can also reproduced on my MacBook Pro M3 with macOS 15.2 and Xcode 16.2 that I just upgrade right now.

@apainintheneck
Copy link
Contributor

@dduugg It looks at a glance like this could be related to #18847.

@apainintheneck
Copy link
Contributor

It looks like there was an instance of Homebrew::CLI::Args that got initialized outside of the normal CLI arg parsing process that got missed in the above mentioned PR.

sig { params(cask: Cask).void }
def self.info(cask)
puts get_info(cask)
require "utils/analytics"
::Utils::Analytics.cask_output(cask, args: Homebrew::CLI::Args.new)
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Reproducible Homebrew/brew bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants