logoalt Hacker News

Show HN: Homebrew 6.0.0

302 pointsby mikemcquaidtoday at 1:24 PM71 commentsview on HN

Today, I’m proud to announce Homebrew 6.0.0. The most significant changes since 5.1.0 are a new tap trust security mechanism, the new faster, smaller, default internal Homebrew JSON API, sandboxing on Linux, better defaults informed by our user survey, many brew bundle improvements, improved performance and initial support for macOS 27 (Golden Gate).

Happy to discuss any questions here!


Comments

hk__2today at 5:49 PM

Hi Mike, I’m @bfontaine on GitHub (I helped maintain Homebrew in ~2014-2016). I’m always impressed at your longevity as a maintainer; it’s been like what, 16+ years you’ve been maintaining Homebrew and you’re still here, still shipping new features! Thank you for everything!

show 1 reply
PufPufPuftoday at 5:43 PM

I have switched my full OS-level dev env to https://mise.jdx.dev/ from Homebrew+pipx+npm, initially as an experiment but found out that it actually works amazingly well. Many things get installed directly from GitHub releases or a corresponding package manager (uv, pnpm, go get ...), zero glue code to "repackage", zero version lag. You can install any arbitrary version of a package, even multiple ones at once, and dynamically adjust which ones are active per working folder or explicitly through environments.

