Today I’d like to announce Homebrew 2.0.0. The most significant changes since 1.9.0 are official support for Linux and Windows 10 (with Windows Subsystem for Linux),
brew cleanup running automatically, no more options in Homebrew/homebrew-core, and removal of support for OS X Mountain Lion (10.8) and older.
Major changes and deprecations since 1.9.0:
- Homebrew officially supports Linux and Windows 10 with Windows Subsystem for Linux (WSL). “Homebrew on Linux” is called “Linuxbrew”. You can install it in your home directory, so it does not require
sudo, and use it to install software that your host distribution’s package manager does not provide. Linuxbrew uses its own repository for formulae: Linuxbrew/homebrew-core
brew cleanupis run periodically (every 30 days) and triggers for individual formula cleanup on reinstall, install or upgrade. You can opt-out of this behaviour by setting the
HOMEBREW_NO_INSTALL_CLEANUPvariable. This addresses a long-standing complaint where users were surprised by how much disk space Homebrew used if they did not run
- Homebrew does not run on OS X Mountain Lion (10.8) and below. For 10.4 - 10.6 support, see Tigerbrew. This has allowed us to remove large amounts of legacy code.
- Homebrew does not migrate old, pre-1.0.0 installations from the Homebrew/legacy-homebrew (formerly Homebrew/homebrew repository. This has allowed us to delete legacy code that dealt with migrations from old versions.
- Homebrew does not have any formulae with options in Homebrew/homebrew-core. Options will still be supported and encouraged by third-party taps. This change allows us to better focus on delivering binary packages rather than options. Formulae with options had to be built from source, could not be tested on our CI system and provided a disproportionate support burden on our volunteer maintainers.
Other changes since 1.9.0 I’d like to highlight are the following:
- Homebrew uses a proper option parser to generate the
--help. Also, Homebrew no longer silently ignores invalid options to formulae or commands.. This change will provide better feedback to users and allow making our argument handling more simple and robust.
- Homebrew’s portable Ruby is now built on OS X Mavericks (10.9) for improved performance.
brew installdoes not try to
linkformulae that already have a cask with the same name installed. This change avoids link errors in these cases.
- Analytics data is now available for Cask installs on formulae.brew.sh.
Also, if you’ve not tuned in since 1.0.0, here are the major changes since then:
- Rubocop-supporting editors (e.g. VS Code, Atom) can get inline
brew auditinformation when editing formulae in taps. This improves the contribution experience.
brew tap-newcommand is available for creating a new tap with a
READMEand preconfigured Azure Pipelines configuration (which seems to provide the most reliable and performant macOS CI for OSS at the time of writing). This eases the creation of taps (third-party repositories).
brew update-resetresets all repositories and taps to their upstream versions. This is useful when debugging
brew linkstate is preserved after
brew upgrade(including for keg-only formulae) but unfortunately not the
brew unlinkstate due to a lack of state. This should allow many keg-only formulae to be used as if they are normal formulae.
- Homebrew filters all user environment variables. This reduces errors when formulae are built from source and allows the removal of many workarounds for niche issues.
brew postgresql-upgrade-databaseupgrades PostgreSQL database data between major versions. This simplifies upgrades between PostgreSQL versions which previously required a semi-manual process and old version of PostgreSQL to be kept around.
pythonformula was upgraded to Python 3.x and
python@2formula was added for installing Python 2.7. We initially did not comply with PEP 394 and this was a mistake. We made
brew install pythonand
brew install python@2PEP 394 compliant and will not change this again until PEP 394 has changed. This allows us to migrate more of our ecosystem to Python 3.
- We deprecated and archived all the Homebrew organisation taps and created new and versioned formulae in Homebrew/homebrew-core. We encourage more niche formulae and formula options to be supported in taps outside the Homebrew organisation. This allows us to focus on providing high-quality formulae that work consistently rather than a long-tail of broken, unsupported, ignored formulae.
- Homebrew Formulae is a site providing formulae data, anonymous aggregate analytics data and a JSON API querying these. This allows you to quickly query Homebrew information without access to macOS or Homebrew.
- In July 2018 a security researcher identified a GitHub personal access token leak from Homebrew’s Jenkins. Within a few hours the credentials had been revoked and sanitised. No packages were compromised and no action was required by users due to this incident. We are currently attempting to migrate away from Jenkins to a suitable hosted CI provider.
- When a bottle isn’t available for your version of macOS we will use a bottle from an older version instead. This will make life much more pleasant on new macOS releases before our bottling has completed (or when formulae fail to build).
brew upgradeautomatically reinstalls or upgrades formulae with broken linkage. This avoids broken formulae when building from source or using optional behaviour after upgrades.
brew infodisplays analytics data. This is the way that Homebrew maintainers query analytics data so we are using the same data as the community.. This will hopefully ease concerns about our collection of analytics data.
- Homebrew Cask’s downloads are quarantined. This provides the same level of security when downloading these tools manually.
- Homebrew/homebrew-core requires all formulae to be open source by the OSI definition. This allows you to be confident that any
brew install(although not
brew cask install) from Homebrew/homebrew-core is open source software.
brew link --forcewill not link software already provided by macOS but instead output the instructions on how to do so. This avoids strange compilation errors and encourages users to use the system mechanisms for adjusting their
- Many Homebrew maintainers will be attending FOSDEM 2019 (say hello!) and meeting afterwards on 4th February to discuss the future governance of Homebrew.
- Homebrew still accepts donations through Patreon. If you can afford it, please consider donating. If you’d rather not use Patreon (our preferred donation method), 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. Enjoy using Homebrew!