Homebrew / homebrew-bundle

📦 Bundler for non-Ruby dependencies from Homebrew, Homebrew Cask and the Mac App Store.
MIT License
5.33k stars 285 forks source link

More meaningful `brew bundle check` outputs #320

Closed feigaoxyz closed 6 years ago

feigaoxyz commented 6 years ago

When I run brew bundle check --verbose, the output just says something failed without any detailed information.

$ brew bundle check --verbose
brew bundle can't satisfy your Brewfile's dependencies.
Satisfy missing dependencies with `brew bundle install`.
Kernel.exit
Error: Kernel.exit

This even happens to newly dumped Brewfile.

⋊> brew bundle dump --verbose
⋊> brew bundle check --verbose
brew bundle can't satisfy your Brewfile's dependencies.
Satisfy missing dependencies with `brew bundle install`.
Kernel.exit
Error: Kernel.exit

Anyone has ideas help to track where check goes wrong?

p.s. I have tried brew bundle install and brew bundle cleanup, both return success. Yet check still fails.

MikeMcQuaid commented 6 years ago

What's the output of your brew bundle install and the contents of your Brewfile?

feigaoxyz commented 6 years ago

My Brewfile with some items skipped to save space:

tap "homebrew/core"
tap "homebrew/bundle"
tap "homebrew/services"
tap "caskroom/fonts"
tap "caskroom/versions"
tap "caskroom/cask"
brew "aria2"
...
brew "zsh"
cask "alfred"
cask "appcleaner"
...
cask "caskroom/versions/iterm2-nightly"
cask "caskroom/versions/java8"
mas "Amphetamine", id: 937984704
mas "Bear", id: 1091189122
...
mas "WeChat", id: 836500024
mas "Xcode", id: 497799835

And my brew bundle install output

Using homebrew/core
Using homebrew/bundle
Using homebrew/services
Using caskroom/fonts
Using caskroom/versions
Using caskroom/cask
Using aria2
Using brew-cask-completion
Using coreutils
...
Using visual-studio-code
Using vmware-fusion
Using whatsapp
Using caskroom/fonts/font-fira-code
Using caskroom/fonts/font-source-code-pro
Using caskroom/fonts/font-source-code-pro-for-powerline
Using caskroom/versions/iterm2-nightly
Using caskroom/versions/java8
Installing Amphetamine
Installing Bear
...
Installing WeChat
Installing Xcode
Homebrew Bundle complete! 115 Brewfile dependencies now installed.

With exit status code 0 marking its success.

⋊> echo $status   # as i am using fish shell
0
MikeMcQuaid commented 6 years ago

Please provide the full output or I cannot help you debug this.

feigaoxyz commented 6 years ago

> cat Brewfile
tap "homebrew/core"
tap "homebrew/bundle"
tap "homebrew/services"
tap "caskroom/fonts"
tap "caskroom/versions"
tap "caskroom/cask"
brew "aria2"
brew "brew-cask-completion"
brew "coreutils"
brew "gettext"
brew "gnu-sed"
brew "tmux"
brew "byobu"
brew "direnv"
brew "exa"
brew "fish"
brew "fzf"
brew "gawk"
brew "geckodriver"
brew "git"
brew "graphviz"
brew "haskell-stack"
brew "httpie"
brew "hub"
brew "icdiff"
brew "loc"
brew "mackup"
brew "mas"
brew "ncdu"
brew "neovim"
brew "node"
brew "pipenv"
brew "pkg-config"
brew "pyenv"
brew "pyenv-virtualenv"
brew "pyenv-which-ext"
brew "python"
brew "rabbitmq"
brew "redis"
brew "ripgrep"
brew "smartmontools"
brew "tig"
brew "tldr"
brew "trash"
brew "tree"
brew "wget"
brew "you-get"
brew "zsh"
cask "alfred"
cask "appcleaner"
cask "bartender"
cask "boom-3d"
cask "cheatsheet"
cask "contexts"
cask "daisydisk"
cask "devdocs"
cask "dropbox"
cask "eddie"
cask "emacs"
cask "fantastical"
cask "firefox"
cask "fliqlo"
cask "freefilesync"
cask "ganttproject"
cask "google-chrome"
cask "google-earth-pro"
cask "grammarly"
cask "handbrake"
cask "hyper"
cask "hyperswitch"
cask "iina"
cask "istat-menus"
cask "keka"
cask "keyboard-maestro"
cask "launchcontrol"
cask "marked"
cask "mendeley-desktop"
cask "microsoft-office"
cask "omniplan"
cask "papers"
cask "pdfexpert"
cask "pdfpen"
cask "pycharm"
cask "qlmarkdown"
cask "slack"
cask "spotifree"
cask "spotify"
cask "sublime-text"
cask "suspicious-package"
cask "telegram-desktop"
cask "tripmode"
cask "vimr"
cask "visual-studio-code"
cask "vmware-fusion"
cask "whatsapp"
cask "caskroom/fonts/font-fira-code"
cask "caskroom/fonts/font-source-code-pro"
cask "caskroom/fonts/font-source-code-pro-for-powerline"
cask "caskroom/versions/iterm2-nightly"
cask "caskroom/versions/java8"
mas "Amphetamine", id: 937984704
mas "Bear", id: 1091189122
mas "Better Rename 9", id: 414209656
mas "Cleaner for Xcode", id: 1296084683
mas "CotEditor", id: 1024640650
mas "Day One", id: 1055511498
mas "iText", id: 1314980676
mas "iThoughtsX", id: 720669838
mas "Magnet", id: 441258766
mas "PopClip", id: 445189367
mas "Reeder", id: 880001334
mas "Todoist", id: 585829637
mas "Tweetbot", id: 557168941
mas "WeChat", id: 836500024
mas "Xcode", id: 497799835

