`brew upgrade` now upgrades casks but I don't want that

I have a script that manages multiple package/software managers (mainly macports and homebrew), and I’d like to do one thing only in each command in the script. Starting from a recent version the command brew upgrade will upgrade both formulae and casks. I don’t want that since 1) it messes with my launchpad layout and 2) it doesnt upgrade anything with auto_update and --greedy will reinstall everything with version latest. I have a block in my script that manages just casks.
So (or maybe TL;DR), is it possible to make brew upgrade upgrade formulae only?

You can run brew upgrade $(brew ls)

Thanks, seems to be a good workaround. Would be better if I could suppress the “already installed” warnings

I had the same issue, I pretty much never want to upgrade both casks and formulae in the same step.

To avoid the “already installed” warnings and extra overhead, calling the ‘outdated’ command with either the ‘–formula’ or ‘–cask’ flag seems to do the trick. E.g. to upgrade only outdated brews and skip casks:

brew upgrade $(brew outdated --formula -q)

This is a nice work-around, but a preference or explicit opt-in switch would be even better. I’ll likely forget this work-around, end up upgrading my casks (again) by mistake, have to hunt for the info, etc.

I don’t think we’re alone in this situation.

This is compounded by the fact that most of the casks we’re likely to auto-upgrade with this system will trigger a quarantine, and a good portion of these are not really upgrades, since they may have already been auto-upgraded internally by each app – unless brew now better detects the actual version of apps.

I don’t want to sound ungrateful, because I am really thankful that brew cask is getting so much more mature, but stealth auto-upgrade of casks sounds like an anti-feature.

So I’m not alone here… maybe we should open an issue on GitHub?