Funnily Mise does not support dependencies, and I was quite surprised that it mostly doesn't matter, as either pnpm/uv handles that, or it's a static binary that just works. In the past, had the unfortunate experience of packaging a Python application for Homebrew (the ridiculous process involved importing around 50 dependencies as "resources", building every single one from source or manually checking if it's already on Homebrew, declaring build toolchains for 5 different programming languages as dependencies, waiting over an hour for CI to finish on every update, then an upstream update introduced a "build-time dependency loop" and the project suddenly became unpackable for Homebrew) so I totally get why Mise took the "easy way out" and just relies on language-specific package managers directly.

Only thing from my Brewfile that I couldn't replace was the Docker CLI (needed to interact with Colima). And I still use Homebrew for casks. I encourage others to experiment with their dev setups, there are some amazing new tools out there.

show 5 replies
vitorsrtoday at 5:48 PM

Thanks for all the hard work.

We are not many [1], but Homebrew has been a great way to quickly bootstrap an environment in immutable Linux distributions.

Note that certain operating systems such as Universal Blue's Bazzite (1.28%), Bluefin (0.49%) and Aurora (0.28%) default to bundling Homebrew [2].

[1] https://formulae.brew.sh/analytics/os-version/365d/

[2] https://github.com/ublue-os/brew

show 2 replies
sebiwtoday at 6:32 PM

Shoutout to all the people making Homebrew possible! You rock! Everyone should consider donating to the project: https://opencollective.com/homebrew

broxittoday at 5:30 PM

Thanks for the update. Is there any chance we can get some kind of cooldown mechanism in Homebrew?

The only people I want to trust to quickly ship new code to my machine are Apple and my browser (which handles more untrusted input than anything else).

For everything else (vscode and its extensions, npm, homebrew, and all the apps that self-update), I prefer to err on the side of waiting a few days.

Some exceptional 0days might warrant a cooldown bypass, but even in its current form users are vulnerable to 0days until they run brew upgrade.

show 5 replies
klodolphtoday at 6:23 PM

I recently switched back to Homebrew from Nix, and the three big factors in that switch are:

- Brew seems to have better support for the packages it has, compared to Nix where it seems a percentage of packages are not as well maintained,

- Better Mac support; some Nix packages have features disabled on macOS, I think just because the maintainers of this packages don’t have a Mac for testing,

- Better UX.

Obviously I miss the reproducibility of Nix environments and the ability to easily create my own flakes with specific packages, but on the balance, Brew has won me back. (I still like Nix, and FWIW we use Nix at work.)

show 1 reply
philistinetoday at 6:15 PM

The deprecation of Intel support is agressive! Every Mac enthusiast I know who uses a Mac as a server uses their old machines, which are pretty much all Intel. We'll lose support from you guys a year before Apple!

I know supporting Intel is an ordeal and a choice, but I'm firmly on the camp that Homebrew should find a way to maintain Intel support as long as possible.

show 2 replies
chuckreynoldstoday at 6:33 PM

Brew is so good... just sponsored on github. Thanks for the hard work!

shawkinawtoday at 6:23 PM

Could really use a good rollback mechanism, is there one in the works perchance? I have broken my home server multiple times with bad InfluxDB and Grafana updates, and rollback was a huge pain. I’ve now disabled cleanup so old versions of packages are kept, but there must be a better way.

jamesgilltoday at 6:20 PM

I know this runs on Linux too. As a Linux user, I'm unclear on why I might use this instead of apt or dnf, for example. Any Linux users out there have experience with both Homebrew and one of these?

show 1 reply
swiftcodertoday at 5:54 PM

Congrats on the performance improvements. That's the most pleasant `brew upgrade` session I've had in years

dlandistoday at 6:15 PM

Is it true that contributors to homebrew need to know how to invert a binary tree?

7839284023today at 4:15 PM

Awesome! Thank you for the update.

I noticed that homebrew updated _all_ my casks when running 'brew upgrade' (even those with "auto_updates: true" in their Cask JSON API).

Is this intended, new default behavior? This did not use to happen...

show 2 replies
ansonhoyttoday at 5:13 PM

Is there a way to `brew trust` inside my Brewfile? That'd be nice for the handful of formulas I install from github repos via `brew bundle --global`.

show 2 replies
threecheesetoday at 6:09 PM

I assume this trust issue is related to the not-infrequent MacOS notifications asking for permission to run Ruby in the background or when the machine starts. It says nothing about Homebrew though.

show 1 reply
pknerdtoday at 5:58 PM

Thanks for producing such an amazing piece of software. Most of my Mac installations are based on Homebrew, but I have to rely on version management tools like Pyenv or nvm for Python and Node. Wish there was some standard 'Homebrew' way to install multiple versions of node, php and Python

show 2 replies
0xbadcafebeetoday at 5:37 PM

Personally I stopped using Homebrew after I got screwed too many times on mandatory upgrades that I couldn't pin. I use a combination of Mise and MacPorts now so I don't get any more surprise breakage and forced obsolescence. Plus Mise allows me to upgrade to any new version, whereas with Homebrew you have to wait for whenever the tap feels like upgrading (llama.cpp tap skips every 10 releases)

show 1 reply
swingboytoday at 5:54 PM

Interesting that the `brew-rs` experiment has concluded and didn't find much of a performance increase. I suppose that is expected though with a lot of the bottleneck being network IO?

joshuattoday at 5:24 PM

Is the eventual goal to move most formula/cask behavior into declarative install steps and treat Ruby as an escape hatch?

show 1 reply
paulddrapertoday at 6:28 PM

I tried hosting a homebrew tap, after hosting apt and yum repositories.

That was when I realized Homebrew is much, much harder.

Your server needs to implement the git protocol. You can't just stick it on some server with a CDN in front of it, you need to run and fortify a git server.

Strange choices IMHO.

let_rectoday at 5:59 PM

Does Homebrew have good support for exact (and older) versions of packages now?

show 3 replies
ch-bastoday at 6:01 PM

Thanks for the hardwork.

riffictoday at 6:25 PM

happy Bluefin Linux user and can vouch that the Homebrew experience in Linux is great as well. Really excited for where things are going.

dioniantoday at 6:09 PM

homebrew is so nice, thank you for all your effort

reactordevtoday at 5:31 PM

Hell yeah, tap trust!!!

phplovesongtoday at 6:16 PM

Does homebrew still do that insane thing when you want to upgrade a single package it tell you "hold my beer" and starts installing postgres and some obscure python version?

azuanrbtoday at 5:56 PM

[dead]

yurlyCLOCLOCKtoday at 5:59 PM

[dead]