> brew bundle install
Using homebrew/core
Using homebrew/bundle
Using homebrew/services
Using caskroom/fonts
Using caskroom/versions
Using caskroom/cask
Using aria2
Using brew-cask-completion
Using coreutils
Using gettext
Using gnu-sed
Using tmux
Using byobu
Using direnv
Using exa
Using fish
Using fzf
Using gawk
Using geckodriver
Using git
Using graphviz
Using haskell-stack
Using httpie
Using hub
Using icdiff
Using loc
Using mackup
Using mas
Using ncdu
Using neovim
Using node
Using pipenv
Using pkg-config
Using pyenv
Using pyenv-virtualenv
Using pyenv-which-ext
Using python
Using rabbitmq
Using redis
Using ripgrep
Installing smartmontools
Using tig
Using tldr
Using trash
Using tree
Using wget
Using you-get
Using zsh
Using alfred
Using appcleaner
Using bartender
Using boom-3d
Using cheatsheet
Using contexts
Using daisydisk
Using devdocs
Using dropbox
Using eddie
Using emacs
Using fantastical
Using firefox
Using fliqlo
Using freefilesync
Using ganttproject
Using google-chrome
Using google-earth-pro
Using grammarly
Using handbrake
Using hyper
Using hyperswitch
Using iina
Using istat-menus
Using keka
Using keyboard-maestro
Using launchcontrol
Using marked
Using mendeley-desktop
Using microsoft-office
Using omniplan
Using papers
Using pdfexpert
Using pdfpen
Using pycharm
Using qlmarkdown
Using slack
Using spotifree
Using spotify
Using sublime-text
Using suspicious-package
Using telegram-desktop
Using tripmode
Using vimr
Using visual-studio-code
Using vmware-fusion
Using whatsapp
Using caskroom/fonts/font-fira-code
Using caskroom/fonts/font-source-code-pro
Using caskroom/fonts/font-source-code-pro-for-powerline
Using caskroom/versions/iterm2-nightly
Using caskroom/versions/java8
Installing Amphetamine
Installing Bear
Installing Better Rename 9
Installing Cleaner for Xcode
Installing CotEditor
Installing Day One
Installing iText
Installing iThoughtsX
Installing Magnet
Installing PopClip
Installing Reeder
Installing Todoist
Installing Tweetbot
Installing WeChat
Installing Xcode
Homebrew Bundle complete! 115 Brewfile dependencies now installed.

> brew bundle check --verbose
brew bundle can't satisfy your Brewfile's dependencies.
Satisfy missing dependencies with `brew bundle install`.
Kernel.exit
Error: Kernel.exit
MikeMcQuaid commented 6 years ago

Installing smartmontools

This installed or upgraded a formula.

MikeMcQuaid commented 6 years ago

Sorry, I misread that you ran check immediately afterwards.

colindean commented 6 years ago

I took a stab on this and got a start in this branch: https://github.com/Homebrew/homebrew-bundle/compare/master...colindean:colindean/output-check-results

TODO:

  1. Make tests pass.
  2. Remove now unused methods.
cdenneen commented 6 years ago

@MikeMcQuaid same issue here (clean dump, check with and without no-upgrade):

