Homebrew’s Anonymous Aggregate User Behaviour Analytics

Why?

Homebrew is provided free of charge and run entirely by volunteers in their spare time. As a result, we do not have the resources to do detailed user studies of Homebrew users to decide on how best to design future features and prioritise current work. Anonymous aggregate user analytics allow us to prioritise fixes and features based on how, where and when people use Homebrew. For example:

if a formulae is widely used and is failing often it will enable us to prioritise fixing that formula over others.

collecting the OS version allows us to decide what versions of OS X to prioritise and support and identify build failures that occur only on single versions.

a screenview hit type with the official Homebrew command you have run (with arguments stripped) e.g. brew list (not brew list foo or any external commands except bundle , cask and services )

an event hit type with the install event category, the Homebrew formula from a non-private GitHub tap you have requested to install and any used options e.g. wget --with-pcre as the action and an event label e.g. Mac OS X 10.11, non-/usr/local, CI to indicate the OS version, non-standard installation location and invocation as part of CI. This allows us to identify formulae that need fixed and where more easily.

an event hit type with the BuildError event category, the Homebrew formula that failed to install e.g. wget as the action and an event label e.g. Mac OS X 10.11

an exception hit type with the exception event category, exception description of the exception name e.g. FormulaUnavailableError and whether the exception was fatal e.g. 1

You can also view all the information that is sent by Homebrew’s analytics by setting HOMEBREW_ANALYTICS_DEBUG=1 in your environment. Please note this will also stop any analytics being sent.

It is impossible for the Homebrew developers to match any particular event to any particular user, even if we had access to the Homebrew analytics user ID (which we do not). An example of the most user-specific information we can see from Google Analytics:

As far as we can tell it would be impossible Google to match the randomly generated Homebrew-only analytics user ID to any other Google Analytics user ID. If Google turned evil the only thing they could do would be to lie about anonymising IP addresses and attempt to match users based on IP addresses.

When/Where?

Homebrew’s analytics are sent throughout Homebrew’s execution to Google Analytics over HTTPS.

Who?

Homebrew’s analytics are accessible to Homebrew’s current maintainers. Contact @mikemcquaid if you are a maintainer and need access.

Opting-out

If after everything you’ve read you still wish to opt-out of Homebrew’s analytics you may set HOMEBREW_NO_ANALYTICS=1 in your environment which will prevent analytics from ever being sent when it is set.