Today I’d like to announce Homebrew 1.2.0. The most significant change since 1.1.0 is that most Homebrew taps (package repositories) in the Homebrew GitHub organisation have been deprecated and the currently buildable software moved into Homebrew/homebrew-core. This will improve the quality and availability of all their software.
Additionally, as Homebrew/homebrew-versions has been moved into Homebrew/homebrew-core Homebrew provides better, official support for different versions. You can read more about this in the dedicated versions document. Please note our goal isn’t to support all versions of all software but to provide some versions and tooling such that you can easily maintain more in your own tap (package repository).
Since 1.1.0 the following deprecations have been made:
env :userpathsin formulae
fails_with :llvmin formulae
32-bitoptions in formulae
go getusage in formulae
- formulae dependencies that need built with non-default options
- new formulae that require patches
- language module requirements (e.g.
depends_on "pygments.rb" => :ruby)
- Universal options and builds of formulae
brew tapof deprecated, official taps
brew cask updatecommand
- Various internal APIs on
While all the functionality for these deprecations will be supported for the foreseeable future in Homebrew/brew for 3rd-party usage, Homebrew/homebrew-core will be removing the use of these APIs from formulae to improve the user experience.
Since 1.1.0 some new commands are available:
brew cask outdatedshows outdated Casks
brew formulaoutputs the location of a formula
brew update-resetsimplifies cleaning up broken repositories
Some of the other changes since 1.1.0 I’d like to highlight are the following:
brew createuses GitHub metadata to populate fields when creating from a GitHub archive
--exceptflags to allow selectively running
brew searchuses a single GitHub API call for searching all Homebrew and Caskroom taps
brew installcreates symlinks in
optfor formulae aliases (such as versioned aliases)
brew updatewill symlink shell completions provided by taps
brew testsruns all cask tests (replacing
brew cask-tests) and all tests use RSpec rather than MiniTest
- New download strategies were added for handling private GitHub repositories
- We store (and report to anonymous analytics) whether a package was installed as a dependency or on request. This is returned as part of
brew info --json=v1. This is useful in differentiating between top installed packages based on user demand vs. based on large numbers of dependents. This is also used by
brew bundle dumpand
brew bundle cleanupto handle dependencies more sensibly.
- Xcode prerelease warnings have been removed
installalways output used options
brew tap-newuses our latest Travis CI recommended configuration providing zero-configuration CI for all formulae taps
brew uninstallnow refuses to uninstall a package if other packages that depend on it are still installed
- RuboCop is used for formulae
descaudits and checking the order of methods in formulae rather than requiring
brew auditbe run. This also allows these checks to be run automatically in any editor with RuboCop integration.
HOMEBREW_ENV_FILTERINGwill filter all custom user environment variables from
brew. Eventually we hope to enable this by default.
- Sensitive tokens in the environment are hidden from untrusted 3rd-party code in
brew servicesprovides better error reporting using new macOS APIs
- A new documentation site is at docs.brew.sh
- A dump of installation, installation on request and build error events is provided on this site
- Homebrew’s mailing list has been deprecated in favour of our Discourse forum
- Homebrew accepts donations through Patreon. If you can afford it, please consider donating.
- Homebrew uses HackerOne for security vulnerability disclosure
- Homebrew’s CI servers are now provided by MacStadium and DigitalOcean. Thanks to Positive Internet for years of friendship, incredible customer support and super reliable hosting.
Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!