Today, I’d like to announce Homebrew 4.1.0. The most significant changes since 4.0.0 are significant improvements to the security/reliability/performance/usability of Homebrew 4.0.0’s new JSON API, the completion of the migration of analytics from Google Analytics in the US to InfluxDB in the EU and groundwork for later macOS Sonoma (14) support.
Major changes and deprecations since 4.0.0:
brew
downloads of formula/cask APIs use a signed API endpoint with client signature verification.- We’ve made many improvements around the new 4.0.0 feature of using JSON files downloaded from formulae.brew.sh for package installation rather than local homebrew/core and homebrew/cask taps.
- If you had previously set
HOMEBREW_NO_AUTO_UPDATE
,HOMEBREW_NO_INSTALL_FROM_API
orHOMEBREW_AUTO_UPDATE_SECS
to work around bugs or annoyances: please consider unsetting these and tweaking the values based on the new behaviour. Under some circumstances, you may see a one-time message nudging you do to this.
- If you had previously set
brew doctor
warns if Homebrew/homebrew-core or Homebrew/homebrew-cask seem to be tapped unnecessarily so you canbrew untap
them to save time and disk space.- formulae.brew.sh provides new analytics for Homebrew Developer Configuration, OS/Architecture/CI, Homebrew Prefixes and Homebrew Versions. This is based on existing data that was already gathered.
- We destroyed (and did not migrate/back up) all of Homebrew’s Google Analytics data on 2023-06-16 and all Google Analytics code has been removed.
- Homebrew’s analytics are only sent to our InfluxDB instance hosted in the EU.
- If you had previously set
HOMEBREW_NO_ANALYTICS
because you didn’t like Google Analytics and/or data being sent to the US: please consider unsetting this allowing analytics data to be sent to our new InfluxDB host. Again, under some circumstances, you may see a one-time message nudging you do to this.
- If you had previously set
- Homebrew’s analytics documentation is updated with the new InfluxDB, post-Google Analytics reality.
- Setting
HOMEBREW_NO_ENV_FILTERING
no longer fails but is silently a no-op. - Homebrew’s deprecated Ubuntu 16.04 Docker image is no longer being built or updated.
- Homebrew/homebrew-cask-drivers is deprecated and active casks were moved to Homebrew/homebrew-cask.
brew rbenv-sync
,brew nodenv-sync
andbrew pyenv-sync
commands will automatically sync Homebrew-installed Ruby, NodeJS and Python versions withrbenv
,nodenv
andpyenv
respectively to avoid needing to build these from source.- Homebrew has laid the groundwork for later macOS Sonoma (14) support.
- Various improvements sped up all Ruby
brew
command performance. brew fetch
ing bottles is significantly faster.brew install
with nopost_install
is significantly faster.- Various other minor release deprecations and disables.
Other changes since 4.0.0 I’d like to highlight are the following:
brew
commands will only auto-update from the API for commands that auto-updated from Git pre-4.0.0.brew update
reports new/deleted formulae/casks when installing from the API.brew update
will automatically update Homebrew/homebrew-core and Homebrew/homebrew-cask local taps for users who have run developer commands.brew install
build failures only recommend open issues rather than pull requests.brew install
will use cached bottles if the request to check if bottles are up-to-date fails.brew install
setsOPENSSL_NO_VENDOR
to use Homebrew’s relevantopenssl*
formula rather than the vendored OpenSSL from theopenssl
crate.brew install --skip-post-install
will skip post-installation steps when installing a formula.brew search
no longer searches remotely instead using Homebrew’s new JSON API.brew cleanup --quiet
omits outputting some warnings.brew deps --missing
provides the inverse output tobrew deps --installed
brew fetch
,brew --cache
,brew audit
andbrew readall
has--os
and--arch
flags to simulate different operating systems and CPU architectures.brew shellenv
accepts a shell name parameter for when auto-detection is unreliable.brew
commands auto-update less frequently for users who have run Homebrew developer commands.brew audit
verifies the correct signing of.pkg
installers.brew bump
andbrew bump-formula-pr
will update a local Homebrew/homebrew-core tap (if present) andbrew bump
andbrew bump-cask-pr
will do the same for Homebrew/homebrew-cask.HOMEBREW_NO_INSTALL_FROM_API
is set automatically for commands that need it.- A
cask_renames.json
file in taps allows casks to be renamed. - The default Linux installation location (
/home/linuxbrew/.linuxbrew
) works as expected on Fedora Silverblue and other configurations where/home
is symlinked elsewhere. - Homebrew uses (and prioritises) GitHub tokens stored by the
gh
CLI (when available). - Homebrew avoids using the macOS
texinfo
- GitHub Packages bottle manifests contain the size of the bottle.
- Homebrew will set
RUSTFLAGS
to the appropriate target CPU on installation. - Homebrew can build with GCC 13.
- Homebrew’s analytics better capture non-Debian-based distribution versions.
- Preliminary support for loading formulae/casks from subdirectories (to later “shard” Homebrew/homebrew-core and Homebrew/homebrew-cask Formula/Cask directories for performance reasons.)
- Homebrew is more vocal that building from source is unsupported.
- Various display issues have been fixed with Homebrew’s Ruby API documentation at rubydoc.brew.sh.
Finally:
- Homebrew accepts donations through GitHub Sponsors and still accepts donations through Patreon. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), check out the other ways to donate in our README.
Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.