Why is latest != latest ?
From the man page (
--greedy is given then also include in the output the Casks having
auto_updates true or version
:latest. Otherwise they are skipped because there is no reliable way to know when updates are available for them.
In other words: Homebrew Cask cannot track versions of those apps. The command
brew cask outdated --greedy will suggest you every single app that could possibly need an upgrade. Whenever you use
--greedy, you basically tell Homebrew to assume that all those apps are outdated (i. e., their
latest is not equal to your
If you have a good idea how to improve the (less than perfect) UX here, you’re welcome to file an issue or a PR on Homebrew/brew.
I’m not even quite sure that I understand why outdated would be necessary.
It’s a bit like on the Mac App Store: maybe you’re happy with just clicking Update all and then moving on. Or you may want more control over the individual upgrades so you decide to look at the individual apps on the Updates tab. In a nutshell, running
brew cask outdated is a little like looking at the Updates tab of the Mac App Store.