~ » rm testme
~ » rm testme
~ » brew bundle dump --file=testme
~ » brew bundle check --file=testme
brew bundle can't satisfy your Brewfile's dependencies.
Satisfy missing dependencies with `brew bundle install`.
~ » brew bundle install --file=testme
Using homebrew/core
Using homebrew/bundle
Using homebrew/services
Using caskroom/versions
Using caskroom/cask
Using python3
Using awscli
Using bfg
Using binutils
Using boost
Using brew-cask-completion
Using cmake
Using coreutils
Using ctags
Using curl
Using dateutils
Using ddate
Using filebeat
Using fzf
Using ghi
Using git
Using go
Using graphviz
Using hub
Using jq
Using kubernetes-cli
Using kops
Using kubernetes-helm
Using macvim
Using mas
Using nmap
Using node
Using postgresql
Using ruby-build
Using rbenv
Using reattach-to-user-namespace
Using telnet
Using the_silver_searcher
Using tmux
Using vim
Using watch
Using yaml-cpp
Using zsh
Using zsh-autosuggestions
Using zsh-completions
Using zsh-git-prompt
Using zsh-history-substring-search
Using zsh-lovers
Using zsh-navigation-tools
Using zsh-syntax-highlighting
Using 1password
Using amazon-chime
Using amazon-drive
Using atom
Using caffeine
Using clipy
Using crashplan
Using cyberduck
Using dropbox
Using dropbox-encore
Using evernote
Using firefox
Using gitter
Using google-backup-and-sync
Using google-chrome
Using google-hangouts
Using macdown
Using macvim
Using megasync
Using menubar-stats
Using microsoft-office
Using microsoft-teams
Using minikube
Using onedrive
Using safari-tab-switching
Using sizeup
Using skitch
Using skype
Using skype-for-business
Using slack
Using spectacle
Using spotify
Using sublime-text
Using teamviewer
Using vagrant
Using vagrant-manager
Using virtualbox
Using visual-studio-code
Using visualvm
Using vlc
Using vyprvpn
Using wireshark
Using zoomus
Using zoomus-outlook-plugin
Using caskroom/versions/docker-edge
Using caskroom/versions/microsoft-remote-desktop-beta
Installing Dr. Antivirus
Installing DrCleaner
Installing MemoryKeeper
Installing Microsoft Remote Desktop
Installing Remote Desktop
Installing Spark
Installing TweetDeck
Installing Twitter
Installing Winmail DAT Exporter
Installing Winmail DAT File Viewer
Installing Winmail Reader Lite
Installing Wunderlist
Installing Xcode
Homebrew Bundle complete! 109 Brewfile dependencies now installed.
~ » brew bundle check --file=testme
brew bundle can't satisfy your Brewfile's dependencies.
Satisfy missing dependencies with `brew bundle install`.
~ »
~ » brew bundle check --file=testme --no-upgrade
brew bundle can't satisfy your Brewfile's dependencies.
Satisfy missing dependencies with `brew bundle install`.
~ » brew bundle check --file=testme
brew bundle can't satisfy your Brewfile's dependencies.
Satisfy missing dependencies with `brew bundle install`.
~ » brew bundle check --file=testme --no-upgrade --verbose
brew bundle can't satisfy your Brewfile's dependencies.
Satisfy missing dependencies with `brew bundle install`.
Kernel.exit
Error: Kernel.exit
~ »

I think for some reason the mas is showing up as Installing vs Using?

MikeMcQuaid commented 6 years ago

@feigaoxyz @cdenneen Your issues will be fixed by https://github.com/Homebrew/homebrew-bundle/pull/328.

cdenneen commented 6 years ago

@MikeMcQuaid Thanks... so now the mas parts are fixed. I know that @feigaoxyz was looking for some more meaningful verbose output when updates were found during check?

~ » brew bundle check --file=testme --no-upgrade --verbose
The Brewfile's dependencies are satisfied.
~ » brew bundle check --file=testme --verbose
brew bundle can't satisfy your Brewfile's dependencies.
Satisfy missing dependencies with `brew bundle install`.
Kernel.exit
Error: Kernel.exit

Once I did the updates both worked without error... maybe the check besides can't satisfy can list the ones that are out of date? Also is Kernel.exit necessary?

MikeMcQuaid commented 6 years ago

Once I did the updates both worked without error... maybe the check besides can't satisfy can list the ones that are out of date?

It can't by default because it'll be dramatically slower. We'll accept a PR to add this functionality, though.

colindean commented 6 years ago

Also is Kernel.exit necessary?

It could be improved. It's being shown because of the --verbose.

stale[bot] commented 6 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

MikeMcQuaid commented 6 years ago

Shush for now bot.

stale[bot] commented 6 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

MikeMcQuaid commented 6 years ago

In progress in https://github.com/Homebrew/homebrew-bundle/pull/327