<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://brew.sh/atom.xml" rel="self" type="application/atom+xml" /><link href="https://brew.sh/" rel="alternate" type="text/html" /><updated>2026-04-10T08:22:05+00:00</updated><id>https://brew.sh/atom.xml</id><title type="html">Homebrew</title><subtitle>The Missing Package Manager for macOS (or Linux).</subtitle><entry><title type="html">5.1.0</title><link href="https://brew.sh/2026/03/10/homebrew-5.1.0/" rel="alternate" type="text/html" title="5.1.0" /><published>2026-03-10T00:00:00+00:00</published><updated>2026-03-10T00:00:00+00:00</updated><id>https://brew.sh/2026/03/10/homebrew-5.1.0</id><content type="html" xml:base="https://brew.sh/2026/03/10/homebrew-5.1.0/"><![CDATA[<p>Homebrew 5.1.0 has been released.
Homebrew’s most significant changes since 5.0.0 are expanded <code class="language-plaintext highlighter-rouge">brew bundle</code> support, <code class="language-plaintext highlighter-rouge">brew version-install</code>, new <code class="language-plaintext highlighter-rouge">-full</code> formula handling and installer updates.</p>

<p>Major changes and deprecations since 5.0.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/21250"><code class="language-plaintext highlighter-rouge">brew bundle</code> manages Rust Cargo packages from <code class="language-plaintext highlighter-rouge">Brewfile</code>s</a>, <a href="https://github.com/Homebrew/brew/pull/21614"><code class="language-plaintext highlighter-rouge">uv</code> tools</a> and <a href="https://github.com/Homebrew/brew/pull/21097">Flatpak remotes or apps</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/21252"><code class="language-plaintext highlighter-rouge">brew bundle</code> fetches downloads in parallel before install</a>, <a href="https://github.com/Homebrew/brew/pull/21654">auto-taps formulae and casks from external taps</a>, <a href="https://github.com/Homebrew/brew/pull/21590">uses <code class="language-plaintext highlighter-rouge">mas get</code> for better fresh Apple ID handling</a>, <a href="https://github.com/Homebrew/brew/pull/21360">sets <code class="language-plaintext highlighter-rouge">HOMEBREW_INSIDE_BUNDLE</code></a> and <a href="https://github.com/Homebrew/brew/pull/21137">adds <code class="language-plaintext highlighter-rouge">--no-secrets</code> for safer environment inspection</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/21418"><code class="language-plaintext highlighter-rouge">brew version-install</code> creates, extracts and installs older formula versions in one step.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21448">Homebrew publishes an unversioned <code class="language-plaintext highlighter-rouge">Homebrew.pkg</code> installer URL</a> and <a href="https://github.com/Homebrew/brew/pull/21459">uses Portable Ruby 4.0.1 with Ruby 4.0</a>.</li>
  <li><a href="https://github.com/Homebrew/homebrew-core/pull/261303">Homebrew adds <code class="language-plaintext highlighter-rouge">ffmpeg-full</code></a>, <a href="https://github.com/Homebrew/homebrew-core/pull/263377"><code class="language-plaintext highlighter-rouge">imagemagick-full</code></a>, <a href="https://github.com/Homebrew/brew/pull/21676">automatic linking for versioned or <code class="language-plaintext highlighter-rouge">-full</code> keg-only formulae when the unversioned sibling is absent</a> and <a href="https://github.com/Homebrew/brew/pull/21471">stricter rejection of dependencies on <code class="language-plaintext highlighter-rouge">*-full</code> formulae</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/21169">Homebrew deprecates <code class="language-plaintext highlighter-rouge">Formula#needs</code> and <code class="language-plaintext highlighter-rouge">needs :openmp</code></a>, <a href="https://github.com/Homebrew/brew/pull/21181"><code class="language-plaintext highlighter-rouge">option :cxx11</code> and <code class="language-plaintext highlighter-rouge">option :universal</code></a> and <a href="https://github.com/Homebrew/brew/pull/21629">other APIs scheduled for the normal release-cycle removals</a>.</li>
</ul>

<p>Upcoming changes:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/21613#issuecomment-3946063773">Homebrew plans the Ubuntu 24.04 CI migration for 5.2.0, which is expected to raise the Linux baseline to <code class="language-plaintext highlighter-rouge">glibc</code> 2.39 and <code class="language-plaintext highlighter-rouge">libstdc++</code> 6.0.33.</a></li>
  <li><a href="https://github.com/Homebrew/actions/pull/702">Homebrew continues the <code class="language-plaintext highlighter-rouge">master</code> to <code class="language-plaintext highlighter-rouge">main</code> migration introduced in 4.6.0; some repositories stop updating <code class="language-plaintext highlighter-rouge">master</code> in 5.1.0</a> and <a href="https://github.com/Homebrew/actions/pull/704">the remaining compatibility branches are scheduled for removal in 5.2.0 in favour of <code class="language-plaintext highlighter-rouge">main</code></a>.</li>
</ul>

<p>Homebrew’s other changes since 5.0.0 worth highlighting are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/21088"><code class="language-plaintext highlighter-rouge">brew services</code> supports <code class="language-plaintext highlighter-rouge">nice</code> priorities for services.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21095"><code class="language-plaintext highlighter-rouge">brew services</code> sets <code class="language-plaintext highlighter-rouge">ThrottleInterval</code> for LaunchAgents and LaunchDaemons on macOS.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21223"><code class="language-plaintext highlighter-rouge">brew sh --ruby</code> opens a shell with Homebrew’s bundled Ruby and Bundler preconfigured.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21374"><code class="language-plaintext highlighter-rouge">brew shellenv</code> uses simpler shell detection and is easier to override when auto-detection is wrong.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21033"><code class="language-plaintext highlighter-rouge">brew lgtm</code> is recommended in the PR template before submitting changes</a> and <a href="https://github.com/Homebrew/brew/pull/21036"><code class="language-plaintext highlighter-rouge">brew lgtm --online</code> covers checks that need network access</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/21058"><code class="language-plaintext highlighter-rouge">brew --taps</code> prints Homebrew’s taps directory.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21339"><code class="language-plaintext highlighter-rouge">brew source</code> jumps straight to a formula’s source repository.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21310"><code class="language-plaintext highlighter-rouge">brew tap-info</code> exits with a failure status for unknown taps, which makes scripting more reliable.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21641"><code class="language-plaintext highlighter-rouge">brew edit</code> auto-taps Homebrew/core or Homebrew/cask when API-known formulae or casks are edited on tapless installs.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21309"><code class="language-plaintext highlighter-rouge">brew config</code> on macOS reports the detected Metal toolchain version.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21386"><code class="language-plaintext highlighter-rouge">brew info</code> marks installed and uninstalled formulae or casks more clearly.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21516"><code class="language-plaintext highlighter-rouge">brew search</code> labels deprecated and disabled formulae and casks directly in search results.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21138"><code class="language-plaintext highlighter-rouge">brew outdated</code> respects <code class="language-plaintext highlighter-rouge">HOMEBREW_UPGRADE_GREEDY_CASKS</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21616"><code class="language-plaintext highlighter-rouge">brew doctor</code> warns early when Linux <code class="language-plaintext highlighter-rouge">glibc</code> is older than the upcoming CI baseline.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21078"><code class="language-plaintext highlighter-rouge">brew uninstall</code> refuses to uninstall casks that other installed casks depend on</a> and <a href="https://github.com/Homebrew/brew/pull/21617">keeps going when one requested formula or cask fails</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/21618"><code class="language-plaintext highlighter-rouge">brew upgrade</code> and <code class="language-plaintext highlighter-rouge">brew reinstall</code> keep working through individual name-resolution failures instead of stopping early.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21510">Homebrew requires AI-assistance disclosure in PRs</a>, <a href="https://github.com/Homebrew/brew/pull/21415">documents preferred AI and LLM usage in contributions</a> and <a href="https://github.com/Homebrew/brew/pull/21504">ships a <code class="language-plaintext highlighter-rouge">CLAUDE.md</code> guide alongside <code class="language-plaintext highlighter-rouge">AGENTS.md</code></a>.</li>
  <li><a href="https://github.com/Homebrew/actions/pull/786">Homebrew GitHub Actions include <code class="language-plaintext highlighter-rouge">cache-homebrew-prefix</code> for prefix caching in CI.</a>.</li>
  <li><a href="https://github.com/Homebrew/actions/pull/787">Homebrew GitHub Actions include <code class="language-plaintext highlighter-rouge">setup-ruby</code> for Ruby setup through Homebrew in CI.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21047">Homebrew preserves <code class="language-plaintext highlighter-rouge">WSL_DISTRO_NAME</code>, which keeps CLI tools launched from WSL behaving correctly.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21183">Homebrew shows a progress bar for concurrent downloads.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21512">Homebrew audits better distinguish true self-submissions from other new-formula submissions.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21414">Homebrew allows dashes anywhere in tap names, not just after the <code class="language-plaintext highlighter-rouge">homebrew-</code> prefix.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21623">Homebrew auto-bumps resources within formulae that have explicit <code class="language-plaintext highlighter-rouge">livecheck</code> blocks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21068">Homebrew points issue reporters to GitHub Discussions sooner when issues are not the best fit</a> and <a href="https://github.com/Homebrew/brew/pull/21391">updates contributor guidance on when to open discussions, PRs and issues</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/21178">Homebrew checks SSSE3 support more clearly on Linux <code class="language-plaintext highlighter-rouge">x86_64</code> when Homebrew requires it.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21659">Homebrew falls back to simpler output on dumb terminals, which avoids garbled progress display in shells such as Emacs.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21462">Homebrew keeps custom <code class="language-plaintext highlighter-rouge">HOMEBREW_CURLRC</code> paths through <code class="language-plaintext highlighter-rouge">brew update</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21054">Homebrew points unsupported older macOS releases to MacPorts instead of unsupported Homebrew installs.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21200">Homebrew removes legacy migration code for the old <code class="language-plaintext highlighter-rouge">linuxbrew</code> repository</a>, <a href="https://github.com/Homebrew/brew/pull/21195">removes the remaining automatic migration logic for old <code class="language-plaintext highlighter-rouge">linuxbrew-core</code> formulae</a> and <a href="https://github.com/Homebrew/brew/pull/21190">removes more obsolete <code class="language-plaintext highlighter-rouge">linuxbrew-core</code> migration entries</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/21075">Homebrew uses the correct Portable Ruby URLs for custom <code class="language-plaintext highlighter-rouge">HOMEBREW_ARTIFACT_DOMAIN</code> mirrors</a> and <a href="https://github.com/Homebrew/brew/pull/21103">uses the correct mirror links when building brew mirror URLs</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/21546">Homebrew guides contributors toward the modern command API as more legacy CLI parser fallback paths are removed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21628">Homebrew contributor guidance tells LLM-assisted contributors to run the repository’s own <code class="language-plaintext highlighter-rouge">./bin/brew</code> so local checks match CI more closely.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21262">Homebrew reuses cached API data for up to 7 days in more places, reducing needless refreshes.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21624">Homebrew lets old installed casks that still contain removed DSL such as <code class="language-plaintext highlighter-rouge">appcast</code> uninstall or upgrade again</a> and <a href="https://github.com/Homebrew/brew/pull/21630">filters broken <code class="language-plaintext highlighter-rouge">Caskroom</code> metadata out of installed-cask listings</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/21611">Homebrew closes cleanup lockfiles properly, avoiding a file descriptor leak.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21212">Homebrew caching-proxy docs cover the Formulae API as well as bottles.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21612">Homebrew cask acceptance docs explain the notability bar for self-submitted casks more clearly</a> and <a href="https://github.com/Homebrew/brew/pull/21336">state that dropping support for current macOS versions can lead to rejection</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/21710">Homebrew support-tier docs state that outdated macOS developer tools count as Tier 2</a> and <a href="https://github.com/Homebrew/brew/pull/21711"><code class="language-plaintext highlighter-rouge">brew doctor</code> uses clearer wording about when to report issues from Tier 2 configurations</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/21293">Homebrew formulae can use simpler shell-completion helpers, including a predefined <code class="language-plaintext highlighter-rouge">:cobra</code> format</a> and <a href="https://github.com/Homebrew/brew/pull/21287">a built-in <code class="language-plaintext highlighter-rouge">:typer</code> format</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/20936">Homebrew audits <code class="language-plaintext highlighter-rouge">revision</code> and <code class="language-plaintext highlighter-rouge">compatibility_version</code> changes more strictly, which helps catch ABI mistakes earlier.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21407">Homebrew linkage checks fail indirect linkage problems more consistently, which helps catch broken dependencies earlier.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21136">Homebrew <code class="language-plaintext highlighter-rouge">std_npm_args</code> disables package scripts by default, reducing exposure to malicious npm install hooks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/21278">Homebrew container registry users can omit the Docker authentication header by setting <code class="language-plaintext highlighter-rouge">HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN=none</code>.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/21156">Homebrew simplified its governance model</a>, <a href="https://github.com/Homebrew/brew/pull/21420">cleaned up the related docs</a> and <a href="https://github.com/Homebrew/brew/pull/21159">updated references to the current Lead Maintainers</a>.</li>
  <li><a href="https://github.com/orgs/Homebrew/discussions/6706">Homebrew is running a short user survey to help inform future development.</a></li>
  <li>Homebrew accepts donations through <a href="https://github.com/sponsors/Homebrew">GitHub Sponsors</a>, <a href="https://opencollective.com/homebrew#category-CONTRIBUTE">OpenCollective</a> and <a href="https://www.patreon.com/homebrew">Patreon</a>.</li>
</ul>

<p>Homebrew thanks all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Homebrew 5.1.0 has been released. Homebrew’s most significant changes since 5.0.0 are expanded brew bundle support, brew version-install, new -full formula handling and installer updates.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">5.0.0</title><link href="https://brew.sh/2025/11/12/homebrew-5.0.0/" rel="alternate" type="text/html" title="5.0.0" /><published>2025-11-12T00:00:00+00:00</published><updated>2025-11-12T00:00:00+00:00</updated><id>https://brew.sh/2025/11/12/homebrew-5.0.0</id><content type="html" xml:base="https://brew.sh/2025/11/12/homebrew-5.0.0/"><![CDATA[<p>Today, I’d like to announce Homebrew 5.0.0.
The most significant changes since 4.6.0 are download concurrency by default, official support for Linux ARM64/AArch64, timescales for deprecating macOS Intel and removing macOS Gatekeeper bypass behaviours.</p>

<p>Major changes and deprecations since 4.6.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/20975"><code class="language-plaintext highlighter-rouge">HOMEBREW_DOWNLOAD_CONCURRENCY=auto</code> is set by default</a>.
This enables parallel downloads by default for all users.
It can be disabled by setting <code class="language-plaintext highlighter-rouge">HOMEBREW_DOWNLOAD_CONCURRENCY=1</code>.
<a href="https://github.com/Homebrew/brew/pull/20991">Concurrent downloads now have progress reporting</a>.
We expect there may be a long-tail of issues, please report them!</li>
  <li><a href="https://github.com/Homebrew/brew/pull/20974">Homebrew has promoted Linux ARM64/AArch64 to Tier 1 support.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20388">Casks without codesigning are deprecated</a>.
We will disable all Homebrew/homebrew-cask casks that fail Gatekeeper checks in September 2026.</li>
  <li>Homebrew now provides official macOS 26 (Tahoe) support.
<a href="https://github.com/Homebrew/brew/pull/20497">Homebrew’s future macOS support is noted in our Support Tiers document</a>
at <a href="https://docs.brew.sh/Support-Tiers#future-macos-support">https://docs.brew.sh/Support-Tiers#future-macos-support</a>.
    <ul>
      <li>In September (or later) 2026, Homebrew will not run on macOS Catalina 10.15 and earlier and macOS Intel x86_64 will move to Tier 3, dropping CI support and no additional bottles (binary packages) will be built for macOS Intel.</li>
      <li>In September (or later) 2027, Homebrew will not run on macOS Big Sur 11 on Apple Silicon or <strong>at all on Intel x86_64</strong>.</li>
    </ul>
  </li>
  <li><a href="https://github.com/Homebrew/brew/pull/20951"><code class="language-plaintext highlighter-rouge">HOMEBREW_USE_INTERNAL_API</code> allows opt-in to the new, smaller internal Homebrew JSON API</a>.
This will become the default behaviour in a later version of Homebrew.
Please consider opting-in now and reporting any issues you encounter.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/20929"><code class="language-plaintext highlighter-rouge">--no-quarantine</code> and <code class="language-plaintext highlighter-rouge">--quarantine</code> flags have been deprecated as Homebrew does not wish to easily provide circumvention to macOS security features.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20973">Various other deprecations/disables/removals.</a></li>
</ul>

<p>Other changes since 4.6.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/20798"><code class="language-plaintext highlighter-rouge">brew bundle</code> supports installing <code class="language-plaintext highlighter-rouge">go</code> packages in Brewfile.</a>
<a href="https://github.com/Homebrew/brew/pull/20989"><code class="language-plaintext highlighter-rouge">brew bundle --no-go</code> and <code class="language-plaintext highlighter-rouge">HOMEBREW_BUNDLE_DUMP_NO_GO</code> will opt-out of this behaviour.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20683"><code class="language-plaintext highlighter-rouge">brew bundle</code> defaults the global <code class="language-plaintext highlighter-rouge">Brewfile</code> location to the user configuration directory.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20500"><code class="language-plaintext highlighter-rouge">brew bump-*-pr</code> will automatically tap core taps if needed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20945"><code class="language-plaintext highlighter-rouge">brew doctor</code> skips the disclaimer when <code class="language-plaintext highlighter-rouge">--quiet</code> is passed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20418"><code class="language-plaintext highlighter-rouge">brew doctor</code> warns on a <code class="language-plaintext highlighter-rouge">pkg-config</code> macOS SDK version mismatch.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20547"><code class="language-plaintext highlighter-rouge">brew mcp-server</code> provides more development commands.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20552"><code class="language-plaintext highlighter-rouge">brew search --alpine</code> searches Alpine Linux packages.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20799"><code class="language-plaintext highlighter-rouge">brew services</code> supports <code class="language-plaintext highlighter-rouge">keep_alive</code> <code class="language-plaintext highlighter-rouge">systemctl</code> services with <code class="language-plaintext highlighter-rouge">Restart=on-failure</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20360"><code class="language-plaintext highlighter-rouge">brew info --sizes</code> shows the sizes of each formula and cask.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20485"><code class="language-plaintext highlighter-rouge">brew audit</code> will do online checks for Codeberg repositories.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20958"><code class="language-plaintext highlighter-rouge">brew lgtm</code> runs multiple style checks in one command.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20808"><code class="language-plaintext highlighter-rouge">brew release</code> now runs the release workflow and uploads artifacts. This means Homebrew/brew now uses immutable releases.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20545"><code class="language-plaintext highlighter-rouge">brew style --changed</code> checks style on all changed files in a repository or tap.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20762"><code class="language-plaintext highlighter-rouge">Homebrew/homebrew-test-bot</code></a>,
<a href="https://github.com/Homebrew/brew/pull/20769"><code class="language-plaintext highlighter-rouge">Homebrew/homebrew-portable-ruby</code></a>
and <a href="https://github.com/Homebrew/brew/pull/20730"><code class="language-plaintext highlighter-rouge">Homebrew/command-not-found</code></a>
were imported into Homebrew/brew. This means
<a href="https://github.com/Homebrew/brew/pull/20846">all Homebrew external commands have now been moved into primary repositories (Homebrew/brew, Homebrew/homebrew-core or Homebrew/homebrew-cask).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20420"><code class="language-plaintext highlighter-rouge">/usr/local</code> prefix replacement is more selective to increase the number of relocatable bottles.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20803"><code class="language-plaintext highlighter-rouge">launchctl</code> service removal <code class="language-plaintext highlighter-rouge">sudo</code> failures are non-fatal.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20839"><code class="language-plaintext highlighter-rouge">CGO_ENABLED</code> is enabled by default on ARM64 Linux.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20674"><code class="language-plaintext highlighter-rouge">pkgconf</code> will be reinstalled automatically on a macOS version mismatch.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20884"><code class="language-plaintext highlighter-rouge">rubydoc.brew.sh</code> has been redirected to <code class="language-plaintext highlighter-rouge">docs.brew.sh/rubydoc</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20402"><code class="language-plaintext highlighter-rouge">head</code> Git URLs always require a branch name.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20806"><code class="language-plaintext highlighter-rouge">HOMEBREW_FORBIDDEN_CASK_ARTIFACTS</code> allows selectively blocking cask install methods.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20414"><code class="language-plaintext highlighter-rouge">HOMEBREW_DEVELOPER</code> is required when installing formulae from paths.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20804">Formula’s <code class="language-plaintext highlighter-rouge">compatibility_version</code> DSL will help us reduce the number of upgrades needed in future.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20807">Formula’s <code class="language-plaintext highlighter-rouge">no_linkage</code> DSL will help stricter linkage detection and avoid issues.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20800">Formulae can be migrated to casks within the same tap.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20682">Linux’s host <code class="language-plaintext highlighter-rouge">libstdc++</code> (instead of <code class="language-plaintext highlighter-rouge">gcc</code>) is used for automatically determining if a brewed <code class="language-plaintext highlighter-rouge">gcc</code> dependency is needed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20619">Homebrew will avoid downloading JSON API files multiple times per run.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20672">Homebrew no longer provides CI for macOS Ventura in Homebrew/core.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20609">Homebrew’s Linux CI uses GCC 12.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20681">Homebrew will not run on macOS Mojave and older.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20696">Homebrew prefers LLVM’s <code class="language-plaintext highlighter-rouge">clang</code> over <code class="language-plaintext highlighter-rouge">gcc</code> on macOS.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20716">Homebrew defaults to <code class="language-plaintext highlighter-rouge">-O2</code> with <code class="language-plaintext highlighter-rouge">gcc</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20802">Dependencies are resolved correctly when installing older bottles.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20925">Casks are better supported and have better usability on Linux.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/20766">We have clarified our stance on adult content in Homebrew formulae and casks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20981">We have loosened our criteria for accepting software into Homebrew.</a></li>
  <li>Homebrew accepts donations through <a href="https://github.com/sponsors/Homebrew">GitHub Sponsors</a>, <a href="https://opencollective.com/homebrew#category-CONTRIBUTE">OpenCollective</a> and <a href="https://www.patreon.com/homebrew">Patreon</a>.
If you can afford it, please consider donating.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today, I’d like to announce Homebrew 5.0.0. The most significant changes since 4.6.0 are download concurrency by default, official support for Linux ARM64/AArch64, timescales for deprecating macOS Intel and removing macOS Gatekeeper bypass behaviours.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">4.6.0</title><link href="https://brew.sh/2025/08/05/homebrew-4.6.0/" rel="alternate" type="text/html" title="4.6.0" /><published>2025-08-05T00:00:00+00:00</published><updated>2025-08-05T00:00:00+00:00</updated><id>https://brew.sh/2025/08/05/homebrew-4.6.0</id><content type="html" xml:base="https://brew.sh/2025/08/05/homebrew-4.6.0/"><![CDATA[<p>Today, I’d like to announce Homebrew 4.6.0.
The most significant changes since 4.5.0 are opt-in concurrent downloads with <code class="language-plaintext highlighter-rouge">HOMEBREW_DOWNLOAD_CONCURRENCY</code>, preliminary macOS 26 (Tahoe) support and a built-in <code class="language-plaintext highlighter-rouge">brew mcp-server</code>.</p>

<p>Major changes and deprecations since 4.5.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/20342"><code class="language-plaintext highlighter-rouge">HOMEBREW_DOWNLOAD_CONCURRENCY</code> is a new environment variable that allows opt-in to Homebrew’s new download concurrency support</a>.
<a href="https://github.com/Homebrew/brew/pull/20329">We recommend using <code class="language-plaintext highlighter-rouge">HOMEBREW_DOWNLOAD_CONCURRENCY=auto</code> as a starting point</a>.
This will become the default behaviour in a later version of Homebrew (with an opt-out).</li>
  <li><a href="https://github.com/Homebrew/brew/pull/20062">Homebrew provides preliminary macOS 26 (Tahoe) support.</a>
It will be officially supported after Apple’s public release.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/20041"><code class="language-plaintext highlighter-rouge">brew mcp-server</code> is an MCP server for Homebrew and is available in Homebrew by default.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20331">Miscellaneous additional code deprecations, disables and removals scheduled for Homebrew 4.6.</a></li>
</ul>

<p>Other changes since 4.5.0 I’d like to highlight are the following:</p>

<ul>
  <li>All repositories in the Homebrew organisation, including e.g. <a href="https://github.com/Homebrew/brew/pull/20164">Homebrew/brew</a>,
<a href="https://github.com/Homebrew/brew/pull/20172">Homebrew/homebrew-cask</a> and
<a href="https://github.com/Homebrew/brew/pull/20171">Homebrew/homebrew-core</a>, now use <code class="language-plaintext highlighter-rouge">main</code> as their default branch.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/20286">All casks submitted in Homebrew/homebrew-cask must be signed</a>.
We have not yet completed the process of disabling/removing those that aren’t but this will happen at some point in the future.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/19977">Homebrew prohibits non-ASCII characters in URLs.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20185">Homebrew now allows users in Tier 2/3 to file some types of issues.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20159">Homebrew’s <code class="language-plaintext highlighter-rouge">.pkg</code> and official/shell installers will now add Homebrew to the default <code class="language-plaintext highlighter-rouge">PATH</code> if possible.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19885">Third-party Homebrew GitHub Packages mirrors that do not require authentication now work as expected.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19865"><code class="language-plaintext highlighter-rouge">HOMEBREW_FORBID_CASKS</code> is a new environment variable that forbids all casks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20229"><code class="language-plaintext highlighter-rouge">HOMEBREW_VERIFY_ATTESTATIONS</code> must be explicitly set again, even for <code class="language-plaintext highlighter-rouge">HOMEBREW_DEVELOPER</code>s.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20053"><code class="language-plaintext highlighter-rouge">brew</code> no longer copies across zeroed environment-variable values.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20037"><code class="language-plaintext highlighter-rouge">brew</code> resets the <code class="language-plaintext highlighter-rouge">sudo</code> timestamp later so it’s not done by e.g. <code class="language-plaintext highlighter-rouge">brew --prefix</code> or <code class="language-plaintext highlighter-rouge">brew shellenv</code> but remains done by e.g. <code class="language-plaintext highlighter-rouge">brew install</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20311"><code class="language-plaintext highlighter-rouge">brew --debug</code> output is a bit quieter by default.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20090"><code class="language-plaintext highlighter-rouge">brew bundle</code> no longer uses the <code class="language-plaintext highlighter-rouge">brew tap --force-auto-update</code> option as it was removed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20224"><code class="language-plaintext highlighter-rouge">brew bundle</code> better handles cask renames for <code class="language-plaintext highlighter-rouge">brew bundle</code> and <code class="language-plaintext highlighter-rouge">brew bundle dump</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20209"><code class="language-plaintext highlighter-rouge">brew bundle</code> refers to “formulae” rather than “brews” for consistency with other parts of Homebrew.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19922"><code class="language-plaintext highlighter-rouge">brew bundle add</code> will create a <code class="language-plaintext highlighter-rouge">Brewfile</code> if it doesn’t exist.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20256"><code class="language-plaintext highlighter-rouge">brew cleanup</code> doesn’t warn when loading a renamed cask.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20304"><code class="language-plaintext highlighter-rouge">brew install</code> outputs a better error message when there are tap conflicts.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19892"><code class="language-plaintext highlighter-rouge">brew install --ask</code> will also prompt before installing casks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19959"><code class="language-plaintext highlighter-rouge">brew uninstall</code> won’t suggest deleting configuration files that belong to other formulae.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20167"><code class="language-plaintext highlighter-rouge">brew update</code> displays descriptions for new formulae and casks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20073"><code class="language-plaintext highlighter-rouge">brew update</code> will migrate taps from <code class="language-plaintext highlighter-rouge">master</code> to <code class="language-plaintext highlighter-rouge">main</code> when necessary.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20213"><code class="language-plaintext highlighter-rouge">brew pin</code> returns a non-zero exit code if pinning formulae that are not installed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20047"><code class="language-plaintext highlighter-rouge">brew sh</code> and <code class="language-plaintext highlighter-rouge">brew bundle sh</code> use more of the user’s configuration but provide a custom prompt.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20134"><code class="language-plaintext highlighter-rouge">brew audit</code> ensures that official formula and cask names don’t conflict.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20071"><code class="language-plaintext highlighter-rouge">brew deps</code> outputs a warning when runtime dependencies are not used (so results may be inconsistent or confusing).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/20281"><code class="language-plaintext highlighter-rouge">env_script_all_files</code> in formulae won’t overwrite existing files.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li>Homebrew is now <a href="https://bsky.app/profile/brew.sh">on Bluesky</a>.</li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>.
If you can afford it, please consider donating.
If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today, I’d like to announce Homebrew 4.6.0. The most significant changes since 4.5.0 are opt-in concurrent downloads with HOMEBREW_DOWNLOAD_CONCURRENCY, preliminary macOS 26 (Tahoe) support and a built-in brew mcp-server.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">4.5.0</title><link href="https://brew.sh/2025/04/29/homebrew-4.5.0/" rel="alternate" type="text/html" title="4.5.0" /><published>2025-04-29T00:00:00+00:00</published><updated>2025-04-29T00:00:00+00:00</updated><id>https://brew.sh/2025/04/29/homebrew-4.5.0</id><content type="html" xml:base="https://brew.sh/2025/04/29/homebrew-4.5.0/"><![CDATA[<p>Today, I’d like to announce Homebrew 4.5.0.
The most significant changes since 4.4.0 are major improvements to <code class="language-plaintext highlighter-rouge">brew bundle</code>/<code class="language-plaintext highlighter-rouge">services</code>, preliminary Linux support for casks, official Support Tiers, Tier 2 ARM64 Linux support, Ruby 3.4 and several deprecations.</p>

<p>Major changes and deprecations since 4.4.0:</p>

<h4 id="brew-bundle-and-brew-services"><code class="language-plaintext highlighter-rouge">brew bundle</code> and <code class="language-plaintext highlighter-rouge">brew services</code></h4>

<ul>
  <li><a href="https://docs.brew.sh/Brew-Bundle-and-Brewfile">The documentation for Homebrew Bundle, <code class="language-plaintext highlighter-rouge">brew bundle</code> and <code class="language-plaintext highlighter-rouge">Brewfile</code></a>
has been <a href="https://github.com/Homebrew/brew/pull/19802">hugely improved</a>.
It also documents the many new <code class="language-plaintext highlighter-rouge">brew bundle</code> features and changes in this release.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/19487"><code class="language-plaintext highlighter-rouge">brew bundle</code></a>
and
<a href="https://github.com/Homebrew/brew/pull/19385"><code class="language-plaintext highlighter-rouge">brew services</code></a>
are built-in commands instead of being provided by an external tap.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/19575"><code class="language-plaintext highlighter-rouge">brew bundle (exec|env|sh)</code> no longer filter the user’s environment</a> (like other <code class="language-plaintext highlighter-rouge">brew</code> commands do)</li>
  <li><a href="https://github.com/Homebrew/brew/pull/19565"><code class="language-plaintext highlighter-rouge">brew services</code> supports passing multiple formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19579"><code class="language-plaintext highlighter-rouge">Brewfile</code>s have a <code class="language-plaintext highlighter-rouge">version_file:</code> DSL that allows <code class="language-plaintext highlighter-rouge">brew bundle</code> to write to e.g. a <code class="language-plaintext highlighter-rouge">.ruby-version</code> file based on the installed version</a></li>
  <li><code class="language-plaintext highlighter-rouge">brew bundle</code> no longer includes <code class="language-plaintext highlighter-rouge">${HOMEBREW_PREFIX}/bin</code> in the <code class="language-plaintext highlighter-rouge">$PATH</code> by default.
You can do this in your <code class="language-plaintext highlighter-rouge">Brewfile</code> with <code class="language-plaintext highlighter-rouge">ENV["PATH"] = "#{HOMEBREW_PREFIX}/bin:#{ENV["PATH"]}"</code>.</li>
</ul>

<h4 id="linux-casks">Linux casks</h4>

<ul>
  <li>Some Homebrew casks are supported on Linux.
Right now these are mostly
<a href="https://github.com/Homebrew/brew/pull/18874">fonts</a>
and those with
<a href="https://github.com/Homebrew/brew/pull/19121">Linux binaries</a>.
Some casks will never be available on Linux, such as those for macOS-specific software.
<a href="https://github.com/Homebrew/brew/pull/19834">The Homebrew Linux fonts cask tap has been deprecated as a result</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/19510"><code class="language-plaintext highlighter-rouge">brew bump-cask-pr</code> allows bumping multi-platform casks on Linux</a></li>
</ul>

<h4 id="support-tiers">Support Tiers</h4>

<ul>
  <li><a href="https://docs.brew.sh/Support-Tiers">Homebrew has three documented Support Tiers plus Unsupported</a>.
Tier 1, previously called “supported”, is where you’ll get bottles/binary packages and we have CI coverage.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/19657"><code class="language-plaintext highlighter-rouge">brew doctor</code> links to Support Tiers</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18762"><code class="language-plaintext highlighter-rouge">brew doctor</code> checks for OpenCore Legacy Patcher</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19751">Clarify that the OpenCore Legacy Patcher is Tier 2 or 3</a></li>
</ul>

<h4 id="arm64-linux">ARM64 Linux</h4>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/19224">Homebrew provides a Portable Ruby for ARM64 Linux</a>.
This is the first step towards hopefully being able to provide Tier 1 support for ARM64 Linux in the future.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/19188">Homebrew refers to ARM64 Linux, not AArch64 Linux</a> (for consistency with macOS)</li>
  <li><a href="https://github.com/Homebrew/brew/pull/19275">Homebrew publishes some ARM64 Docker images</a></li>
</ul>

<h4 id="ruby">Ruby</h4>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/19779">Homebrew provides Portable Ruby 3.4.3</a>.
It also requires Ruby &gt;=3.4 to run.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/19658">Homebrew has enabled Bootsnap by default</a>. This should make repeated invocations of <code class="language-plaintext highlighter-rouge">brew</code> much faster.</li>
</ul>

<h4 id="deprecations">Deprecations</h4>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/19801">Homebrew 4.5’s various deprecations/disables/removals</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19190">The Ubuntu 18 Docker image has been removed</a></li>
</ul>

<p>Other changes since 4.4.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/19254"><code class="language-plaintext highlighter-rouge">brew install --ask</code> and <code class="language-plaintext highlighter-rouge">HOMEBREW_ASK</code> allow viewing the packages, dependencies and sizes in a prompt before installation</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19136"><code class="language-plaintext highlighter-rouge">brew install --skip-link</code> allows installation without running <code class="language-plaintext highlighter-rouge">brew link</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19626"><code class="language-plaintext highlighter-rouge">brew update-if-needed</code> provides a much faster possible replacement for <code class="language-plaintext highlighter-rouge">brew update</code> that does nothing if no auto-update is required</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19570"><code class="language-plaintext highlighter-rouge">brew install --as-dependency</code> allows installation of formulae as dependencies rather than “on request”</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18574"><code class="language-plaintext highlighter-rouge">brew</code> allows being run by <code class="language-plaintext highlighter-rouge">root</code> in <code class="language-plaintext highlighter-rouge">podman</code> containers</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19824"><code class="language-plaintext highlighter-rouge">HOMEBREW_TEMP</code> defaults to <code class="language-plaintext highlighter-rouge">/var/tmp</code> on Linux, assuming it exists, is readable and is writable</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19009"><code class="language-plaintext highlighter-rouge">brew install --cask</code> produces fewer GitHub Actions warnings</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19811">Homebrew supports GCC 15</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18978"><code class="language-plaintext highlighter-rouge">brew pyenv-sync</code> creates major version symlinks to fix <code class="language-plaintext highlighter-rouge">pyenv</code> support</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19406">The Homebrew macOS <code class="language-plaintext highlighter-rouge">.pkg</code> installer will upgrade existing installations</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19375"><code class="language-plaintext highlighter-rouge">HOMEBREW_UPGRADE_GREEDY_CASKS</code> allows specifying a list of casks that should always be upgraded with <code class="language-plaintext highlighter-rouge">--greedy</code></a></li>
  <li>Formulae can include
<a href="https://github.com/Homebrew/brew/pull/19407">PowerShell (<code class="language-plaintext highlighter-rouge">pwsh</code>)</a>
or
<a href="https://github.com/Homebrew/brew/pull/18945"><code class="language-plaintext highlighter-rouge">clap</code></a>
completions.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/18613"><code class="language-plaintext highlighter-rouge">@@HOMEBREW_PREFIX@@</code> can be replaced with the value of <code class="language-plaintext highlighter-rouge">HOMEBREW_PREFIX</code> in external patches</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19258"><code class="language-plaintext highlighter-rouge">brew alias</code> and <code class="language-plaintext highlighter-rouge">brew unalias</code> commands are part of Homebrew/brew rather than an external tap</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19545"><code class="language-plaintext highlighter-rouge">brew edit</code> and <code class="language-plaintext highlighter-rouge">brew bundle edit</code> look for VSCode variants, e.g. Cursor</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19798"><code class="language-plaintext highlighter-rouge">brew bump*</code> can bump synced formulae together</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19577"><code class="language-plaintext highlighter-rouge">brew *env-sync</code> has a <code class="language-plaintext highlighter-rouge">HOMEBREW_ENV_SYNC_STRICT</code> mode for stricter version handling</a></li>
  <li>In formulae and casks,
<a href="https://github.com/Homebrew/brew/pull/18733"><code class="language-plaintext highlighter-rouge">deprecate!</code>/<code class="language-plaintext highlighter-rouge">disable!</code> support specifying replacement software</a>
and
<a href="https://github.com/Homebrew/brew/pull/19578">can specify replacement type</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19670"><code class="language-plaintext highlighter-rouge">brew bump-*</code> only warns, rather than errors, on duplicate PRs for non-official taps</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19217"><code class="language-plaintext highlighter-rouge">brew verify</code> allows verifying package attributions</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18843"><code class="language-plaintext highlighter-rouge">brew audit</code> flags <code class="language-plaintext highlighter-rouge">pkg-config</code> dependencies in core tap</a>.
We have fully moved to using <code class="language-plaintext highlighter-rouge">pkgconf</code> in Homebrew/homebrew-core instead.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/18826">Formulae allow using Sequoia’s <code class="language-plaintext highlighter-rouge">jq</code> instead of Homebrew’s</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18811"><code class="language-plaintext highlighter-rouge">brew config</code> prints the current Homebrew/brew branch</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19576">Homebrew’s Tabs/<code class="language-plaintext highlighter-rouge">INSTALL_RECEIPT.json</code> include the <code class="language-plaintext highlighter-rouge">bottle_rebuild</code> in <code class="language-plaintext highlighter-rouge">runtime_dependencies</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18516">Homebrew will use macOS’s new <code class="language-plaintext highlighter-rouge">lockf</code> where available</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/19736">Homebrew’s CI is no longer running <code class="language-plaintext highlighter-rouge">brew tests</code> on macOS 13</a>.
It was too slow and we’re dropping macOS 13 support later this year.</li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://brew.sh/2025/02/03/Homebrew-git-signing/">Homebrew has switched to SSH-based Git commit signing</a></li>
  <li><a href="https://brew.sh/2024/11/19/homebrew-and-workbrew/">Homebrew has provided FAQs about their relationship with Workbrew</a></li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>.
If you can afford it, please consider donating.
If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today, I’d like to announce Homebrew 4.5.0. The most significant changes since 4.4.0 are major improvements to brew bundle/services, preliminary Linux support for casks, official Support Tiers, Tier 2 ARM64 Linux support, Ruby 3.4 and several deprecations.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Homebrew’s new git signing key</title><link href="https://brew.sh/2025/02/03/Homebrew-git-signing/" rel="alternate" type="text/html" title="Homebrew’s new git signing key" /><published>2025-02-03T00:00:00+00:00</published><updated>2025-02-03T00:00:00+00:00</updated><id>https://brew.sh/2025/02/03/Homebrew-git-signing</id><content type="html" xml:base="https://brew.sh/2025/02/03/Homebrew-git-signing/"><![CDATA[<p>Over the next few days, Homebrew’s repositories will begin to transition
from PGP-based signing to SSH-based signing for <a href="https://github.com/BrewTestBot">@BrewTestBot</a> commits.</p>

<p>As part of this change, we will be rotating our <a href="https://github.com/BrewTestBot">@BrewTestBot</a>’s key.
This rotation should not affect most users, but you may notice
it if you currently manually verify <code class="language-plaintext highlighter-rouge">git</code> commits from
<a href="https://github.com/Homebrew/brew">Homebrew/brew</a>, <a href="https://github.com/Homebrew/homebrew-core">Homebrew/homebrew-core</a>, or similar.</p>

<p>Once all repositories have been transitioned, we will revoke
the old PGP key to prevent unintended future use:</p>

<ul>
  <li>Main key: <code class="language-plaintext highlighter-rouge">3C76C3F1E573FA9E</code></li>
  <li>Signing subkey: <code class="language-plaintext highlighter-rouge">82D7D104050B0F0F</code></li>
</ul>

<p>The new SSH signing key has the following public half:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE0QzQJ6gl6Yxru0QrSaDRNatiHajcKxDu9lxQrFl8Nw
</code></pre></div></div>

<p>Users can also discover this signing key programmatically through GitHub’s
REST API:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ gh api /users/BrewTestBot/ssh_signing_keys
[
  {
    "id": 475371,
    "key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE0QzQJ6gl6Yxru0QrSaDRNatiHajcKxDu9lxQrFl8Nw",
    "title": "BREWTESTBOT_SSH_SIGNING_KEY",
    "created_at": "2025-02-03T17:50:27.377+01:00"
  }
]
</code></pre></div></div>]]></content><author><name>woodruffw</name></author><summary type="html"><![CDATA[Over the next few days, Homebrew’s repositories will begin to transition from PGP-based signing to SSH-based signing for @BrewTestBot commits.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Homebrew and Workbrew</title><link href="https://brew.sh/2024/11/19/homebrew-and-workbrew/" rel="alternate" type="text/html" title="Homebrew and Workbrew" /><published>2024-11-19T00:00:00+00:00</published><updated>2024-11-19T00:00:00+00:00</updated><id>https://brew.sh/2024/11/19/homebrew-and-workbrew</id><content type="html" xml:base="https://brew.sh/2024/11/19/homebrew-and-workbrew/"><![CDATA[<p>Homebrew is pleased to congratulate <a href="https://workbrew.com/blog/workbrew-1-0">Workbrew on their 1.0 launch today</a>. <a href="https://workbrew.com">Workbrew is a company</a> founded by several Homebrew members and the Project Leader, @MikeMcQuaid, to use Homebrew as the foundation of a secure software delivery platform. Workbrew’s product is out of beta and ready to solve your workplace’s problems with securing Homebrew at scale, so go check it out!</p>

<p>We understand that the community will, rightly, have questions. You’ll find some answers below. This relationship is mutually beneficial: Workbrew employees work on Homebrew during working hours, and Workbrew sponsors Homebrew on GitHub Sponsors. Workbrew’s founders care deeply about the success and independence of Homebrew.</p>

<p>Homebrew itself is and will always remain open source and free (as in speech and beer 🍺).</p>

<h2 id="homebrew-and-workbrew-faqs">Homebrew and Workbrew FAQs</h2>

<h3 id="how-are-homebrew-and-workbrew-related">How are Homebrew and Workbrew related?</h3>

<p>Homebrew is an open source project and <a href="https://opencollective.com/homebrew">part of the non-profit Open Source Collective</a> run by unpaid volunteers (bar a small $300/month stipend for opted-in active maintainers).</p>

<p>Workbrew is a product (with paid tiers) and company run by founders and employees.</p>

<p>At the time of writing, some of Homebrew and Workbrew’s leadership overlap (@MikeMcQuaid, @mozzadrella) and Workbrew employs some Homebrew maintainers (@Bo98, @carlocab).</p>

<h3 id="is-workbrew-in-control-of-homebrew">Is Workbrew in control of Homebrew?</h3>

<p>No. Homebrew has an <a href="https://docs.brew.sh/Homebrew-Governance">independent governance structure</a> that can only be changed through a supermajority of votes cast. Homebrew’s Project Leadership Committee (PLC) restricts any employer (including Workbrew) from holding more than 2 seats on the PLC.</p>

<p>Additionally, on the code side, Homebrew is BSD-2 licensed with no CLA and &gt;10,000 contributors.</p>

<p>In practice, this means that neither Homebrew or Workbrew could relicense Homebrew without &gt;10,000 people agreeing to it (or their code being rewritten) which is essentially impossible.</p>

<h3 id="is-workbrew-going-to-make-us-pay-for-homebrew">Is Workbrew going to make us pay for Homebrew?</h3>

<p>No. Only Homebrew could decide to do this and we have no plans to do so. Workbrew includes Homebrew and charges money for certain Workbrew plans - as permitted by Homebrew’s license - but cannot ever make Homebrew not open source.</p>

<h3 id="did-homebrew-know-this-was-coming">Did Homebrew know this was coming?</h3>

<p>Yes. Workbrew kept Homebrew’s leadership, maintainers and membership in the loop from early in the company’s conception. We’re very grateful for this transparency.</p>]]></content><author><name>issyl0</name></author><summary type="html"><![CDATA[Homebrew is pleased to congratulate Workbrew on their 1.0 launch today. Workbrew is a company founded by several Homebrew members and the Project Leader, @MikeMcQuaid, to use Homebrew as the foundation of a secure software delivery platform. Workbrew’s product is out of beta and ready to solve your workplace’s problems with securing Homebrew at scale, so go check it out!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">4.4.0</title><link href="https://brew.sh/2024/10/01/homebrew-4.4.0/" rel="alternate" type="text/html" title="4.4.0" /><published>2024-10-01T00:00:00+00:00</published><updated>2024-10-01T00:00:00+00:00</updated><id>https://brew.sh/2024/10/01/homebrew-4.4.0</id><content type="html" xml:base="https://brew.sh/2024/10/01/homebrew-4.4.0/"><![CDATA[<p>Today, I’d like to announce Homebrew 4.4.0.
The most significant changes since 4.3.0 are official macOS Sequoia (15) support, <code class="language-plaintext highlighter-rouge">INSTALL_RECEIPT.json</code> files for casks, macOS Monterey (12) deprecation and various other deprecations.</p>

<p>Major changes and deprecations since 4.3.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/18296">macOS Sequoia (15) is officially supported by Homebrew.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17554">Newly installed casks have install receipts (<code class="language-plaintext highlighter-rouge">INSTALL_RECEIPT.json</code> files).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18314">macOS Monterey (12) is no longer supported by Homebrew and no longer a CI target for Homebrew.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18008">External commands in the old, non-AbstractCommand style are deprecated and should be migrated to AbstractCommand.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17721">Disabled packages output the date when they will be disabled.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18407"><code class="language-plaintext highlighter-rouge">url do</code> blocks are deprecated for casks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17293">An Ubuntu 24.04 Docker image was added.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18387">The Ubuntu 18.04 Homebrew Docker image is deprecated.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17449"><code class="language-plaintext highlighter-rouge">brew tab</code> is a new command for editing tab information.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18408">Setting Homebrew’s boolean environment variables to falsey values is deprecated.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18127">Homebrew no longer supports building with GCC 4.9, 5 and 6.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18388">The usual cycle of deprecations, disables and code removals.</a></li>
</ul>

<p>Other changes since 4.3.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/18439">Homebrew uses Ruby 3.3.5.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17761"><code class="language-plaintext highlighter-rouge">brew upgrade --cask --quiet</code> is quieter.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17668"><code class="language-plaintext highlighter-rouge">brew outdated</code> assumes the <code class="language-plaintext highlighter-rouge">--greedy</code> flag was passed when <code class="language-plaintext highlighter-rouge">HOMEBREW_UPGRADE_GREEDY</code> is set.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18420"><code class="language-plaintext highlighter-rouge">brew install --cask --adopt</code> only cares if the cask doesn’t auto-update.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17582"><code class="language-plaintext highlighter-rouge">brew search --desc</code> and <code class="language-plaintext highlighter-rouge">brew desc --search</code> use the JSON API’s data for description searches.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17508"><code class="language-plaintext highlighter-rouge">brew autoremove</code> does not remove formulae that were built from source.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17773">Homebrew will rewrite <code class="language-plaintext highlighter-rouge">node</code> shebangs on installation (mirroring <code class="language-plaintext highlighter-rouge">python</code> and <code class="language-plaintext highlighter-rouge">perl</code>).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17681"><code class="language-plaintext highlighter-rouge">brew install</code> will prioritise homebrew-cask casks over non-Homebrew organisation formulae.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18172"><code class="language-plaintext highlighter-rouge">brew info</code> will show size information for bottles.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18133"><code class="language-plaintext highlighter-rouge">brew list</code> has new <code class="language-plaintext highlighter-rouge">--poured-from-bottle</code> and <code class="language-plaintext highlighter-rouge">--built-from-source</code> flags.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18326"><code class="language-plaintext highlighter-rouge">brew shellenv</code> will set <code class="language-plaintext highlighter-rouge">XDG_DATA_DIRS</code> on Linux.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18027"><code class="language-plaintext highlighter-rouge">brew typecheck</code> supports using Sorbet for typechecking in taps.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18313"><code class="language-plaintext highlighter-rouge">HOMEBREW_NO_BUILD_ERROR_ISSUES</code> is a new environment variable that prevents Homebrew from searching for relevant GitHub issues on a build error.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18345"><code class="language-plaintext highlighter-rouge">brew search</code> allows searching with <code class="language-plaintext highlighter-rouge">@</code> and <code class="language-plaintext highlighter-rouge">+</code> characters.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/18396">A <code class="language-plaintext highlighter-rouge">homebrew/brew:master</code> Docker image was added.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li>Homebrew’s <a href="https://opencollective.com/brew">501c3 OpenCollective</a> is empty.
We are only using our <a href="https://opencollective.com/homebrew">501c6 OpenCollective</a>.</li>
  <li>In case you missed it, Homebrew had a <a href="https://brew.sh/2024/07/30/homebrew-security-audit/">2023 security audit</a> that was released in July.</li>
  <li>Homebrew had a <a href="https://brew.sh/2024/07/26/homebrew-summer-2024-hackathon/">Summer 2024 Hackathon</a> in July which focused on implementing the results of the security audit and improving performance of many parts of Homebrew.</li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today, I’d like to announce Homebrew 4.4.0. The most significant changes since 4.3.0 are official macOS Sequoia (15) support, INSTALL_RECEIPT.json files for casks, macOS Monterey (12) deprecation and various other deprecations.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">2023 Security Audit</title><link href="https://brew.sh/2024/07/30/homebrew-security-audit/" rel="alternate" type="text/html" title="2023 Security Audit" /><published>2024-07-30T00:00:00+00:00</published><updated>2024-07-30T00:00:00+00:00</updated><id>https://brew.sh/2024/07/30/homebrew-security-audit</id><content type="html" xml:base="https://brew.sh/2024/07/30/homebrew-security-audit/"><![CDATA[<p>Homebrew had a security audit performed in 2023. This audit was funded by the <a href="https://www.usagm.gov/networks/otf/">Open Technology Fund</a> and conducted by <a href="https://www.trailofbits.com">Trail of Bits</a>. Trail of Bits’ report contained 25 items, of which 16 were fixed, 3 are in progress, and 6 are acknowledged by Homebrew’s maintainers. Below is the scope of testing, findings by severity, and mitigation and acknowledgements.</p>

<p>You can read Trail of Bits’ blog post on the audit <a href="https://blog.trailofbits.com/2024/07/30/our-audit-of-homebrew/">here</a> and find the full public report <a href="https://github.com/trailofbits/publications/blob/eb9344f2261031a4be1be2f223e9b5bc535be6b9/reviews/2023-08-28-homebrew-securityreview.pdf">here</a>.</p>

<p>Homebrew’s maintainers and Project Leadership Commitee would like to thank Open Technology Fund and Trail of Bits for sponsoring and running this engagement. Our partnership directly improves the security of Homebrew and open source software in general.</p>

<p>Scope: <a href="https://github.com/Homebrew/brew">Homebrew/brew</a>, <a href="https://github.com/Homebrew/actions">Homebrew/actions</a>, <a href="https://github.com/Homebrew/formulae.brew.sh">Homebrew/formulae.brew.sh</a>, <a href="https://github.com/Homebrew/homebrew-test-bot">Homebrew/homebrew-test-bot</a>.</p>

<p>Findings by severity:</p>

<ul>
  <li>High: 0</li>
  <li>Medium: 14</li>
  <li>Low: 2</li>
  <li>Informational: 7</li>
  <li>Undetermined: 2</li>
</ul>

<p>Mitigation &amp; acknowledgement:</p>

<ol>
  <li>Path traversal during file caching
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/commit/5aebde3ffdb38a7087ac992af144c957dd802788">Fixed</a></li>
    </ul>
  </li>
  <li>Sandbox escape via string injection
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/pull/17700/commits/f4e5e0c716585b072b5a401602f7847272ae5d4a">Fixed</a></li>
    </ul>
  </li>
  <li>Allow default rule in sandbox configuration is overly permissive
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/commit/fea65f760332a26c116de4b675e07f679bf95b1c">Fixed</a></li>
    </ul>
  </li>
  <li>Special characters are allowed in package names and versions
    <ul>
      <li>Status: Acknowledged</li>
    </ul>
  </li>
  <li>Use of weak cryptographic digest in Formulary namespaces
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/commit/310b5ecbe7c578c850f35d88b3ba9adbb291fc83">Fixed</a></li>
    </ul>
  </li>
  <li>Extraction is not sandboxed
    <ul>
      <li>Status: Acknowledged</li>
    </ul>
  </li>
  <li>Use of ldd on untrusted inputs
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/commit/0fc9c9f81e2a740d733062e1b47df2b49a8363c6">Fixed</a></li>
    </ul>
  </li>
  <li>Formulas allow for external resources to be downloaded during the install step
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/pull/17703">In Progress</a></li>
    </ul>
  </li>
  <li>Use of Marshal
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/commit/e466417cdf90c7dc8aab717cc5a591c1f31f9415">Fixed</a></li>
    </ul>
  </li>
  <li>Lack of sandboxing on Linux
    <ul>
      <li>Status: Acknowledged</li>
    </ul>
  </li>
  <li>Sandbox escape through domain socket pivot on macOS
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/pull/17734">In Progress</a></li>
    </ul>
  </li>
  <li>Formula privilege escalation through sudo
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/pull/17694/commits/2adf25dcaf8d8c66124c5b76b8a41ae228a7bb02">Fixed</a></li>
    </ul>
  </li>
  <li>Formula loading through SFTP, SCP, and other protocols
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/pull/17697/commits/8b0a4a98bf10b3441008906632648977b4a4f23e">Fixed</a></li>
    </ul>
  </li>
  <li>Sandbox allows changing permissions for important directories
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/commit/92ef6ef7639b08b182fc0d9154cf51561365f749">Fixed</a></li>
    </ul>
  </li>
  <li>Homebrew supports only end-of-life versions of Ruby
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/pull/16294/commits/987ebe3d6d0aaa27ab9ca2e95fe807e0718d4378">Fixed</a></li>
    </ul>
  </li>
  <li>Path traversal during bottling
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/commit/5aebde3ffdb38a7087ac992af144c957dd802788">Fixed</a></li>
    </ul>
  </li>
  <li>FileUtils.rm_rf does not check if files are deleted
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/brew/pull/17705">In Progress</a></li>
    </ul>
  </li>
  <li>Use of pull_request_target in GitHub Actions workflows
    <ul>
      <li>Status: Fixed: <a href="https://github.com/Homebrew/brew/commit/b9da669ef25c7da0757f5ae1d418985b19efb321">1</a>, <a href="https://github.com/Homebrew/actions/commit/323fc6399f7ddf2cb6ee7eb9d900dcd4deee76ec">2</a>.</li>
    </ul>
  </li>
  <li>Use of unpinned third-party workflow
    <ul>
      <li>Status: Fixed across the codebase via multiple PR’s.</li>
    </ul>
  </li>
  <li>Unpinned dependencies in formulae.brew.sh
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/formulae.brew.sh/commit/83ae27233abbf7b59db9aeb5bae311ecabf1add8">Fixed</a></li>
    </ul>
  </li>
  <li>Use of RSA for JSON API signing
    <ul>
      <li>Status: Acknowledged. Ed25519 was not an option when this was introduced. The next key reroll will use Ed25519.</li>
    </ul>
  </li>
  <li>Bottles beginning “-“ can lead to unintended options getting passed to rm
    <ul>
      <li>Status: <a href="https://github.com/Homebrew/homebrew-test-bot/pull/1062/commits/5565ba609cb6456d22741751465f088b44209813">Fixed</a></li>
    </ul>
  </li>
  <li>Code injection through inputs in multiple actions
    <ul>
      <li>Status: Fixed across the codebase via multiple PR’s.</li>
    </ul>
  </li>
  <li>Use of PGP for commit signing
    <ul>
      <li>Status: Acknowledged. Plans to remove the bot account using PGP have been established.</li>
    </ul>
  </li>
  <li>Unnecessary domain separation between signing key and key ID
    <ul>
      <li>Status: Acknowledged. Will be resolved with the next key reroll.</li>
    </ul>
  </li>
</ol>]]></content><author><name>p-linnane</name></author><summary type="html"><![CDATA[Homebrew had a security audit performed in 2023. This audit was funded by the Open Technology Fund and conducted by Trail of Bits. Trail of Bits’ report contained 25 items, of which 16 were fixed, 3 are in progress, and 6 are acknowledged by Homebrew’s maintainers. Below is the scope of testing, findings by severity, and mitigation and acknowledgements.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Homebrew’s Summer 2024 Hackathon</title><link href="https://brew.sh/2024/07/26/homebrew-summer-2024-hackathon/" rel="alternate" type="text/html" title="Homebrew’s Summer 2024 Hackathon" /><published>2024-07-26T00:00:00+00:00</published><updated>2024-07-26T00:00:00+00:00</updated><id>https://brew.sh/2024/07/26/homebrew-summer-2024-hackathon</id><content type="html" xml:base="https://brew.sh/2024/07/26/homebrew-summer-2024-hackathon/"><![CDATA[<p>The Homebrew Summer 2024 Hackathon brought together maintainers from across the globe to focus on enhancing security and performance aspects of Homebrew. Held July 16 to July 20 and hosted at <a href="https://indyhall.org/">IndyHall</a> in Philadelphia, the event aimed to address issues identified in last year’s security audit from Trail of Bits, and to optimize the software’s performance. This post will share outcomes from the event, evaluate the effectiveness of the gathering, and serve as a blueprint for other open source projects who are considering in-person events as a way to make focused progress.</p>

<h3 id="background">Background</h3>

<p>Since 2019, Homebrew’s maintainers meet annually for the “Annual General Meeting” in Brussels, Belgium. At AGM’s inception, Brussels was deemed a convenient location for the predominantly European team to coincide with the free <a href="https://fosdem.org/">FOSDEM</a> conference. Since then, the global distribution of the core team has expanded.</p>

<p>At the same time, maintenance issues related to performance (the not-so-glamorous tasks of running a mature project that the whole world relies upon) and the remaining pieces of the Trail of Bits Security Audit needed to be completed.</p>

<p>The Project Leadership Team decided to undertake an experiment: our first North American in-person event, thematically focused and with an application process.</p>

<p><img src="/assets/img/blog/homebrew-summer-2024-hackathon/application.png" alt="Hackathon Application" /></p>

<p>Of the 16 applications, 12 participants were accepted.</p>

<h3 id="event-design--impact">Event design + impact</h3>

<p>On the first day of the three-day event, Project Leader Mike McQuaid gave a presentation about how to triage and measure the highest-impact performance-related issues:</p>

<p><img src="/assets/img/blog/homebrew-summer-2024-hackathon/mike.jpg" alt="Mike McQuaid presentation" /></p>

<p>From there, participants tackled high-priority issues, raising pull requests in the dedicated Slack channel to ensure speedy reviews.</p>

<p>Participants worked synchronously and co-located over three days, with standup around 9:30am and departing at 5:00pm. Dinners were optional but provided opportunities for additional discussion:</p>

<p><img src="/assets/img/blog/homebrew-summer-2024-hackathon/dinner.jpg" alt="Group dinner" /></p>

<h3 id="impact">Impact</h3>

<p>Participants made significant progress in the following areas:</p>

<ul>
  <li><strong>Security Issues:</strong> Several contributors focused on fixing security vulnerabilities highlighted in the Trail of Bits Homebrew audits, such as sandboxing improvements, GitHub Actions security, and privilege escalation prevention.</li>
  <li><strong>Performance Enhancements:</strong> Efforts were made to speed up operations like concurrent downloads and repository handling, resulting in significant gains.</li>
</ul>

<h3 id="outcomes">Outcomes</h3>

<p>In addition to the direct impact participants had by shipping code, there’s some evidence that this in-person gathering may have increased the capacity of maintainers in areas of security and performance, which will ultimately benefit the project in the future:</p>

<p>1 = least likely, 5 = most likely</p>

<p><img src="/assets/img/blog/homebrew-summer-2024-hackathon/performance.png" alt="Performance Survey Results" /></p>

<p><img src="/assets/img/blog/homebrew-summer-2024-hackathon/security.png" alt="Security Survey Results" /></p>

<p>While the event seemed successful to us as organizers, we also wanted to hear from the participants themselves as part of our evaluation.</p>

<h3 id="event-evaluation">Event evaluation</h3>

<p>Overall, the hackathon received positive feedback:</p>

<ul>
  <li><strong>Organizational Success</strong>: Participants praised the event’s organization, particularly highlighting Vanessa’s efforts and the conducive environment at IndyHall.</li>
  <li><strong>Productive Collaboration:</strong> The in-person collaboration facilitated rapid progress and effective problem-solving, which participants found highly beneficial. Direct interaction enabled efficient idea exchange and immediate problem resolution. Participants appreciated the social interactions and the chance to work closely with peers they usually communicate with asynchronously.</li>
</ul>

<p>Participants themselves assessed the event as successful:</p>

<p>1 = least successful, 5 = most successful</p>

<p><img src="/assets/img/blog/homebrew-summer-2024-hackathon/evaluation.png" alt="Event Success Results" /></p>

<p>One of the unexpected effects of the rapid progress was a flurry of notifications for the maintainers who were not attending the event:</p>

<p><img src="/assets/img/blog/homebrew-summer-2024-hackathon/notifications.png" alt="Notification Spam" /></p>

<p>Apologies, Eric.</p>

<h3 id="first-person-accounts">First-person accounts</h3>

<p>In their own words, participants identified key benefits:</p>

<p>What in particular made the Hackathon successful or not successful?</p>

<ul>
  <li><em>A fun experience overall, I got to work on aspects of Homebrew that I had never dealt with before and met some wonderful people!</em></li>
  <li><em>The efficient exchange of ideas made it very successful in my opinion. We have probably never had a time when we were able to fix this many issues and make this many improvements to Homebrew within such a short period.</em></li>
  <li><em>There were a lot – we fixed many problems, had various foods, and had a great time together. If I had to choose one, it would still be about the in-person nature of the event. It not only made it much easier to share ideas, but also strengthened the bond between our maintainers.</em></li>
  <li><em>The list of issues from the audit helped to outline the work to be done.</em></li>
  <li><em>The organization - Vanessa did an awesome job - thank you! The security stuff was awesome to get some issues burned down. Philly’s a great city. IndyHall is a great venue. And it was really nice to just be!</em></li>
  <li><em>Two fixed themes for the hackathon kept people focused, IMO</em></li>
  <li><em>The availability of a list of issues to select from and work together with people</em></li>
  <li><em>I feel like a lot was done, but with such vague goals it’s hard to tell if all were met.</em></li>
  <li><em>Full focus, no distractions.</em></li>
  <li><em>I feel that a lot was accomplished in a short amount of time. It was clear everyone came ready to work and the attitude of all maintainers was so upbeat.</em></li>
  <li><em>All being in the same room together was great for productivity because we could easily bounce ideas and discuss with each other without dealing with timezone differences. When I was working on problems that I didn’t understand super well, I could just ask other people for help and get it immediately.</em></li>
</ul>

<h3 id="areas-for-improvement">Areas for Improvement</h3>

<p>As an experiment, we were keen to hear how we might improve the structure to be more effective. Attendees had feedback in the following areas:</p>

<ul>
  <li><strong>Task Clarity</strong>: More structured task lists, especially for performance-related issues, would provide clearer direction.</li>
  <li><strong>Schedule Optimization</strong>: Participants suggested better time management, including more structured breaks and optional cultural activities.</li>
  <li><strong>Constructive Feedback</strong>: Some participants desired a mid-day stand-up for better synchronization and clarity.</li>
</ul>

<p>Overall, the event not only addressed critical technical challenges but also strengthened the bonds within the Homebrew community, setting a positive precedent for future collaborative efforts.</p>]]></content><author><name>mozzadrella</name></author><summary type="html"><![CDATA[The Homebrew Summer 2024 Hackathon brought together maintainers from across the globe to focus on enhancing security and performance aspects of Homebrew. Held July 16 to July 20 and hosted at IndyHall in Philadelphia, the event aimed to address issues identified in last year’s security audit from Trail of Bits, and to optimize the software’s performance. This post will share outcomes from the event, evaluate the effectiveness of the gathering, and serve as a blueprint for other open source projects who are considering in-person events as a way to make focused progress.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">4.3.0</title><link href="https://brew.sh/2024/05/14/homebrew-4.3.0/" rel="alternate" type="text/html" title="4.3.0" /><published>2024-05-14T00:00:00+00:00</published><updated>2024-05-14T00:00:00+00:00</updated><id>https://brew.sh/2024/05/14/homebrew-4.3.0</id><content type="html" xml:base="https://brew.sh/2024/05/14/homebrew-4.3.0/"><![CDATA[<p>Today, I’d like to announce Homebrew 4.3.0.
The most significant changes since 4.2.0 are SBOM support, initial bottle attestation verification, new command analytics and uninstall autoremove by default.</p>

<p>Major changes and deprecations since 4.2.0:</p>

<ul>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/16594"><code class="language-plaintext highlighter-rouge">brew bottle</code> will include a basic SPDX file inside the bottle</a>
<a href="https://github.com/Homebrew/brew/pull/17254">and a more comprehensive one after installation</a>.
This is to provide support for the widely used SBOM format from Homebrew.</p>
  </li>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/17049">If <code class="language-plaintext highlighter-rouge">HOMEBREW_VERIFY_ATTESTATIONS</code> is set, <code class="language-plaintext highlighter-rouge">brew install</code> will verify the bottle artifact’s attestation when pouring bottles using GitHub’s <code class="language-plaintext highlighter-rouge">gh</code> CLI</a>.
This functionality is still in beta. We expect to remove the need for the <code class="language-plaintext highlighter-rouge">gh</code> tool and improve performance before we make this the default behaviour.
This behaviour demonstrates Homebrew’s ongoing commitment to improving our security posture.
Read more in <a href="https://github.com/Homebrew/brew/issues/17019">the tracking issue</a> or in the <a href="https://github.blog/2024-05-02-introducing-artifact-attestations-now-in-public-beta/.">GitHub artifact attestation announcement</a></p>
  </li>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/17261"><code class="language-plaintext highlighter-rouge">HOMEBREW_AUTOREMOVE</code> is the default behaviour meaning that <code class="language-plaintext highlighter-rouge">brew cleanup</code> and <code class="language-plaintext highlighter-rouge">brew uninstall</code> automatically run <code class="language-plaintext highlighter-rouge">brew autoremove</code></a>.
 Disable this by setting <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_AUTOREMOVE</code>.
 This is to improve the default behaviour of <code class="language-plaintext highlighter-rouge">brew uninstall</code> given <code class="language-plaintext highlighter-rouge">brew autoremove</code> is sufficiently reliable.</p>
  </li>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/16847">Homebrew has two new types of analytics</a>: <a href="https://formulae.brew.sh/analytics/brew-command-run/30d/">“Brew Command Run” events</a> and <code class="language-plaintext highlighter-rouge">brew test-bot</code> analytics.
The latter are not working or published yet but will be soon.
These are to help us improve the documentation and prioritisation of issues in Homebrew.</p>
  </li>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/17002">Homebrew/homebrew-cask requires code signing of all casks</a>.
Expect removal of casks that are not code signed from Homebrew/homebrew-cask in future.
This is because code signing is required on Apple Silicon which is used by <a href="https://formulae.brew.sh/analytics/homebrew-os-arch-ci/365d/">a growing majority of all Homebrew users</a>.</p>
  </li>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/16822">Homebrew/homebrew-autoupdate is no longer an official tap and has moved back to DomT4/homebrew-autoupdate.</a></p>
  </li>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/17207">Homebrew/homebrew-cask-versions migrated to Homebrew/homebrew-cask and is archived</a>, following Homebrew/homebrew-cask-drivers.
Migration for Homebrew/homebrew-cask-fonts will happen soon.
This will make it easier to have a more consistent installation, discovery and maintenance experience for all official casks.</p>
  </li>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/17285"><code class="language-plaintext highlighter-rouge">brew info --json=v2</code> output no longer includes the deprecated <code class="language-plaintext highlighter-rouge">oldname</code> key for formulae. Use the <code class="language-plaintext highlighter-rouge">oldnames</code> array instead.</a></p>
  </li>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/17312">As-of Homebrew 4.3.1: Homebrew now provides Portable Ruby 3.3.1 and requires Ruby &gt;=3.3.0.</a></p>
  </li>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/17233">Miscellaneous additional code deprecation/disable/removals.</a></p>
  </li>
</ul>

<p>Other changes since 4.2.0 I’d like to highlight are the following:</p>

<ul>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/17037"><code class="language-plaintext highlighter-rouge">HOMEBREW_FORBIDDEN_CASKS</code>, <code class="language-plaintext highlighter-rouge">HOMEBREW_FORBIDDEN_FORMULAE</code> and <code class="language-plaintext highlighter-rouge">HOMEBREW_FORBIDDEN_TAPS</code> are added to extend the functionality beyond the existing <code class="language-plaintext highlighter-rouge">HOMEBREW_FORBIDDEN_LICENSES</code> to prevent formulae/cask/tap installation</a>.
<a href="https://github.com/Homebrew/brew/pull/17213">Relatedly, <code class="language-plaintext highlighter-rouge">HOMEBREW_ALLOWED_TAPS</code> was added to restrict installation of and from specific taps.</a></p>
  </li>
  <li>
    <p>GitHub Actions will display native warnings/error notices for <a href="https://github.com/Homebrew/brew/pull/16890">deprecations/disables</a> and <a href="https://github.com/Homebrew/brew/pull/17255">warnings/errors</a>.</p>
  </li>
  <li>
    <p>There are
<a href="https://github.com/Homebrew/brew/pull/16752">now</a>
<a href="https://github.com/Homebrew/brew/pull/16743">several</a>
<a href="https://github.com/Homebrew/brew/pull/16960">more</a>
<a href="https://github.com/Homebrew/brew/pull/17006">reasons</a>
why casks are deprecated or disabled.</p>
  </li>
  <li>
    <p>Homebrew’s code documentation on <a href="https://rubydoc.brew.sh">rubydoc.brew.sh</a> previously did not do a good job of differentiating public/private/internal (i.e. only public for Homebrew’s use) APIs.
We <a href="https://github.com/Homebrew/brew/pull/17128">explicitly mark non-private APIs</a>,
<a href="https://github.com/Homebrew/brew/pull/17132">non-public APIs</a>,
<a href="https://github.com/Homebrew/brew/pull/17165">warn about undocumented non-private APIs</a> and
<a href="https://github.com/Homebrew/brew/pull/16831">APIs are private by default</a>.</p>
  </li>
  <li>
    <p>Homebrew’s code documentation on <a href="https://rubydoc.brew.sh">rubydoc.brew.sh</a>
<a href="https://github.com/Homebrew/brew/pull/16906">includes Sorbet data from <code class="language-plaintext highlighter-rouge">.rbi</code> files to provide more types</a>.</p>
  </li>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/17186"><code class="language-plaintext highlighter-rouge">brew command</code></a>,
<a href="https://github.com/Homebrew/brew/pull/17188"><code class="language-plaintext highlighter-rouge">brew shellenv</code> and <code class="language-plaintext highlighter-rouge">brew setup-ruby</code> are significantly faster</a>.</p>
  </li>
  <li><a href="https://github.com/Homebrew/brew/pull/16633">When the GitHub token used by Homebrew requires more scopes, Homebrew will clarify these.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16851"><code class="language-plaintext highlighter-rouge">brew upgrade --overwrite</code> is a new flag similar to <code class="language-plaintext highlighter-rouge">brew install --overwrite</code> and <code class="language-plaintext highlighter-rouge">brew link --overwrite</code> to delete files that already exist in the prefix while linking.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17052"><code class="language-plaintext highlighter-rouge">brew install --display-times</code> also works with casks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16648">Tap migrations can also perform renames.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17001"><code class="language-plaintext highlighter-rouge">HOMEBREW_GITHUB_API_TOKEN</code> supports more types of GitHub tokens.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17102">The <code class="language-plaintext highlighter-rouge">brew desc --eval-all</code> warning only applies to <code class="language-plaintext highlighter-rouge">brew desc --search</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16766"><code class="language-plaintext highlighter-rouge">brew tap</code> no longer shows untapped taps with API support.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16959"><code class="language-plaintext highlighter-rouge">brew upgrade</code> no longer truncates some version numbers.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16916">@BrewTestBot can no longer provide approving reviews on Homebrew/brew.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17081">Formulae can optionally restrict network access in build/test/postinstall sandboxes.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16749"><code class="language-plaintext highlighter-rouge">HOMEBREW_TEMP</code> is used more consistently for temporary files</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16855"><code class="language-plaintext highlighter-rouge">brew update</code> outputs a message whenever it is autoupdating to make clear what is causing the delay. Also, <code class="language-plaintext highlighter-rouge">brew update</code> will attempt to update all taps, not just those on GitHub.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17179"><code class="language-plaintext highlighter-rouge">brew install</code>/<code class="language-plaintext highlighter-rouge">upgrade</code>/<code class="language-plaintext highlighter-rouge">outdated</code> will more intelligently auto-update when specifying formulae/casks from third-party taps.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16750"><code class="language-plaintext highlighter-rouge">brew bump-formula</code> and <code class="language-plaintext highlighter-rouge">brew bump-cask-pr</code> refuse to bump packages that Homebrew’s automation already handles.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16889"><code class="language-plaintext highlighter-rouge">brew install --adopt</code> is more permissive and quicker if the bundle versions match.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16507"><code class="language-plaintext highlighter-rouge">brew uninstall</code> and <code class="language-plaintext highlighter-rouge">brew reinstall</code> will skip cask quit/signal directives.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16826"><code class="language-plaintext highlighter-rouge">brew info --json=v2</code> returns a Cask’s bundle versions in <code class="language-plaintext highlighter-rouge">bundle_version</code> and <code class="language-plaintext highlighter-rouge">bundle_short_version</code> keys.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17076"><code class="language-plaintext highlighter-rouge">brew info</code> and <code class="language-plaintext highlighter-rouge">brew tap-info</code> provide more consistent output indicating if a package or tap is installed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17155"><code class="language-plaintext highlighter-rouge">brew *-sync</code> commands avoid overwriting existing user installations.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16453"><code class="language-plaintext highlighter-rouge">brew *-sync</code> commands will use their respective: <code class="language-plaintext highlighter-rouge">*ENV_ROOT</code> variables.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16385"><code class="language-plaintext highlighter-rouge">brew config</code> provides information about Homebrew/homebrew-core and Homebrew/homebrew-cask taps and JSON API files.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17125"><code class="language-plaintext highlighter-rouge">brew list</code> provides <code class="language-plaintext highlighter-rouge">--installed-on-request</code> and <code class="language-plaintext highlighter-rouge">--installed-as-dependency</code> to list formulae installed on request or as dependencies respectively.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16891"><code class="language-plaintext highlighter-rouge">brew update-reset</code> will reset to the <code class="language-plaintext highlighter-rouge">stable</code> tag when appropriate.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16664"><code class="language-plaintext highlighter-rouge">brew bump*</code> commands no longer allow forcing multiple PRs.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16962"><code class="language-plaintext highlighter-rouge">brew bump*</code> commands limit the number of open PRs to 15.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16515"><code class="language-plaintext highlighter-rouge">brew bump</code> will indicate if formulae should sync with others.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16476"><code class="language-plaintext highlighter-rouge">brew audit</code> will reject Internet Archive Wayback Machine URLs as these formulae are no longer active.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16754"><code class="language-plaintext highlighter-rouge">brew audit</code> will check the license(s) of the specific release rather than the default branch.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16649"><code class="language-plaintext highlighter-rouge">brew update</code> will attempt to parse a GitHub API token from repository URL to better handle private repositories.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/16494">Changes to Homebrew’s Governance were merged after a vote of members before the 2024 AGM.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/17072">The minutes of the 2024 AGM are available.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16734">Homebrew maintainers no longer use forks on official repositories.</a></li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today, I’d like to announce Homebrew 4.3.0. The most significant changes since 4.2.0 are SBOM support, initial bottle attestation verification, new command analytics and uninstall autoremove by default.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">4.2.0</title><link href="https://brew.sh/2023/12/18/homebrew-4.2.0/" rel="alternate" type="text/html" title="4.2.0" /><published>2023-12-18T00:00:00+00:00</published><updated>2023-12-18T00:00:00+00:00</updated><id>https://brew.sh/2023/12/18/homebrew-4.2.0</id><content type="html" xml:base="https://brew.sh/2023/12/18/homebrew-4.2.0/"><![CDATA[<p>Today, I’d like to announce Homebrew 4.2.0.
The most significant changes since 4.1.0 are some major performance upgrades (e.g. using Ruby 3.1, upgrading fewer dependencies), <code class="language-plaintext highlighter-rouge">.env</code> file configuration and macOS Sonoma support.</p>

<p>Major changes and deprecations since 4.1.0:</p>

<ul>
  <li>Homebrew now uses and <a href="https://github.com/Homebrew/brew/pull/16294">requires Ruby 3.1</a>.
If you do not already have a version provided by your system: we provide
<a href="https://github.com/Homebrew/brew/pull/16145">Portable Ruby 3.1.4</a> that will be installed whenever needed on
Linux x86_64 and macOS Apple Silicon and Intel.
This marks the end of Homebrew using the macOS system Ruby.
Pour one out for our old friend <code class="language-plaintext highlighter-rouge">/usr/bin/ruby</code> on macOS 🍻.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/15927">Formula installation and upgrades are less likely to require dependencies to be upgraded.</a>
This should reduce “<code class="language-plaintext highlighter-rouge">brew upgrade foo</code> upgraded everything on my system” problems.</li>
  <li>Homebrew/homebrew-core and Homebrew/homebrew-cask now store formulae/casks in “sharded” subdirectories for improved <code class="language-plaintext highlighter-rouge">git</code> and GitHub performance.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/15787">Homebrew can be configured with <code class="language-plaintext highlighter-rouge">.env</code> files.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16019">Homebrew supports macOS Sonoma.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16224"><code class="language-plaintext highlighter-rouge">OS::Mac</code> and <code class="language-plaintext highlighter-rouge">MacOS</code> usage in formulae on Linux is deprecated.</a>
Please guard all uses in formulae with <code class="language-plaintext highlighter-rouge">if OS.mac?</code> or <code class="language-plaintext highlighter-rouge">if OS.linux?</code> as appropriate.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/16297"><code class="language-plaintext highlighter-rouge">brew audit --new-formula</code> and <code class="language-plaintext highlighter-rouge">--new-cask</code> options are deprecated.</a>
Please use <code class="language-plaintext highlighter-rouge">brew audit --new</code> instead.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/15799"><code class="language-plaintext highlighter-rouge">brew postgresql-upgrade-database</code> is deprecated.</a>
It is not longer needed now that we use versioned <code class="language-plaintext highlighter-rouge">postgresql</code> formulae.
Please use <code class="language-plaintext highlighter-rouge">pg_upgrade</code> directly instead.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/16292">Casks can be, like formulae, deprecated and disabled.</a>
<a href="https://github.com/Homebrew/brew/pull/16352">Relatedly, the use of <code class="language-plaintext highlighter-rouge">discontinued?</code> in casks is deprecated.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15632">Various other deprecations.</a></li>
</ul>

<p>Other changes since 4.1.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/16278">Homebrew detects Apple Silicon M3 processors.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15743">The macOS <code class="language-plaintext highlighter-rouge">.pkg</code> installer is signed (by me!).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15602">Casks support setting multiple download headers</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16328"><code class="language-plaintext highlighter-rouge">brew list --full-names</code> properly output Homebrew organisation names for casks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15705">Homebrew uses Sorbet for runtime error checking.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16184">Homebrew is importing parts of ActiveSupport</a>
<a href="https://github.com/Homebrew/brew/pull/16259">to speed up</a>
<a href="https://github.com/Homebrew/brew/pull/16320">command execution time.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16265">Homebrew supports the <code class="language-plaintext highlighter-rouge">rc</code> shell.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15811">Various sharding fixes</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16078">Downloads from the Homebrew API better support</a>
<a href="https://github.com/Homebrew/brew/pull/15895">if <code class="language-plaintext highlighter-rouge">curl</code> or system certificates are too old.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15922"><code class="language-plaintext highlighter-rouge">brew deps</code> no longer passes options to formulae.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16195"><code class="language-plaintext highlighter-rouge">brew desc</code> has improved handling of<code class="language-plaintext highlighter-rouge">--eval-all</code> with formulae.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15746"><code class="language-plaintext highlighter-rouge">brew install</code> will upgrade already installed casks (to be consistent with formulae.)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16301"><code class="language-plaintext highlighter-rouge">brew pin</code>‘d formulae don’t cause as many warnings or errors.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16147"><code class="language-plaintext highlighter-rouge">brew setup-ruby</code> is a new command to just install Homebrew’s Ruby, if needed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15740"><code class="language-plaintext highlighter-rouge">brew edit</code> will suggest tapping core repositories if untapped.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15755">The macOS <code class="language-plaintext highlighter-rouge">.pkg</code> installer is a documented installation method.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15680">Formula support <code class="language-plaintext highlighter-rouge">ENV.O3</code> again to allow passing <code class="language-plaintext highlighter-rouge">-O3</code> compiler optimisations.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16250"><code class="language-plaintext highlighter-rouge">brew install</code> sets <code class="language-plaintext highlighter-rouge">PIP_CACHE_DIR</code> to cache more Python files when building bottles or from source.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15982"><code class="language-plaintext highlighter-rouge">brew audit</code> checks all relicensed HashiCorp formulae.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15979"><code class="language-plaintext highlighter-rouge">sshpass</code> has (finally?) been removed from the new formula deny list.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16026">Formula’s <code class="language-plaintext highlighter-rouge">service</code> blocks now support multiple sockets.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16062"><code class="language-plaintext highlighter-rouge">bootsnap</code> is used more often, speeding up repeated <code class="language-plaintext highlighter-rouge">brew</code> invocations.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/16161"><code class="language-plaintext highlighter-rouge">XDG_CACHE_HOME</code> is used correctly again for logs and Homebrew’s cache on Linux.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today, I’d like to announce Homebrew 4.2.0. The most significant changes since 4.1.0 are some major performance upgrades (e.g. using Ruby 3.1, upgrading fewer dependencies), .env file configuration and macOS Sonoma support.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">4.1.0</title><link href="https://brew.sh/2023/07/20/homebrew-4.1.0/" rel="alternate" type="text/html" title="4.1.0" /><published>2023-07-20T00:00:00+00:00</published><updated>2023-07-20T00:00:00+00:00</updated><id>https://brew.sh/2023/07/20/homebrew-4.1.0</id><content type="html" xml:base="https://brew.sh/2023/07/20/homebrew-4.1.0/"><![CDATA[<p>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.</p>

<p>Major changes and deprecations since 4.0.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/14733"><code class="language-plaintext highlighter-rouge">brew</code> downloads of formula/cask APIs use a signed API endpoint with client signature verification.</a></li>
  <li>We’ve made many improvements around the new 4.0.0 feature of using JSON files downloaded from <a href="https://formulae.brew.sh">formulae.brew.sh</a> for package installation rather than local homebrew/core and homebrew/cask taps.
    <ul>
      <li>If you had previously set <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_AUTO_UPDATE</code>, <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_INSTALL_FROM_API</code> or <code class="language-plaintext highlighter-rouge">HOMEBREW_AUTO_UPDATE_SECS</code> to work around bugs or annoyances: please consider unsetting these and tweaking the values based on the new behaviour. Under some circumstances, <a href="https://github.com/Homebrew/brew/pull/14592">you may see a one-time message nudging you do to this</a>.</li>
    </ul>
  </li>
  <li><a href="https://github.com/Homebrew/brew/pull/15341"><code class="language-plaintext highlighter-rouge">brew doctor</code> warns if Homebrew/homebrew-core or Homebrew/homebrew-cask seem to be tapped unnecessarily so you can <code class="language-plaintext highlighter-rouge">brew untap</code> them to save time and disk space.</a></li>
  <li><a href="https://formulae.brew.sh">formulae.brew.sh</a> provides <a href="https://formulae.brew.sh/analytics/">new analytics for Homebrew Developer Configuration, OS/Architecture/CI, Homebrew Prefixes and Homebrew Versions</a>. This is based on existing data that was already gathered.</li>
  <li>We destroyed (and did not migrate/back up) all of Homebrew’s Google Analytics data on 2023-06-16 and <a href="https://github.com/Homebrew/brew/pull/15550">all Google Analytics code has been removed.</a></li>
  <li>Homebrew’s analytics are only sent to our InfluxDB instance hosted in the EU.
    <ul>
      <li>If you had previously set <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_ANALYTICS</code> 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, <a href="https://github.com/Homebrew/brew/pull/14592">you may see a one-time message nudging you do to this</a>.</li>
    </ul>
  </li>
  <li><a href="https://docs.brew.sh/Analytics">Homebrew’s analytics documentation</a> <a href="https://github.com/Homebrew/brew/pull/14672">is updated with the new InfluxDB, post-Google Analytics reality.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15587">Setting <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_ENV_FILTERING</code> no longer fails but is silently a no-op.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15050">Homebrew’s deprecated Ubuntu 16.04 Docker image is no longer being built or updated.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15535">Homebrew/homebrew-cask-drivers is deprecated and active casks were moved to Homebrew/homebrew-cask.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/14972"><code class="language-plaintext highlighter-rouge">brew rbenv-sync</code>, <code class="language-plaintext highlighter-rouge">brew nodenv-sync</code></a> and <a href="https://github.com/Homebrew/brew/pull/15507"><code class="language-plaintext highlighter-rouge">brew pyenv-sync</code></a> commands will automatically sync Homebrew-installed Ruby, NodeJS and Python versions with <code class="language-plaintext highlighter-rouge">rbenv</code>, <code class="language-plaintext highlighter-rouge">nodenv</code> and <code class="language-plaintext highlighter-rouge">pyenv</code> respectively to avoid needing to build these from source.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/15522">Homebrew has laid the groundwork for later macOS Sonoma (14) support.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/14928">Various</a> <a href="https://github.com/Homebrew/brew/pull/15256">improvements</a> <a href="https://github.com/Homebrew/brew/pull/14778">sped</a> up all Ruby <code class="language-plaintext highlighter-rouge">brew</code> command performance.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/15579"><code class="language-plaintext highlighter-rouge">brew fetch</code>ing bottles is significantly faster.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15578"><code class="language-plaintext highlighter-rouge">brew install</code> with no <code class="language-plaintext highlighter-rouge">post_install</code> is significantly faster.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15632">Various other minor release deprecations and disables</a>.</li>
</ul>

<p>Other changes since 4.0.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/14943"><code class="language-plaintext highlighter-rouge">brew</code> commands will only auto-update from the API for commands that auto-updated from Git pre-4.0.0.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/14802"><code class="language-plaintext highlighter-rouge">brew update</code> reports new/deleted formulae/casks when installing from the API.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15625"><code class="language-plaintext highlighter-rouge">brew update</code> will automatically update Homebrew/homebrew-core and Homebrew/homebrew-cask local taps for users who have run developer commands.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15655"><code class="language-plaintext highlighter-rouge">brew install</code> build failures only recommend open issues rather than pull requests.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15304"><code class="language-plaintext highlighter-rouge">brew install</code> will use cached bottles if the request to check if bottles are up-to-date fails.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15613"><code class="language-plaintext highlighter-rouge">brew install</code> sets <code class="language-plaintext highlighter-rouge">OPENSSL_NO_VENDOR</code> to use Homebrew’s relevant <code class="language-plaintext highlighter-rouge">openssl*</code> formula rather than the vendored OpenSSL from the <code class="language-plaintext highlighter-rouge">openssl</code> crate.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15042"><code class="language-plaintext highlighter-rouge">brew install --skip-post-install</code></a> will skip post-installation steps when installing a formula.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/15209"><code class="language-plaintext highlighter-rouge">brew search</code> no longer searches remotely instead using Homebrew’s new JSON API.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15660"><code class="language-plaintext highlighter-rouge">brew cleanup --quiet</code> omits outputting some warnings.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15445"><code class="language-plaintext highlighter-rouge">brew deps --missing</code> provides the inverse output to <code class="language-plaintext highlighter-rouge">brew deps --installed</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15225"><code class="language-plaintext highlighter-rouge">brew fetch</code>, <code class="language-plaintext highlighter-rouge">brew --cache</code>, <code class="language-plaintext highlighter-rouge">brew audit</code></a> and <a href="https://github.com/Homebrew/brew/pull/15470"><code class="language-plaintext highlighter-rouge">brew readall</code></a> has <code class="language-plaintext highlighter-rouge">--os</code> and <code class="language-plaintext highlighter-rouge">--arch</code> flags to simulate different operating systems and CPU architectures.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/15363"><code class="language-plaintext highlighter-rouge">brew shellenv</code> accepts a shell name parameter for when auto-detection is unreliable.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15580"><code class="language-plaintext highlighter-rouge">brew</code> commands auto-update less frequently for users who have run Homebrew developer commands.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/14747"><code class="language-plaintext highlighter-rouge">brew audit</code> verifies the correct signing of <code class="language-plaintext highlighter-rouge">.pkg</code> installers.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15563"><code class="language-plaintext highlighter-rouge">brew bump</code> and <code class="language-plaintext highlighter-rouge">brew bump-formula-pr</code> will update a local Homebrew/homebrew-core tap (if present) and <code class="language-plaintext highlighter-rouge">brew bump</code> and <code class="language-plaintext highlighter-rouge">brew bump-cask-pr</code> will do the same for Homebrew/homebrew-cask.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15564"><code class="language-plaintext highlighter-rouge">HOMEBREW_NO_INSTALL_FROM_API</code> is set automatically for commands that need it.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15176">A <code class="language-plaintext highlighter-rouge">cask_renames.json</code> file in taps allows casks to be renamed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15656">The default Linux installation location (<code class="language-plaintext highlighter-rouge">/home/linuxbrew/.linuxbrew</code>) works as expected on Fedora Silverblue and other configurations where <code class="language-plaintext highlighter-rouge">/home</code> is symlinked elsewhere.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15485">Homebrew uses (and prioritises) GitHub tokens stored by the <code class="language-plaintext highlighter-rouge">gh</code> CLI (when available).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15681">Homebrew avoids using the macOS <code class="language-plaintext highlighter-rouge">texinfo</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15241">GitHub Packages bottle manifests contain the size of the bottle</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/15544">Homebrew will set <code class="language-plaintext highlighter-rouge">RUSTFLAGS</code> to the appropriate target CPU on installation.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15271">Homebrew can build with GCC 13.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15670">Homebrew’s analytics better capture non-Debian-based distribution versions.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/14783">Preliminary support for loading formulae/casks from subdirectories (to later “shard” Homebrew/homebrew-core and Homebrew/homebrew-cask Formula/Cask directories for performance reasons.)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/14686">Homebrew is more vocal that building from source is unsupported.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/15161">Various display issues have been fixed with Homebrew’s Ruby API documentation</a> at <a href="https://rubydoc.brew.sh">rubydoc.brew.sh</a>.</li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[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.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">4.0.0</title><link href="https://brew.sh/2023/02/16/homebrew-4.0.0/" rel="alternate" type="text/html" title="4.0.0" /><published>2023-02-16T00:00:00+00:00</published><updated>2023-02-16T00:00:00+00:00</updated><id>https://brew.sh/2023/02/16/homebrew-4.0.0</id><content type="html" xml:base="https://brew.sh/2023/02/16/homebrew-4.0.0/"><![CDATA[<p>Today, I’d like to announce Homebrew 4.0.0. The most significant change since 3.6.0 enables significantly faster Homebrew-maintained tap updates by migrating from Git-cloned taps to JSON downloads.</p>

<p>Major changes and deprecations since 3.6.0:</p>

<ul>
  <li>Using JSON files downloaded from <a href="https://formulae.brew.sh">formulae.brew.sh</a> for package installation rather than local homebrew/core and homebrew/cask taps.
    <ul>
      <li><strong>Please note: this is the largest change we have made to our update process since we split Homebrew/brew and Homebrew/homebrew-core repositories. Please bear with us, there may be a few bumps</strong>.</li>
      <li>If you had previously set <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_AUTO_UPDATE</code>, <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_INSTALL_FROM_API</code> or <code class="language-plaintext highlighter-rouge">HOMEBREW_AUTO_UPDATE_SECS</code> to work around bugs or annoyances: please consider unsetting these and tweaking the values based on the new behaviour.</li>
      <li>Unless you are developing formulae or casks, you can <code class="language-plaintext highlighter-rouge">brew untap homebrew/core</code> and <code class="language-plaintext highlighter-rouge">brew untap homebrew/cask</code> to save some space.</li>
      <li><a href="https://github.com/Homebrew/brew/pull/14376"><code class="language-plaintext highlighter-rouge">brew update</code> will now be run automatically less often (every 24 hours rather than every 5 minutes)</a> and these auto-updates will be much faster as they no longer need to perform the slow <code class="language-plaintext highlighter-rouge">git fetch</code> of the huge homebrew/core and homebrew/cask taps’ Git repositories.</li>
      <li><a href="https://github.com/Homebrew/brew/pull/14412">This is now the default behaviour so the <code class="language-plaintext highlighter-rouge">HOMEBREW_INSTALL_FROM_API</code> variable has been removed and is a no-op</a>.</li>
      <li>If you wish to opt-out of this behaviour change, you can <a href="https://github.com/Homebrew/brew/pull/14375"><code class="language-plaintext highlighter-rouge">export HOMEBREW_NO_INSTALL_FROM_API=1</code></a>. Please investigate <a href="https://github.com/Homebrew/brew/pull/14589"><code class="language-plaintext highlighter-rouge">HOMEBREW_API_AUTO_UPDATE_SECS</code></a> first.</li>
      <li>This behaviour is automatically disabled when using <a href="https://github.com/Homebrew/brew/pull/14524">certain commands</a> or in configurations that <a href="https://github.com/Homebrew/brew/pull/14480">mostly build from source</a>.</li>
      <li><a href="https://github.com/Homebrew/brew/pull/14494"><code class="language-plaintext highlighter-rouge">HOMEBREW_API_DOMAIN</code> can be set to use mirrors for</a> <a href="https://formulae.brew.sh">formulae.brew.sh</a>.</li>
    </ul>
  </li>
  <li>Homebrew’s analytics are now sent both to Google Analytics and our new InfluxDB instance hosted in the EU.
    <ul>
      <li>Our InfluxDB instance does not store either anonymised IP addresses or an anonymised user token so it has additional privacy benefits over Google Analytics.</li>
      <li>If you had previously set <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_ANALYTICS</code> because you didn’t like Google Analytics and/or data being sent to the USA: please consider unsetting this and setting <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_GOOGLE_ANALYTICS</code> instead, allowing analytics data to be sent to our new InfluxDB host.</li>
      <li>We expect to migrate entirely from Google Analytics to our InfluxDB instance in ~100 days at which point we will remove all Google Analytics and destroy all existing data. <em>Note: this occurred on 2023-06-16!</em></li>
    </ul>
  </li>
  <li><a href="https://github.com/Homebrew/brew/pull/14265">macOS <code class="language-plaintext highlighter-rouge">.pkg</code> files are generated for each Homebrew release</a>. You can help us test this beta feature by <a href="https://github.com/Homebrew/brew/actions/workflows/build-pkg.yml?query=event%3Arelease">downloading the generated package artifact from the relevant GitHub Actions release events</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13819">The <code class="language-plaintext highlighter-rouge">homebrew/ubuntu16.04:master</code> image has been deprecated</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14382">Various major release deprecations and disables</a>.</li>
</ul>

<p>Other changes since 3.6.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/14338"><code class="language-plaintext highlighter-rouge">brew test</code> sets <code class="language-plaintext highlighter-rouge">PYTHONDONTWRITEBYTECODE</code> to improve performance</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14027">VSCode devcontainers are available in the Homebrew/brew repository for use with e.g. GitHub Codespaces</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14033"><code class="language-plaintext highlighter-rouge">brew install --adopt</code> allows taking ownership of existing installed cask artifacts</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13706"><code class="language-plaintext highlighter-rouge">brew install --dry-run</code> allows viewing what <code class="language-plaintext highlighter-rouge">brew install</code> will do before it is run</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13844"><code class="language-plaintext highlighter-rouge">brew docs</code> opens</a> <a href="https://docs.brew.sh">docs.brew.sh</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14206"><code class="language-plaintext highlighter-rouge">--cask</code> is never required on Linux</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14371"><code class="language-plaintext highlighter-rouge">service do</code> blocks allow defining a <code class="language-plaintext highlighter-rouge">run</code> command per platform</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14239"><code class="language-plaintext highlighter-rouge">brew install</code> uses the local cache while installing dependencies from <code class="language-plaintext highlighter-rouge">pip</code></a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14300"><code class="language-plaintext highlighter-rouge">brew doctor</code> no longer complains about BitDefender</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14240"><code class="language-plaintext highlighter-rouge">brew install</code> will also suggest casks rather than just formulae when it fails to find the requested package</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13990"><code class="language-plaintext highlighter-rouge">brew readall</code> simulates all architecture and OS configurations for better reliability</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14035"><code class="language-plaintext highlighter-rouge">git</code> partial clones with sparse checkouts are supported when downloading using <code class="language-plaintext highlighter-rouge">git</code></a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13882">GCC 12 is used for runtime libraries to match Ubuntu 22.04, where we build our bottles</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14515"><code class="language-plaintext highlighter-rouge">brew doctor --quiet</code> prints no output on success</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14523"><code class="language-plaintext highlighter-rouge">brew gist-logs</code> better detects missing permissions</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14349"><code class="language-plaintext highlighter-rouge">brew update</code> uses the GitHub API token if available to avoid hitting rate limits</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14000">We have discontinued WSL 1 support and recommend WSL 2 instead</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13875"><code class="language-plaintext highlighter-rouge">brew fetch</code> and <code class="language-plaintext highlighter-rouge">brew install</code> can automatically determine mirrors for <code class="language-plaintext highlighter-rouge">glibc-bootstrap</code> and PyPI resources</a>.</li>
</ul>

<p>Finally:</p>

<ul>
  <li>Homebrew is now on Mastodon: <a href="https://fosstodon.org/@homebrew">@homebrew@fosstodon.org</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14482">Our governance documents have been updated as part of our AGM</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/14132">We have switched from HackerOne</a> to <a href="https://github.com/Homebrew/brew/security/advisories/new">GitHub for vulnerability reporting</a>.</li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
  <li>Homebrew had our first stand at FOSDEM 2023 in which the Project Leader was forced to wear a stupid beer suit.</li>
</ul>

<p><img src="/assets/img/blog/fosdem_2023.jpg" alt="FOSDEM 2023" /></p>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today, I’d like to announce Homebrew 4.0.0. The most significant change since 3.6.0 enables significantly faster Homebrew-maintained tap updates by migrating from Git-cloned taps to JSON downloads.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Maintainer Projects</title><link href="https://brew.sh/2022/09/15/homebrew-maintainer-projects-update/" rel="alternate" type="text/html" title="Maintainer Projects" /><published>2022-09-15T00:00:00+00:00</published><updated>2022-09-15T00:00:00+00:00</updated><id>https://brew.sh/2022/09/15/homebrew-maintainer-projects-update</id><content type="html" xml:base="https://brew.sh/2022/09/15/homebrew-maintainer-projects-update/"><![CDATA[<p>Homebrew’s Project Leadership Committee has green-lit two paid projects by our maintainers this year and since both have hit some milestones recently we’d love to give you, our sponsors and users, an update on their progress.</p>

<h2 id="api-project">API Project</h2>

<p>Since version <a href="/2022/09/07/homebrew-3.6.0/">3.6.0</a> of Homebrew, we are now choosing to advertise the <code class="language-plaintext highlighter-rouge">HOMEBREW_INSTALL_FROM_API</code> environment variable to the general public. A lot of work was done by @Rylan12 to make the experience more stable and the API install method is bound to bring a big performance improvement to those who are willing to give it a try.</p>

<p>The goal of the <code class="language-plaintext highlighter-rouge">HOMEBREW_INSTALL_FROM_API</code> environment variable is to allow Homebrew users to install formulae and casks without needing to have Homebrew/homebrew-core and/or Homebrew/homebrew-cask tapped. This is intended to make <code class="language-plaintext highlighter-rouge">brew update</code> much faster and required less often and also to save space on the user’s machine.</p>

<p>Now that the variable is public, we’re going into a period of bug hunting. When its users stop finding problems and edge-cases for the API to handle, we will be making this the default for all users so everyone can enjoy a fast Homebrew experience.</p>

<h2 id="ephemeral-ci-runners">Ephemeral CI Runners</h2>

<p>Since July 18th the Intel-based CI runners are now ephemeral and the foundation has been laid for applying the same features to Apple Silicon based runners. While Homebrew users might not notice more than sleeping a little easier thanks to bottling runs being more reliable, I can tell you that the maintainers are very happy with this improvement and the accompanying dashboard.</p>

<p>Currently our runners persist indefinitely, which has some distinct downsides:</p>

<ul>
  <li>Security is worse since a compromised runner will keep working indefinitely</li>
  <li>Keeping them maintained is harder</li>
  <li>We cannot dynamically scale up/down usage per-OS</li>
</ul>

<p>The goal was to replace all our persistent runners with ephemeral variants, starting with the Apple Silicon runners. Unfortunately we ran into some bugs in the Orka platform which MacStadium provides for us, so that initial goal had to be shifted to Intel runners first.</p>

<p>Work is ongoing to enable the Apple Silicon based runners as ephemeral runners to close this project from the macOS side. Once that is done the stretch goal for this project is to make our self-hosted Linux runners ephemeral too. Most of our Linux CI already uses ephemeral GitHub-hosted runners.</p>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a> to make projects like these possible. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>SMillerDev</name></author><summary type="html"><![CDATA[Homebrew’s Project Leadership Committee has green-lit two paid projects by our maintainers this year and since both have hit some milestones recently we’d love to give you, our sponsors and users, an update on their progress.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">3.6.0</title><link href="https://brew.sh/2022/09/07/homebrew-3.6.0/" rel="alternate" type="text/html" title="3.6.0" /><published>2022-09-07T00:00:00+00:00</published><updated>2022-09-07T00:00:00+00:00</updated><id>https://brew.sh/2022/09/07/homebrew-3.6.0</id><content type="html" xml:base="https://brew.sh/2022/09/07/homebrew-3.6.0/"><![CDATA[<p>Today I’d like to announce Homebrew 3.6.0. The most significant changes since 3.5.0 are preliminary macOS Ventura support, the need for <code class="language-plaintext highlighter-rouge">--eval-all</code>/<code class="language-plaintext highlighter-rouge">HOMEBREW_EVAL_ALL</code> and a migration to Ubuntu 22.04 as our CI platform.</p>

<p>Major changes and deprecations since 3.5.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/13390">Homebrew has preliminary macOS 13 (Ventura) support.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/13790">Homebrew requires <code class="language-plaintext highlighter-rouge">--eval-all</code> to be passed or <code class="language-plaintext highlighter-rouge">HOMEBREW_EVAL_ALL</code> to be set to improve security in cases where it may evaluate formulae or casks that have not been installed, may not be trusted and will execute arbitrary Ruby code</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13733">Homebrew’s CI uses Ubuntu 22.04 to e.g. build bottles (binary packages).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/13595"><code class="language-plaintext highlighter-rouge">brew</code> no longer respects <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_ENV_FILTERING</code></a>. Environment variables needed in formulae or casks need to have a <code class="language-plaintext highlighter-rouge">HOMEBREW_</code> prefix to be passed through and then reassigned e.g. <code class="language-plaintext highlighter-rouge">ENV["FOO"] = ENV["HOMEBREW_FOO"]</code>.</li>
  <li><code class="language-plaintext highlighter-rouge">brew linkage</code> detects <a href="https://github.com/Homebrew/brew/pull/13741">deprecated linkage to <code class="language-plaintext highlighter-rouge">libnsl.so.1</code>.</a> and <a href="https://github.com/Homebrew/brew/pull/13740">disabled linkage to <code class="language-plaintext highlighter-rouge">libcrypt.so.1</code>.</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13743">Other miscellaneous disabled code has been removed.</a></li>
</ul>

<p>Other changes since 3.5.0 I’d like to highlight are the following:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">HOMEBREW_INSTALL_FROM_API</code> is an opt-in flag added in 3.3.0 to install formulae and casks in homebrew/core and homebrew/cask taps using Homebrew’s API instead of needing the (large, slow) local checkouts of these repositories. <code class="language-plaintext highlighter-rouge">HOMEBREW_INSTALL_FROM_API</code> has had <a href="https://github.com/Homebrew/brew/pull/13439">many</a> <a href="https://github.com/Homebrew/brew/pull/13440">improvements</a> since 3.5.0. We encourage you to try setting it and <a href="https://github.com/Homebrew/brew/issues/new/choose">reporting any issues</a> you experience.</li>
  <li><a href="https://github.com/Homebrew/homebrew-core/pull/107726">The <code class="language-plaintext highlighter-rouge">postgresql</code> formula was renamed to <code class="language-plaintext highlighter-rouge">postgresql@14</code> to avoid repeated breakage on major/minor version upgrades.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/13423"><code class="language-plaintext highlighter-rouge">HOMEBREW_CURL_PATH</code> and <code class="language-plaintext highlighter-rouge">HOMEBREW_GIT_PATH</code> are documented and supported for setting the location of <code class="language-plaintext highlighter-rouge">curl</code> or <code class="language-plaintext highlighter-rouge">git</code> on Linux. On macOS, the system versions will still always be used instead.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/13258"><code class="language-plaintext highlighter-rouge">HOMEBREW_ARTIFACT_DOMAIN</code> only takes effect on bottles and not e.g. casks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/13569">Periodic <code class="language-plaintext highlighter-rouge">brew cleanup</code> is run after installing all packages rather than after the first package is installed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/13608"><code class="language-plaintext highlighter-rouge">brew install --debug-symbols</code> is available to build and retain debug symbols on macOS. This does not yet work on Linux but we’ll review a pull request to add it.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/13577"><code class="language-plaintext highlighter-rouge">brew install</code> automatically installs <code class="language-plaintext highlighter-rouge">glibc</code> or <code class="language-plaintext highlighter-rouge">gcc</code> if they are too old.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/13532"><code class="language-plaintext highlighter-rouge">brew cleanup</code> and <code class="language-plaintext highlighter-rouge">brew uninstall</code> automatically run <code class="language-plaintext highlighter-rouge">brew autoremove</code> if <code class="language-plaintext highlighter-rouge">HOMEBREW_AUTOREMOVE</code> is set.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/13807"><code class="language-plaintext highlighter-rouge">brew fetch --retry</code> uses an exponential backoff.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/13777"><code class="language-plaintext highlighter-rouge">brew deps</code> returns failing exit code when circular dependencies are detected.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/13589"><code class="language-plaintext highlighter-rouge">brew info --json</code> includes a <code class="language-plaintext highlighter-rouge">variations</code> key. This provides information about how a formula or cask varies on OSs and CPU architectures other than the one it is being run on</a>. Various additional DSLs e.g. <a href="https://github.com/Homebrew/brew/pull/13451"><code class="language-plaintext highlighter-rouge">on_system</code></a> and <a href="https://github.com/Homebrew/brew/pull/13657"><code class="language-plaintext highlighter-rouge">arch</code></a> have been added to formulae or casks to facilitate this.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13536">A new <code class="language-plaintext highlighter-rouge">Formula</code> DSL is available to more easily generate completions.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 3.6.0. The most significant changes since 3.5.0 are preliminary macOS Ventura support, the need for --eval-all/HOMEBREW_EVAL_ALL and a migration to Ubuntu 22.04 as our CI platform.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">3.5.0</title><link href="https://brew.sh/2022/06/06/homebrew-3.5.0/" rel="alternate" type="text/html" title="3.5.0" /><published>2022-06-06T00:00:00+00:00</published><updated>2022-06-06T00:00:00+00:00</updated><id>https://brew.sh/2022/06/06/homebrew-3.5.0</id><content type="html" xml:base="https://brew.sh/2022/06/06/homebrew-3.5.0/"><![CDATA[<p>Today I’d like to announce Homebrew 3.5.0. The most significant changes since 3.4.0 are improved <code class="language-plaintext highlighter-rouge">brew update</code> behaviour and Homebrew (on macOS) requiring at least OS X El Capitan (10.11).</p>

<p>Major changes and deprecations since 3.4.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/13299"><code class="language-plaintext highlighter-rouge">brew update</code> now defaults to <code class="language-plaintext highlighter-rouge">HOMEBREW_UPDATE_REPORT_ONLY_INSTALLED</code> behaviour, showing only information on installed formulae, so <code class="language-plaintext highlighter-rouge">HOMEBREW_UPDATE_REPORT_ALL_FORMULAE</code> was added instead</a>. This improves performance and usability of <code class="language-plaintext highlighter-rouge">brew update</code>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13375"><code class="language-plaintext highlighter-rouge">brew update</code> lists “Outdated” rather than “Updated” formulae by default</a>. It was already calculating which formulae were outdated and this information is more useful than showing which formulae were changed and is significantly faster than doing version comparisons.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13378">Homebrew (on macOS) now requires at least OS X El Capitan (10.11) to run rather than OS X Yosemite (10.10)</a>. This is because we have released <a href="https://github.com/Homebrew/brew/pull/13376">Portable Ruby 2.6.8_1</a> using our new pipeline and have been unable to successfully virtualise Yosemite.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13347">Various code disables and deletions for 3.5.0</a>.</li>
</ul>

<p>Other changes since 3.4.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/13158"><code class="language-plaintext highlighter-rouge">brew tests --changed</code> runs tests only on files that have been changed from <code class="language-plaintext highlighter-rouge">master</code></a> (including <a href="https://github.com/Homebrew/brew/pull/13237">test files</a>).</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13253"><code class="language-plaintext highlighter-rouge">brew tap --no-force-auto-update</code> removes the <code class="language-plaintext highlighter-rouge">--force-auto-update</code> flag for taps</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13273"><code class="language-plaintext highlighter-rouge">brew</code> no longer filters the <code class="language-plaintext highlighter-rouge">TERMINFO_DIRS</code> environment variable</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13245"><code class="language-plaintext highlighter-rouge">brew update --quiet</code> makes <code class="language-plaintext highlighter-rouge">brew update</code> produce less output</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13289"><code class="language-plaintext highlighter-rouge">brew uninstall</code>, <code class="language-plaintext highlighter-rouge">brew reinstall</code>, etc. are no longer blocked by unreadable casks</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13275"><code class="language-plaintext highlighter-rouge">brew upgrade</code> only upgrades <code class="language-plaintext highlighter-rouge">version :latest</code> casks when <code class="language-plaintext highlighter-rouge">--greedy</code> or <code class="language-plaintext highlighter-rouge">--greedy-latest</code> are passed and the cask has been updated</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/12970"><code class="language-plaintext highlighter-rouge">brew cleanup</code> shows the total disk space freed</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13313"><code class="language-plaintext highlighter-rouge">HOMEBREW_DOCKER_REGISTRY_TOKEN</code> and <code class="language-plaintext highlighter-rouge">HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN</code> can be used for GitHub Packages authentication without <code class="language-plaintext highlighter-rouge">HOMEBREW_ARTIFACT_DOMAIN</code></a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13227"><code class="language-plaintext highlighter-rouge">HOMEBREW_ARTIFACT_DOMAIN</code>’s description in <code class="language-plaintext highlighter-rouge">man brew</code> has been clarified</a>.</li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/12532">Homebrew left the SFC</a> and has <a href="https://opencollective.com/homebrew">moved to OpenCollective</a>. This allows more permissive spending of our funds in exchange for our incomings/outgoing being public.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/13073">Homebrew’s governance documentation was updated, following our April 2022 AGM’s vote on this. This notes Homebrew’s move to OpenCollective, PLC quorum and member changes and clarifies responsibilities for PL, PLC and TLC</a>.</li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 3.5.0. The most significant changes since 3.4.0 are improved brew update behaviour and Homebrew (on macOS) requiring at least OS X El Capitan (10.11).]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Security Audit</title><link href="https://brew.sh/2022/05/17/homebrew-security-audit/" rel="alternate" type="text/html" title="Security Audit" /><published>2022-05-17T00:00:00+00:00</published><updated>2022-05-17T00:00:00+00:00</updated><id>https://brew.sh/2022/05/17/homebrew-security-audit</id><content type="html" xml:base="https://brew.sh/2022/05/17/homebrew-security-audit/"><![CDATA[<p>Homebrew has had a paid security audit and addressed all flagged issues. This blog post has been a long time coming; apologies for the delay.</p>

<p>Here’s an overview of the timescale:</p>

<ul>
  <li>11th June 2020: The <a href="https://www.mozilla.org/en-US/moss/">Mozilla Open Source program (MOSS)</a> reaches out to Homebrew as we were nominated for a paid, sponsored security audit by <a href="https://radicallyopensecurity.com/">Radically Open Security (ROS)</a></li>
  <li>11th June 2020: Homebrew meets with ROS and provides the main areas of focus:
    <ul>
      <li>macOS sandbox escapes</li>
      <li>CI/development workflow issues (e.g. ways to exploit our CI infrastructure or deploy changes that haven’t been reviewed)</li>
      <li>Bad uses/setting/checking of Unix permissions</li>
      <li>Formulae being able to modify the <a href="https://github.com/Homebrew/brew">Homebrew/brew</a> source process</li>
    </ul>
  </li>
  <li>18th June 2020: ROS meets with Homebrew to further discuss the audit, scope and process and provide access to ROS systems (e.g. GitLab, RocketChat)</li>
  <li>23rd September 2020: MOSS and ROS confirm contract</li>
  <li>14th October 2020: ROS begins security audit</li>
  <li>October 2020 - March 2021: ROS communicates issues to Homebrew which are resolved, e.g. with <a href="https://github.com/Homebrew/brew/pull/10970">https://github.com/Homebrew/brew/pull/10970</a> and <a href="https://github.com/Homebrew/brew/pull/10972">https://github.com/Homebrew/brew/pull/10972</a></li>
  <li>31st March 2021: ROS provides <a href="/assets/pdf/security_audit_report.pdf">final security audit report PDF to Homebrew</a></li>
  <li>21st April 2021: Homebrew provides a related <a href="https://brew.sh/2021/04/21/security-incident-disclosure/">security incident disclosure</a> based on follow-up work</li>
  <li>16 August 2022: Homebrew adds <a href="/assets/pdf/security_audit_report.pdf">final security audit report PDF</a> to this page</li>
</ul>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Homebrew has had a paid security audit and addressed all flagged issues. This blog post has been a long time coming; apologies for the delay.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">3.4.0</title><link href="https://brew.sh/2022/02/28/homebrew-3.4.0/" rel="alternate" type="text/html" title="3.4.0" /><published>2022-02-28T00:00:00+00:00</published><updated>2022-02-28T00:00:00+00:00</updated><id>https://brew.sh/2022/02/28/homebrew-3.4.0</id><content type="html" xml:base="https://brew.sh/2022/02/28/homebrew-3.4.0/"><![CDATA[<p>Today I’d like to announce Homebrew 3.4.0. The most significant changes since 3.3.0 are <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_ENV_HINTS</code> to hide configuration suggestions, <code class="language-plaintext highlighter-rouge">brew services</code> supported on <code class="language-plaintext highlighter-rouge">systemd</code> on Linux, <code class="language-plaintext highlighter-rouge">brew install --overwrite</code> and Homebrew beginning the process to leave the SFC.</p>

<p>Major changes and deprecations since 3.3.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/12477"><code class="language-plaintext highlighter-rouge">brew</code> will hint at configuration variables to tweak behaviour unless <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_ENV_HINTS</code> is set.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11910"><code class="language-plaintext highlighter-rouge">brew services</code> is supported and recommended on Linux when using <code class="language-plaintext highlighter-rouge">systemd</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12691"><code class="language-plaintext highlighter-rouge">brew install --overwrite</code> ensures the <code class="language-plaintext highlighter-rouge">brew link</code> after <code class="language-plaintext highlighter-rouge">brew install</code> is always run with <code class="language-plaintext highlighter-rouge">--overwrite</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12911"><code class="language-plaintext highlighter-rouge">Formula.each</code>, <code class="language-plaintext highlighter-rouge">Cask::Cask.each</code> and other uses of <code class="language-plaintext highlighter-rouge">Enumerable</code> methods are deprecated because reading all formulae/casks on the system unnecessarily runs untrusted code.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12913">Other code deprecations, disables and deletions.</a></li>
</ul>

<p>Other changes since 3.3.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/12673"><code class="language-plaintext highlighter-rouge">HOMEBREW_DOCKER_REGISTRY_TOKEN_BASIC</code> allows authenticating with a Docker register proxying GitHub Packages using a basic authentication token.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12708"><code class="language-plaintext highlighter-rouge">brew cask</code> produces a more helpful error message pointing to <code class="language-plaintext highlighter-rouge">brew --cask</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12576"><code class="language-plaintext highlighter-rouge">HOMEBREW_DOCKER_REGISTRY_TOKEN</code> is used when installing Homebrew’s Portable Ruby.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12423"><code class="language-plaintext highlighter-rouge">brew deps --graph</code> and <code class="language-plaintext highlighter-rouge">--dot</code> output dependencies as a directed graph in text or DOT formats.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12702"><code class="language-plaintext highlighter-rouge">brew bump --open-pr</code> opens a pull request for a new version if there is none already open. This is used by Homebrew’s automation to automatically “bump” some outdated formulae.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12453"><code class="language-plaintext highlighter-rouge">brew extract</code> automatically removes <code class="language-plaintext highlighter-rouge">bottle</code> blocks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12391"><code class="language-plaintext highlighter-rouge">brew style --fix</code> automatically fixes <code class="language-plaintext highlighter-rouge">shellcheck</code> failures.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12487"><code class="language-plaintext highlighter-rouge">brew upgrade</code> skips upgrading unbottled dependents of upgraded formulae.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12484"><code class="language-plaintext highlighter-rouge">brew upgrade</code> skips checking dependents of homebrew-core versioned formulae.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/12532">Homebrew has begun the process to leave the SFC</a> and is <a href="https://opencollective.com/homebrew">moving to OpenCollective</a>. This allows more permissive spending of our funds in exchange for our incomings/outgoing being public.</li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 3.4.0. The most significant changes since 3.3.0 are HOMEBREW_NO_ENV_HINTS to hide configuration suggestions, brew services supported on systemd on Linux, brew install --overwrite and Homebrew beginning the process to leave the SFC.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">3.3.0</title><link href="https://brew.sh/2021/10/25/homebrew-3.3.0/" rel="alternate" type="text/html" title="3.3.0" /><published>2021-10-25T00:00:00+00:00</published><updated>2021-10-25T00:00:00+00:00</updated><id>https://brew.sh/2021/10/25/homebrew-3.3.0</id><content type="html" xml:base="https://brew.sh/2021/10/25/homebrew-3.3.0/"><![CDATA[<p>Today I’d like to announce Homebrew 3.3.0. The most significant changes since 3.2.0 are the migration from Homebrew/linuxbrew-core to <a href="https://github.com/homebrew/homebrew-core">Homebrew/homebrew-core</a> for all Homebrew on Linux users, the official support of macOS Monterey (and, as usual, dropping the support for Mojave due to us only supporting 3 macOS versions) and the addition of an opt-in <code class="language-plaintext highlighter-rouge">HOMEBREW_INSTALL_FROM_API</code> flag to avoid needing to have Homebrew/homebrew-core or Homebrew/homebrew-cask repositories tapped/cloned locally.</p>

<p>Major changes and deprecations since 3.2.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/12248"><code class="language-plaintext highlighter-rouge">brew update</code> will migrate all Linux users from linuxbrew-core to homebrew-core. This will also trigger the upgrade of some formulae installed from linuxbrew-core due to <code class="language-plaintext highlighter-rouge">revision</code> differences.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12263">macOS Monterey is officially supported</a> and <a href="https://github.com/Homebrew/brew/pull/12262">requires Xcode 13.1</a>. Monterey ships with Ruby 2.6.8 so we’ve released and use <a href="https://github.com/Homebrew/brew/pull/12281">Portable Ruby 2.6.8</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/12305"><code class="language-plaintext highlighter-rouge">HOMEBREW_INSTALL_FROM_API</code> is a new opt-in flag to install formulae and casks in homebrew/core and homebrew/cask taps using Homebrew’s API instead of needing the (large, slow) local checkouts of these repositories.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12223"><code class="language-plaintext highlighter-rouge">brew bump-formula-pr --write</code> has been deprecated in favour of <code class="language-plaintext highlighter-rouge">brew bump-formula-pr --write-only</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12130">The Internet Archive uploader was broken and no-one noticed so it has been removed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12259">Various additional deprecations, disables and code removals.</a></li>
</ul>

<p>Other changes since 3.2.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/12257"><code class="language-plaintext highlighter-rouge">HOMEBREW_SSH_CONFIG_PATH</code> sets the path a configuration file for using Git over SSH inside Homebrew.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12234"><code class="language-plaintext highlighter-rouge">brew edit --print-path</code> outputs the filename to be edited without opening an editor.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11714"><code class="language-plaintext highlighter-rouge">brew developer</code> makes it easier to enable/disable the Homebrew developer release channel.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11766">Artifactory and other private registries can be used for mirroring Homebrew bottles distributed through GitHub Packages.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11578">BuildPulse is used to detect and track Homebrew’s flaky tests.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11565"><code class="language-plaintext highlighter-rouge">brew search</code> does approximate matching of formula names.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12167">Homebrew’s <code class="language-plaintext highlighter-rouge">ca-certificates</code> will be installed when necessary on macOS &lt;= 10.15.5 to allow connecting to various HTTPS sites.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12121"><code class="language-plaintext highlighter-rouge">brew bump --start-with</code> retrieves a subset of results.</a></li>
  <li><code class="language-plaintext highlighter-rouge">brew search</code> can search <a href="https://github.com/Homebrew/brew/pull/12255">Arch Linux</a> and <a href="https://github.com/Homebrew/brew/pull/11736">Repology</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/12236"><code class="language-plaintext highlighter-rouge">HOMEBREW_ADDITIONAL_GOOGLE_ANALYTICS_ID</code> can be used to report to an additional Google Analytics tracking ID.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11691"><code class="language-plaintext highlighter-rouge">brew fetch --bottle-tag</code> allows fetching a bottle for any specified tag (e.g. OS/architecture/macOS version).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11963"><code class="language-plaintext highlighter-rouge">brew install</code></a> and <a href="https://github.com/Homebrew/brew/pull/11940"><code class="language-plaintext highlighter-rouge">brew upgrade</code></a> will fetch all formulae before attempting installation.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/11966"><code class="language-plaintext highlighter-rouge">brew install</code> outputs all cask installations at the end (like formulae).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11914"><code class="language-plaintext highlighter-rouge">brew</code> will start the sandbox in a pseudoterminal (to avoid potential formula access to the parent terminal).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12044"><code class="language-plaintext highlighter-rouge">brew style</code> will check and fix more shell script style.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12221"><code class="language-plaintext highlighter-rouge">brew tap --custom-remote</code> allows changing the remote for an installed tap.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11845"><code class="language-plaintext highlighter-rouge">brew typecheck</code> can be run on Apple Silicon.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/12287">Temurin will be recommended instead of the (deprecated) AdoptOpenJDK when installing casks that need Java.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 3.3.0. The most significant changes since 3.2.0 are the migration from Homebrew/linuxbrew-core to Homebrew/homebrew-core for all Homebrew on Linux users, the official support of macOS Monterey (and, as usual, dropping the support for Mojave due to us only supporting 3 macOS versions) and the addition of an opt-in HOMEBREW_INSTALL_FROM_API flag to avoid needing to have Homebrew/homebrew-core or Homebrew/homebrew-cask repositories tapped/cloned locally.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">3.2.0</title><link href="https://brew.sh/2021/06/21/homebrew-3.2.0/" rel="alternate" type="text/html" title="3.2.0" /><published>2021-06-21T00:00:00+00:00</published><updated>2021-06-21T00:00:00+00:00</updated><id>https://brew.sh/2021/06/21/homebrew-3.2.0</id><content type="html" xml:base="https://brew.sh/2021/06/21/homebrew-3.2.0/"><![CDATA[<p>Today I’d like to announce Homebrew 3.2.0. The most significant changes since 3.1.0 are <code class="language-plaintext highlighter-rouge">brew install</code> now upgrades outdated formulae by default and basic macOS 12 (Monterey) support.</p>

<p>Major changes and deprecations since 3.1.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/11525"><code class="language-plaintext highlighter-rouge">brew install</code> now upgrades outdated formulae by default (for idempotency). This can be disabled by setting <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_INSTALL_UPGRADE</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11504"><code class="language-plaintext highlighter-rouge">brew</code> has basic macOS 12 (Monterey) support.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11368"><code class="language-plaintext highlighter-rouge">brew leaves</code> has <code class="language-plaintext highlighter-rouge">--installed-on-request</code> and <code class="language-plaintext highlighter-rouge">--installed-as-dependency</code> flags to only list formula installed manually or as dependencies.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11548">Various deprecations, disables and code deletions for Homebrew 3.2.0.</a></li>
</ul>

<p>Other changes since 3.1.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/11397"><code class="language-plaintext highlighter-rouge">brew link --HEAD</code> links the <code class="language-plaintext highlighter-rouge">HEAD</code> version of a formula.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11137"><code class="language-plaintext highlighter-rouge">brew alias</code>, <code class="language-plaintext highlighter-rouge">brew autoupdate</code> and <code class="language-plaintext highlighter-rouge">brew command-not-found</code> are official external command taps.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11337"><code class="language-plaintext highlighter-rouge">brew tap</code> will never create shallow clones (as shallow clones are not performant when repeatedly fetching as Homebrew does).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11328"><code class="language-plaintext highlighter-rouge">brew fetch</code> will no longer use shallow clones.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11509"><code class="language-plaintext highlighter-rouge">brew install</code> also outputs cask caveats as part of the final summary.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11299"><code class="language-plaintext highlighter-rouge">brew</code> has GCC 11 support.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11215"><code class="language-plaintext highlighter-rouge">brew bottle</code> will generate <code class="language-plaintext highlighter-rouge">all:</code> bottles which are used on all platforms.</a>. A lot of work has gone into improving <a href="https://reproducible-builds.org">reproducible builds</a> to make these possible. <code class="language-plaintext highlighter-rouge">brew bottle</code> on your local machine for an <code class="language-plaintext highlighter-rouge">all:</code> bottle should generate an identical checksum.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/11540"><code class="language-plaintext highlighter-rouge">brew doctor</code> hides some warnings on Apple Silicon with Intel and ARM installations.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/11352"><code class="language-plaintext highlighter-rouge">brew bottle --bottle-arch</code> allow bottles with custom architectures.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 3.2.0. The most significant changes since 3.1.0 are brew install now upgrades outdated formulae by default and basic macOS 12 (Monterey) support.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Security Incident Disclosure</title><link href="https://brew.sh/2021/04/21/security-incident-disclosure/" rel="alternate" type="text/html" title="Security Incident Disclosure" /><published>2021-04-21T00:00:00+00:00</published><updated>2021-04-21T00:00:00+00:00</updated><id>https://brew.sh/2021/04/21/security-incident-disclosure</id><content type="html" xml:base="https://brew.sh/2021/04/21/security-incident-disclosure/"><![CDATA[<p>On 18th April 2021, <a href="https://blog.ryotak.me/post/homebrew-security-incident-en/">a security researcher identified</a> a vulnerability in our <code class="language-plaintext highlighter-rouge">review-cask-pr</code> GitHub Action used on the <code class="language-plaintext highlighter-rouge">homebrew-cask</code> and all <code class="language-plaintext highlighter-rouge">homebrew-cask-*</code> taps (non-default repositories) in the Homebrew organization and <a href="https://hackerone.com/homebrew">reported it on our HackerOne</a>.</p>

<p>Whenever an affected cask tap received a pull request to change only the version of a cask, the <code class="language-plaintext highlighter-rouge">review-cask-pr</code> GitHub Action would automatically review and approve the pull request. The approval would then trigger the <code class="language-plaintext highlighter-rouge">automerge</code> GitHub Action which would merge the approved pull request. <a href="https://github.com/Homebrew/homebrew-cask/pull/104191">A proof-of-concept (PoC) pull request demonstrating the vulnerability</a> was submitted with our permission. We subsequently <a href="https://github.com/Homebrew/homebrew-cask/pull/104197">reverted the PoC pull request</a>, <a href="https://github.com/Homebrew/homebrew-cask/pull/104199">disabled and removed the <code class="language-plaintext highlighter-rouge">automerge</code> GitHub Action</a> and <a href="https://github.com/Homebrew/homebrew-cask/pull/104204">disabled and removed the <code class="language-plaintext highlighter-rouge">review-cask-pr</code> GitHub Action</a> from all vulnerable repositories.</p>

<h3 id="what-was-impacted">What was impacted</h3>

<p>The discovered vulnerability would allow an attacker to inject arbitrary code into a cask and have it be merged automatically. This is due to a flaw in the <code class="language-plaintext highlighter-rouge">git_diff</code> dependency of the <code class="language-plaintext highlighter-rouge">review-cask-pr</code> GitHub Action, which is used to parse a pull request’s diff for inspection. Due to this flaw, the parser can be spoofed into completely ignoring the offending lines, resulting in successfully approving a malicious pull request.</p>

<p><strong>A single cask was compromised with a harmless change for the duration of <a href="https://github.com/Homebrew/homebrew-cask/pull/104191">the demonstration pull request</a> until <a href="https://github.com/Homebrew/homebrew-cask/pull/104197">its reversal</a>. No action is required by users due to this incident.</strong></p>

<h3 id="what-were-doing-about-it">What we’re doing about it</h3>

<ul>
  <li>The vulnerable <code class="language-plaintext highlighter-rouge">review-cask-pr</code> GitHub Action has been disabled and removed from all repositories.</li>
  <li>The <code class="language-plaintext highlighter-rouge">automerge</code> GitHub Action has been disabled and removed from all repositories (in favour of the GitHub built-in functionality that did not exist when this action was created).</li>
  <li>We have removed the ability for our bots to commit to <code class="language-plaintext highlighter-rouge">homebrew/cask*</code> repositories.</li>
  <li>All <code class="language-plaintext highlighter-rouge">homebrew/cask*</code> pull requests will require a manual review and approval by a maintainer.</li>
  <li>We are improving documentation to help onboard new <code class="language-plaintext highlighter-rouge">homebrew/cask</code> maintainers and training
existing <code class="language-plaintext highlighter-rouge">homebrew/core</code> maintainers to help with <code class="language-plaintext highlighter-rouge">homebrew/cask</code>.</li>
</ul>

<p>We did, do and will continue to take the security of the project and our users very seriously. We try our best to behave as a for-profit company would do in terms of timely response to security issues.</p>

<p>In order to ensure and improve Homebrew’s security, please consider contributing your code and code reviews to our GitHub projects.</p>

<p>Thanks for using Homebrew!</p>]]></content><author><name>reitermarkus</name></author><summary type="html"><![CDATA[On 18th April 2021, a security researcher identified a vulnerability in our review-cask-pr GitHub Action used on the homebrew-cask and all homebrew-cask-* taps (non-default repositories) in the Homebrew organization and reported it on our HackerOne.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">3.1.0</title><link href="https://brew.sh/2021/04/12/homebrew-3.1.0/" rel="alternate" type="text/html" title="3.1.0" /><published>2021-04-12T00:00:00+00:00</published><updated>2021-04-12T00:00:00+00:00</updated><id>https://brew.sh/2021/04/12/homebrew-3.1.0</id><content type="html" xml:base="https://brew.sh/2021/04/12/homebrew-3.1.0/"><![CDATA[<p>Today I’d like to announce Homebrew 3.1.0. The most significant change since 3.0.0 is the migration of our bottles (binary packages) to GitHub Packages.</p>

<p>Major changes and deprecations since 3.0.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/11070">GitHub Packages is the default package download/upload location on macOS</a> <a href="https://github.com/Homebrew/brew/pull/11073">and Linux</a>. This is due to Bintray’s shutdown on May 1st 2021.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/11075">Various deprecated, disabled and deleted code.</a></li>
  <li>
    <p><a href="https://github.com/Homebrew/brew/pull/10778">The undocumented <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_ENV_FILTERING</code> flag is deprecated and will be removed.</a></p>
  </li>
  <li><a href="https://github.com/Homebrew/brew/pull/10640">The <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_BOTTLE_SOURCE_FALLBACK</code> is removed (as its behaviour is now the default).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10948">GitHub Packages writes bottles’ tabs into the GitHub Packages manifest JSON. <code class="language-plaintext highlighter-rouge">brew bottle --only-json-tab</code> has been added to allow future GitHub Packages bottles to store their tab outside the bottle to allow reproducible builds.</a> <a href="https://github.com/Homebrew/brew/pull/10977">This is why downloads from GitHub Packages also include a small manifest JSON download.</a> <a href="https://github.com/Homebrew/brew/pull/11077">This also allows future creation of <code class="language-plaintext highlighter-rouge">all: SHA256</code> bottles for bottles shared across all platforms.</a></li>
</ul>

<p>Other changes since 3.0.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/10802">The <code class="language-plaintext highlighter-rouge">sed</code> superenv shim is removed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10514">CodeCov in Homebrew’s GitHub Actions no longer requires a hardcoded token.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10868"><code class="language-plaintext highlighter-rouge">brew update --quiet</code> is a bit quieter.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10501"><code class="language-plaintext highlighter-rouge">brew update</code> outputs to <code class="language-plaintext highlighter-rouge">stderr</code> when not outputting to a TTY to ease <code class="language-plaintext highlighter-rouge">stdout</code> usage.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10581"><code class="language-plaintext highlighter-rouge">brew update</code> reports outdated formulae and suggests <code class="language-plaintext highlighter-rouge">brew upgrade</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10681"><code class="language-plaintext highlighter-rouge">installed_on_request</code> is correctly set in the tab for dependencies again. This will improve usage of <code class="language-plaintext highlighter-rouge">brew bundle dump</code> after reinstalling packages.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10695">Homebrew does not load non-Bundler gems to prevent issues from user-installed gems.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10598">Homebrew’s default <code class="language-plaintext highlighter-rouge">ruby</code> warning level is now <code class="language-plaintext highlighter-rouge">-W1</code> (to avoid hiding legitimate warnings.)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10954"><code class="language-plaintext highlighter-rouge">brew cask</code> <code class="language-plaintext highlighter-rouge">pkg</code> uninstallation is faster.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10693"><code class="language-plaintext highlighter-rouge">brew --prefix &lt;formula&gt;</code> is faster.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10771"><code class="language-plaintext highlighter-rouge">brew --version</code> is faster.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10945"><code class="language-plaintext highlighter-rouge">brew list</code> also uses <code class="language-plaintext highlighter-rouge">ls</code> for casks output (to be consistent with formulae).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10899"><code class="language-plaintext highlighter-rouge">brew list</code> visually separates formulae and casks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10635"><code class="language-plaintext highlighter-rouge">brew bump</code> supports casks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9517"><code class="language-plaintext highlighter-rouge">service do</code> is a new formula DSL to allow plists to be easily generated.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10533">Always require developer tools on Apple Silicon (because <code class="language-plaintext highlighter-rouge">codesign</code> is needed when pouring bottles).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10590">When <code class="language-plaintext highlighter-rouge">codesign</code> fails more error output is now printed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10595"><code class="language-plaintext highlighter-rouge">gem</code>, <code class="language-plaintext highlighter-rouge">rake</code> and <code class="language-plaintext highlighter-rouge">ruby</code> superenv shims are provided to work around broken macOS <code class="language-plaintext highlighter-rouge">ruby</code>s.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10535">A better error message is output when users don’t have any GitHub API credentials set.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li>Homebrew’s Annual General Meeting in February elected a <a href="https://github.com/Homebrew/brew#who-we-are">new Project Leadership Committee, Technical Steering Committee, and I (Mike McQuaid) was re-elected as Project Leader</a></li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Particular thanks on Homebrew 3.1.0 go to GitHub for providing GitHub Packages and helping in our migration. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 3.1.0. The most significant change since 3.0.0 is the migration of our bottles (binary packages) to GitHub Packages.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">3.0.0</title><link href="https://brew.sh/2021/02/05/homebrew-3.0.0/" rel="alternate" type="text/html" title="3.0.0" /><published>2021-02-05T00:00:00+00:00</published><updated>2021-02-05T00:00:00+00:00</updated><id>https://brew.sh/2021/02/05/homebrew-3.0.0</id><content type="html" xml:base="https://brew.sh/2021/02/05/homebrew-3.0.0/"><![CDATA[<p>Today I’d like to announce Homebrew 3.0.0. The most significant changes since 2.7.0 are official Apple Silicon support and a new bottle format in formulae.</p>

<p>Major changes and deprecations since 2.7.0:</p>

<ul>
  <li>Apple Silicon is now officially supported for installations in <code class="language-plaintext highlighter-rouge">/opt/homebrew</code>. <a href="https://formulae.brew.sh">formulae.brew.sh</a> formula pages <a href="https://github.com/Homebrew/formulae.brew.sh/pull/408">indicate for which platforms bottles (binary packages) are provided</a> and therefore whether they are supported by Homebrew. Homebrew doesn’t (yet) provide bottles for all packages on Apple Silicon that we do on Intel x86_64 but we welcome your help in doing so. Rosetta 2 on Apple Silicon still provides support for Intel x86_64 in <code class="language-plaintext highlighter-rouge">/usr/local</code>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/10449"><code class="language-plaintext highlighter-rouge">brew bottle</code> and <code class="language-plaintext highlighter-rouge">bottle do</code> blocks use a new syntax format (one <code class="language-plaintext highlighter-rouge">:cellar</code> per platform)</a>. <a href="https://github.com/Homebrew/brew/pull/10453"><code class="language-plaintext highlighter-rouge">brew style --fix</code> will autocorrect formulae to this new format</a>. This will allow more bottles to be relocatable.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/10374">The new <code class="language-plaintext highlighter-rouge">HOMEBREW_BOOTSNAP</code> environment variable allows the use of the Bootsnap gem to speed up repeated <code class="language-plaintext highlighter-rouge">brew</code> calls. This does not work (yet) on Apple Silicon or using Homebrew’s portable Ruby</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/10397">Various methods have been deprecated, disabled and removed</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10229">Bash</a>, <a href="https://github.com/Homebrew/brew/pull/10431">fish</a> and <a href="https://github.com/Homebrew/brew/pull/10403">zsh</a> completions are generated automatically from the <code class="language-plaintext highlighter-rouge">CLI::Parser</code> DSL. This will ensure they are kept up-to-date.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/10423"><code class="language-plaintext highlighter-rouge">brew update</code> better handles upstream branch renames (e.g. from <code class="language-plaintext highlighter-rouge">master</code> to <code class="language-plaintext highlighter-rouge">main</code>)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10268"><code class="language-plaintext highlighter-rouge">brew completions</code> is a new command to opt-in to completions provided by third-party taps</a></li>
</ul>

<p>Other changes since 2.7.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/10342">Command usage text is automatically generated (so will be kept-up-to-date)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10087"><code class="language-plaintext highlighter-rouge">brew audit</code> reads more formula data from taps</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10366"><code class="language-plaintext highlighter-rouge">brew untap</code> of an official tap you don’t use (e.g. Homebrew/homebrew-cask) will ensure it’s no longer automatically retapped</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10259"><code class="language-plaintext highlighter-rouge">brew casks</code> is a new command implemented in Bash to speedily output all casks available to install (like <code class="language-plaintext highlighter-rouge">brew formulae</code>)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10278"><code class="language-plaintext highlighter-rouge">brew info --cask --json=v2</code> includes whether a cask is outdated and the currently installed versions</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10388">Fixed a bug where <code class="language-plaintext highlighter-rouge">brew update</code> could be run every time</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10266"><code class="language-plaintext highlighter-rouge">brew --prefix --installed</code> is a new flag to <code class="language-plaintext highlighter-rouge">brew --prefix</code> that will fail if the requested formula is not installed</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10072">We now use an unversioned SDK path on Big Sur to avoid breakage on minor SDK version changes</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://discourse.brew.sh">Discourse</a> was made read-only on January 1st 2021 in favour of <a href="https://github.com/Homebrew/discussions/discussions">GitHub Discussions</a>.</li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Particular thanks on Homebrew 3.0.0 go to MacStadium and Apple for providing us with a lot of Apple Silicon hardware and Cassidy from Apple for helping us in many ways with this migration. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 3.0.0. The most significant changes since 2.7.0 are official Apple Silicon support and a new bottle format in formulae.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">2.7.0</title><link href="https://brew.sh/2020/12/21/homebrew-2.7.0/" rel="alternate" type="text/html" title="2.7.0" /><published>2020-12-21T00:00:00+00:00</published><updated>2020-12-21T00:00:00+00:00</updated><id>https://brew.sh/2020/12/21/homebrew-2.7.0</id><content type="html" xml:base="https://brew.sh/2020/12/21/homebrew-2.7.0/"><![CDATA[<p>Today I’d like to announce Homebrew 2.7.0. The most significant changes since 2.6.0 are API deprecations.</p>

<p>Changes and deprecations since 2.6.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/9482">The <code class="language-plaintext highlighter-rouge">prefix</code> DSL for bottles is deprecated. It was not actually used by the code.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9478"><code class="language-plaintext highlighter-rouge">deprecate!</code> and <code class="language-plaintext highlighter-rouge">disable!</code> in formulae with missing or non-ISO 8601 dates is deprecated.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9403"><code class="language-plaintext highlighter-rouge">depends_on :java</code>, <code class="language-plaintext highlighter-rouge">:x11</code>, <code class="language-plaintext highlighter-rouge">:osxfuse</code>, <code class="language-plaintext highlighter-rouge">:tuntap</code> are all deprecated in formulae and casks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10056">Additional API deprecations, disables and removals.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10045">GitHub basic authentication support is removed.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9383"><code class="language-plaintext highlighter-rouge">brew update</code> refuses to update shallow homebrew-core/cask clones (on request from GitHub).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9477">The <code class="language-plaintext highlighter-rouge">HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS</code> environment variable allows customisation of how often a full <code class="language-plaintext highlighter-rouge">brew cleanup</code> is run.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9518">Installing formulae missing bottles from the homebrew-core or linuxbrew-core requires specifying <code class="language-plaintext highlighter-rouge">--build-from-source</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/8578"><code class="language-plaintext highlighter-rouge">brew livecheck</code> now supports casks.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/9144">Discourse</a> and <a href="https://github.com/Homebrew/brew/pull/8981">IRC</a> are now deprecated as official communication methods in favour of <a href="https://github.com/Homebrew/brew/pull/8802">GitHub Discussions</a>. It will be made read-only on January 1st 2021.</li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 2.7.0. The most significant changes since 2.6.0 are API deprecations.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">2.6.0</title><link href="https://brew.sh/2020/12/01/homebrew-2.6.0/" rel="alternate" type="text/html" title="2.6.0" /><published>2020-12-01T00:00:00+00:00</published><updated>2020-12-01T00:00:00+00:00</updated><id>https://brew.sh/2020/12/01/homebrew-2.6.0</id><content type="html" xml:base="https://brew.sh/2020/12/01/homebrew-2.6.0/"><![CDATA[<p>Today I’d like to announce Homebrew 2.6.0. The most significant changes since 2.5.0 are macOS Big Sur support on Intel, <code class="language-plaintext highlighter-rouge">brew</code> commands replacing all <code class="language-plaintext highlighter-rouge">brew cask</code> commands, the beginnings of macOS M1/Apple Silicon/ARM support and API deprecations.</p>

<p>Major changes and deprecations since 2.5.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/9054">macOS Big Sur is supported (and High Sierra unsupported)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9209"><code class="language-plaintext highlighter-rouge">depends_on :java</code>, <code class="language-plaintext highlighter-rouge">brew switch</code>, <code class="language-plaintext highlighter-rouge">brew diy</code> and various other APIs have been deprecated</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/8899">All <code class="language-plaintext highlighter-rouge">brew cask</code> commands have been deprecated in favour of <code class="language-plaintext highlighter-rouge">brew</code> commands (with <code class="language-plaintext highlighter-rouge">--cask</code>) when necessary</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/8795"><code class="language-plaintext highlighter-rouge">Homebrew.args</code> is deprecated</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9052">All <code class="language-plaintext highlighter-rouge">Requirement</code>s are deprecated in Homebrew/core</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9117">macOS Homebrew running natively on M1/Apple Silicon/ARM has partial functionality. We recommend installing into <code class="language-plaintext highlighter-rouge">/opt/homebrew</code> and forbid installing into <code class="language-plaintext highlighter-rouge">/usr/local</code> (to avoid clashing with the macOS Intel install and allow their usage side-by-side)</a>. We currently recommend running Homebrew using Intel emulation with Rosetta 2.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8762"><code class="language-plaintext highlighter-rouge">brew tap-new</code> will set up GitHub Actions workflows to</a> <a href="https://github.com/Homebrew/brew/pull/8410">upload to GitHub Releases</a>. Read <a href="https://brew.sh/2020/11/18/homebrew-tap-with-bottles-uploaded-to-github-releases/">the blog post</a> for more documentation.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8826">GitHub deprecated their API’s basic authentication</a></li>
</ul>

<p>Other changes since 2.5.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/9305"><code class="language-plaintext highlighter-rouge">brew doctor</code> checks the active branch for all taps, not just Homebrew/homebrew-core</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9308"><code class="language-plaintext highlighter-rouge">brew unbottled</code> is a new developer command to identify formulae that haven’t had binary packages built yet</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9241"><code class="language-plaintext highlighter-rouge">brew install ./</code> is now recommended for installing local file formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/8846">Bash, ZSH and Fish formula completion is now much faster with the <code class="language-plaintext highlighter-rouge">brew formulae</code> command</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9064"><code class="language-plaintext highlighter-rouge">brew install --force-bottle</code> refuses to ever build from source</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/9009"><code class="language-plaintext highlighter-rouge">brew install</code> or <code class="language-plaintext highlighter-rouge">brew link</code> of a versioned keg-only formula will automatically unlink conflicted version formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/8904"><code class="language-plaintext highlighter-rouge">brew shellenv</code> is significantly faster</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/8883">Homebrew has further reduced shallow clone usage (on request from GitHub)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/8695"><code class="language-plaintext highlighter-rouge">brew linkage</code> and commands using the linkage cache have significantly better performance</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7986"><code class="language-plaintext highlighter-rouge">brew bump-cask-pr</code> is a new developer command to create Homebrew/homebrew-cask pull requests</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/9144">Discourse</a> and <a href="https://github.com/Homebrew/brew/pull/8981">IRC</a> are now deprecated as official communication methods in favour of <a href="https://github.com/Homebrew/brew/pull/8802">GitHub Discussions</a>.</li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 2.6.0. The most significant changes since 2.5.0 are macOS Big Sur support on Intel, brew commands replacing all brew cask commands, the beginnings of macOS M1/Apple Silicon/ARM support and API deprecations.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Homebrew tap with bottles uploaded to GitHub Releases</title><link href="https://brew.sh/2020/11/18/homebrew-tap-with-bottles-uploaded-to-github-releases/" rel="alternate" type="text/html" title="Homebrew tap with bottles uploaded to GitHub Releases" /><published>2020-11-18T00:00:00+00:00</published><updated>2020-11-18T00:00:00+00:00</updated><id>https://brew.sh/2020/11/18/homebrew-tap-with-bottles-uploaded-to-github-releases</id><content type="html" xml:base="https://brew.sh/2020/11/18/homebrew-tap-with-bottles-uploaded-to-github-releases/"><![CDATA[<p>Since the <a href="https://github.com/Homebrew/brew/releases/tag/2.5.2">Homebrew 2.5.2 release</a>, you can upload bottles (binary packages) to GitHub Releases, in addition to the previous standard - Bintray. Support was added to <code class="language-plaintext highlighter-rouge">Homebrew/brew</code> in this <a href="https://github.com/Homebrew/brew/pull/8410">PR</a> on 2020-09-15, and a <a href="https://github.com/Homebrew/homebrew-test-bot/pull/486">companion PR</a> to <code class="language-plaintext highlighter-rouge">Homebrew/homebrew-test-bot</code> added support for setting the base download URL of bottles to point to a specific release on GitHub.</p>

<h3 id="creating-the-tap">Creating the tap</h3>

<p>First, go to GitHub and create an empty repository named with the <code class="language-plaintext highlighter-rouge">homebrew-</code> prefix, for example: <code class="language-plaintext highlighter-rouge">USER/homebrew-tap</code>.</p>

<p><img src="/assets/img/blog/homebrew-tap-github-releases/github-repository.png" alt="github-repository" /></p>

<p>Then locally run:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>brew tap-new USER/REPOSITORY
</code></pre></div></div>

<p>changing <code class="language-plaintext highlighter-rouge">USER/REPOSITORY</code> to the full name of the repository that you just created on GitHub. You can omit the <code class="language-plaintext highlighter-rouge">homebrew-</code> prefix and specify the <code class="language-plaintext highlighter-rouge">--branch</code> flag if your default branch should be named differently than <code class="language-plaintext highlighter-rouge">main</code>.</p>

<p><img src="/assets/img/blog/homebrew-tap-github-releases/brew-tap-new.png" alt="brew-tap-new" /></p>

<p>Navigate to the newly created tap on disk by executing:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> <span class="si">$(</span>brew <span class="nt">--repository</span> USER/REPOSITORY<span class="si">)</span>
</code></pre></div></div>

<p><img src="/assets/img/blog/homebrew-tap-github-releases/cd-brew-repository.png" alt="cd-brew-repository" /></p>

<p>Now you can list all files in this tap to see what is created by default.</p>

<p>Add the repository that you created on GitHub as the <code class="language-plaintext highlighter-rouge">origin</code> remote and push newly created files:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git remote add origin https://github.com/USER/REPOSITORY
git push <span class="nt">--set-upstream</span> origin main
</code></pre></div></div>

<p><img src="/assets/img/blog/homebrew-tap-github-releases/git-push.png" alt="git-push" /></p>

<p>I won’t go into too many details on how the workflows look, as they are subject to change at any time. For now, there are 2 workflow files created by default.</p>

<ul>
  <li>One is run on each <code class="language-plaintext highlighter-rouge">pull_request</code> event, so every push to a PR’s branch triggers the workflow, which tests changes made to formulae, builds bottles for those formulae and uploads them to GitHub Actions as artifacts.</li>
  <li>The second workflow, run when a pull request is labelled, is responsible for bottle uploading and publishing.</li>
</ul>

<h3 id="creating-the-first-formula-in-the-tap">Creating the first formula in the tap</h3>

<p>It’s time we add a new formula to our tap; shall we?</p>

<p>All formulae should go in the <code class="language-plaintext highlighter-rouge">Formula</code> directory. Let’s suppose we want to create a formula for this little Go program named <a href="https://github.com/psampaz/gothanks"><code class="language-plaintext highlighter-rouge">gothanks</code></a>. Run locally:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>brew create <span class="nt">--tap</span><span class="o">=</span>USER/REPOSITORY <span class="nt">--go</span> https://github.com/psampaz/gothanks/archive/v0.3.0.tar.gz
</code></pre></div></div>

<p><img src="/assets/img/blog/homebrew-tap-github-releases/brew-create.png" alt="brew-create" /></p>

<p><img src="/assets/img/blog/homebrew-tap-github-releases/brew-edit.png" alt="brew-edit" /></p>

<p>This command will create a new standard formula for Go projects in your tap and open the file in your editor of choice. After you close the editor, you can still edit the formula with:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>brew edit USER/REPOSITORY/FORMULA
</code></pre></div></div>

<p>Our <code class="language-plaintext highlighter-rouge">gothanks</code> formula, after some editing could look like this:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">class</span> <span class="nc">Gothanks</span> <span class="o">&lt;</span> <span class="no">Formula</span>
  <span class="n">desc</span> <span class="s2">"Automatically star your go.mod Github dependencies"</span>
  <span class="n">homepage</span> <span class="s2">"https://github.com/psampaz/gothanks"</span>
  <span class="n">url</span> <span class="s2">"https://github.com/psampaz/gothanks/archive/v0.3.0.tar.gz"</span>
  <span class="n">sha256</span> <span class="s2">"ce5440334b3eac2e058724faa4c6e4478ca1d81ea087e55ccca33f1996752aad"</span>
  <span class="n">license</span> <span class="s2">"MIT"</span>

  <span class="n">depends_on</span> <span class="s2">"go"</span> <span class="o">=&gt;</span> <span class="ss">:build</span>

  <span class="k">def</span> <span class="nf">install</span>
    <span class="nb">system</span> <span class="s2">"go"</span><span class="p">,</span> <span class="s2">"build"</span><span class="p">,</span> <span class="o">*</span><span class="n">std_go_args</span>
  <span class="k">end</span>

  <span class="nb">test</span> <span class="k">do</span>
    <span class="no">ENV</span><span class="p">.</span><span class="nf">delete</span> <span class="s2">"GITHUB_TOKEN"</span>
    <span class="n">assert_match</span> <span class="s2">"no Github token found"</span><span class="p">,</span> <span class="n">shell_output</span><span class="p">(</span><span class="n">bin</span><span class="o">/</span><span class="s2">"gothanks"</span><span class="p">,</span> <span class="mi">255</span><span class="p">)</span>
  <span class="k">end</span>
<span class="k">end</span>
</code></pre></div></div>

<p>Now we can create a new branch, add the formula, commit it and push:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout <span class="nt">-b</span> gothanks
git add Formula/gothanks.rb
git commit <span class="nt">--message</span> <span class="s2">"gothanks 0.3.0 (new formula)"</span>
git push <span class="nt">--set-upstream</span> origin gothanks
</code></pre></div></div>

<p><img src="/assets/img/blog/homebrew-tap-github-releases/git-branch.png" alt="git-branch" /></p>

<p>But to trigger the workflows, we need to create a pull request from our recently-pushed branch. I’m using the <code class="language-plaintext highlighter-rouge">hub</code> utility for this operation, but you can use the newer GitHub CLI tool <code class="language-plaintext highlighter-rouge">gh</code> or just click your way through in GitHub’s UI.</p>

<p><img src="/assets/img/blog/homebrew-tap-github-releases/github-pr.png" alt="github-pr" /></p>

<h3 id="uploading-built-bottles">Uploading built bottles</h3>

<p>Wait until the pull request’s checks become green. Then label your pull request with the <code class="language-plaintext highlighter-rouge">pr-pull</code> label (this is the default label that will trigger the uploading workflow; you can easily change this in workflow file). A new <code class="language-plaintext highlighter-rouge">brew pr-pull</code> workflow will be fired up and after a couple of minutes you should observe the PR closed, bottles uploaded and commits pushed to the main branch of your repository.</p>

<p><img src="/assets/img/blog/homebrew-tap-github-releases/github-pr-closed.png" alt="github-pr-closed" />
<img src="/assets/img/blog/homebrew-tap-github-releases/github-release.png" alt="github-release" />
<img src="/assets/img/blog/homebrew-tap-github-releases/github-commits.png" alt="github-commits" /></p>

<h3 id="summary">Summary</h3>

<p>With current tooling it’s now easier than ever to create your own Homebrew tap with bottles. Gone are the days when you had to create a Bintray account and fiddle around with custom CI configs. Now you can run a bunch of commands and get a tap up and running in minutes, with only a GitHub account!</p>]]></content><author><name>dawidd6</name></author><summary type="html"><![CDATA[Since the Homebrew 2.5.2 release, you can upload bottles (binary packages) to GitHub Releases, in addition to the previous standard - Bintray. Support was added to Homebrew/brew in this PR on 2020-09-15, and a companion PR to Homebrew/homebrew-test-bot added support for setting the base download URL of bottles to point to a specific release on GitHub.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">2.5.0</title><link href="https://brew.sh/2020/09/08/homebrew-2.5.0/" rel="alternate" type="text/html" title="2.5.0" /><published>2020-09-08T00:00:00+00:00</published><updated>2020-09-08T00:00:00+00:00</updated><id>https://brew.sh/2020/09/08/homebrew-2.5.0</id><content type="html" xml:base="https://brew.sh/2020/09/08/homebrew-2.5.0/"><![CDATA[<p>Today I’d like to announce Homebrew 2.5.0. The most significant changes since 2.4.0 are better <code class="language-plaintext highlighter-rouge">brew cask</code> integration, license support and API deprecations.</p>

<p>Major changes and deprecations since 2.4.0:</p>

<ul>
  <li>Many <code class="language-plaintext highlighter-rouge">brew cask</code> <a href="https://github.com/Homebrew/brew/pull/8387">commands</a> <a href="https://github.com/Homebrew/brew/pull/8302">have</a> <a href="https://github.com/Homebrew/brew/pull/8387">been</a> replaced with <code class="language-plaintext highlighter-rouge">brew</code> commands and are deprecated. This continues our goal of better integration between <code class="language-plaintext highlighter-rouge">brew</code> and <code class="language-plaintext highlighter-rouge">brew cask</code> commands.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/7762">Most Homebrew/homebrew-core formulae have their licenses stored and audited</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8289"><code class="language-plaintext highlighter-rouge">brew typecheck</code> provides the beginnings of Homebrew’s use of Sorbet for type-checking</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8570">Homebrew is currently experimenting with GitHub Discussions as a possible replacement for Discourse</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8180"><code class="language-plaintext highlighter-rouge">brew livecheck</code> has moved from its own tap to a Homebrew command and part of Homebrew/homebrew-core formulae</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/7834"><code class="language-plaintext highlighter-rouge">brew bump</code> is a new command using <code class="language-plaintext highlighter-rouge">brew livecheck</code> and Repology to output outdated formulae in Homebrew/homebrew-core</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/7213">Homebrew on Linux is moving towards a pure-Ruby ELF reading and writing implementation</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8513">Various other Homebrew (mostly internal) APIs have been deprecated</a></li>
</ul>

<p>Other changes since 2.4.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/8482"><code class="language-plaintext highlighter-rouge">brew sh</code> has a non-interactive mode</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8512">Disabled and deprecated formulae require a reason (to better explain to users)</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8358"><code class="language-plaintext highlighter-rouge">brew bump-revision</code> accepts multiple formulae</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8239"><code class="language-plaintext highlighter-rouge">brew cask --help</code> output is supported for all <code class="language-plaintext highlighter-rouge">brew cask</code> commands</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8231"><code class="language-plaintext highlighter-rouge">brew audit</code> now has a <code class="language-plaintext highlighter-rouge">--tap</code> argument</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8210"><code class="language-plaintext highlighter-rouge">brew tap-new</code> makes use of Homebrew’s custom GitHub Actions (which are also used by Homebrew CI)</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8153"><code class="language-plaintext highlighter-rouge">brew audit</code> is passing and mandatory for all changes on Homebrew/homebrew-core</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8059"><code class="language-plaintext highlighter-rouge">brew update-python-resources</code> is a new command that can be used to upgrade dependencies in Python formulae</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8135"><code class="language-plaintext highlighter-rouge">brew tests</code> retries failed tests by default</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/8118"><code class="language-plaintext highlighter-rouge">brew bundle</code> runs <code class="language-plaintext highlighter-rouge">brew update</code> before if needed</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/7909">Many <code class="language-plaintext highlighter-rouge">brew audit</code> checks were migrated to</a> <a href="https://github.com/Homebrew/brew/pull/7837">RuboCop</a> checks for better performance and editor integration.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/7791">Homebrew is working on support for macOS Big Sur (11.0)</a>.</li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 2.5.0. The most significant changes since 2.4.0 are better brew cask integration, license support and API deprecations.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">2.4.0</title><link href="https://brew.sh/2020/06/11/homebrew-2.4.0/" rel="alternate" type="text/html" title="2.4.0" /><published>2020-06-11T00:00:00+00:00</published><updated>2020-06-11T00:00:00+00:00</updated><id>https://brew.sh/2020/06/11/homebrew-2.4.0</id><content type="html" xml:base="https://brew.sh/2020/06/11/homebrew-2.4.0/"><![CDATA[<p>Today I’d like to announce Homebrew 2.4.0. The most significant changes since 2.3.0 are dropping macOS Mavericks support, the deprecation of <code class="language-plaintext highlighter-rouge">devel</code> versions and <code class="language-plaintext highlighter-rouge">brew audit</code> speedups.</p>

<p>Major changes and deprecations since 2.3.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/7698">Homebrew’s minimum macOS version is Yosemite.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7688"><code class="language-plaintext highlighter-rouge">devel</code> versions in formulae have been deprecated.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7700"><code class="language-plaintext highlighter-rouge">brew pull</code> has been deprecated in favour of <code class="language-plaintext highlighter-rouge">hub checkout</code>.</a></li>
</ul>

<p>Other changes since 2.3.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/7684"><code class="language-plaintext highlighter-rouge">brew audit</code> is significantly faster.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7718"><code class="language-plaintext highlighter-rouge">brew irb</code> correctly uses <code class="language-plaintext highlighter-rouge">TERMINFO</code> to improve keyboard handling.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7681">Homebrew uses system Gems correctly.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7663"><code class="language-plaintext highlighter-rouge">man brew</code> lists the full help for all official external commands (which now includes <code class="language-plaintext highlighter-rouge">brew test-bot</code>).</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 2.4.0. The most significant changes since 2.3.0 are dropping macOS Mavericks support, the deprecation of devel versions and brew audit speedups.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">2.3.0</title><link href="https://brew.sh/2020/05/29/homebrew-2.3.0/" rel="alternate" type="text/html" title="2.3.0" /><published>2020-05-29T00:00:00+00:00</published><updated>2020-05-29T00:00:00+00:00</updated><id>https://brew.sh/2020/05/29/homebrew-2.3.0</id><content type="html" xml:base="https://brew.sh/2020/05/29/homebrew-2.3.0/"><![CDATA[<p>Today I’d like to announce Homebrew 2.3.0. The most significant changes since 2.2.0 are GitHub Actions CI usage, fetching resources before installation, Docker image improvements and the deprecation of <code class="language-plaintext highlighter-rouge">brew install</code> from URLs.</p>

<p>Major changes and deprecations since 2.2.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/7579"><code class="language-plaintext highlighter-rouge">brew tap-pin</code> and <code class="language-plaintext highlighter-rouge">brew tap-unpin</code> have been removed along with the deprecation of some Homebrew and <code class="language-plaintext highlighter-rouge">Formula</code> methods.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7660"><code class="language-plaintext highlighter-rouge">brew install</code> from a URL has been deprecated to improve the security of <code class="language-plaintext highlighter-rouge">brew install</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7124"><code class="language-plaintext highlighter-rouge">brew install</code>, <code class="language-plaintext highlighter-rouge">brew upgrade</code> and <code class="language-plaintext highlighter-rouge">brew reinstall</code> now fetch all resources before beginning installation</a> or <a href="https://github.com/Homebrew/brew/pull/7635">locking dependencies</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/7617">The Homebrew/brew Docker image is now built for Ubuntu 16.04 and 20.04 and includes <code class="language-plaintext highlighter-rouge">latest</code> for the latest stable release and <code class="language-plaintext highlighter-rouge">master</code> for the <code class="language-plaintext highlighter-rouge">master</code> branch.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7190">Homebrew formulae can be deprecated or disabled to provide an easier transition than deletion (the previous method).</a></li>
  <li><a href="https://github.com/Homebrew/brew/issues/6255">Homebrew/homebrew-core has been entirely migrated to GitHub Actions</a> and <a href="https://github.com/Homebrew/brew/pull/7395">Homebrew’s Jenkins has shut down entirely</a>.</li>
</ul>

<p>Other changes since 2.2.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/7469"><code class="language-plaintext highlighter-rouge">brew style</code> and <code class="language-plaintext highlighter-rouge">brew readall</code> are run on macOS and Linux for Homebrew/brew and Homebrew/homebrew-core to make retaining Linux compatibility easier</a> and <a href="https://github.com/Homebrew/brew/issues/7028">ease the eventual merging of homebrew-core and linuxbrew-core taps</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/7545">Homebrew searches the entire PATH to find a compatible <code class="language-plaintext highlighter-rouge">ruby</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7580"><code class="language-plaintext highlighter-rouge">brew cask info</code> shows cask analytics data.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7585"><code class="language-plaintext highlighter-rouge">brew doctor</code> shows deleted formulae.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7526"><code class="language-plaintext highlighter-rouge">brew uninstall</code> notes all <code class="language-plaintext highlighter-rouge">etc</code> files will stay around.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7368"><code class="language-plaintext highlighter-rouge">brew test</code> runs <code class="language-plaintext highlighter-rouge">pkill</code> without exceptions to avoid manual cleanup in <code class="language-plaintext highlighter-rouge">test do</code> blocks.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7277"><code class="language-plaintext highlighter-rouge">pkg-config</code> correctly sets the <code class="language-plaintext highlighter-rouge">SDKROOT</code> to find more macOS-provided software.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7508">Formulae can use the <code class="language-plaintext highlighter-rouge">pkgetc</code> method to install into <code class="language-plaintext highlighter-rouge">etc/#{formula_name}</code>.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7225">Formulae can use the <code class="language-plaintext highlighter-rouge">free_port</code> test helper.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7196">All Homebrew <code class="language-plaintext highlighter-rouge">curl</code> requests retry 2 times by default.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/7132">Formulae <code class="language-plaintext highlighter-rouge">patch</code> blocks can change directories to apply their patch.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/6991"><code class="language-plaintext highlighter-rouge">brew tap</code> defaults to full clones. The existing shallow clone default would cause slower <code class="language-plaintext highlighter-rouge">git fetch</code>es over time.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/6667"><code class="language-plaintext highlighter-rouge">HOMEBREW_BREW_GIT_REMOTE</code> and <code class="language-plaintext highlighter-rouge">HOMEBREW_CORE_GIT_REMOTE</code> environment variables allow you to use custom Git mirrors to speed up <code class="language-plaintext highlighter-rouge">brew update</code> and <code class="language-plaintext highlighter-rouge">brew tap</code>.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/6993">I (Mike McQuaid) stood down from the Homebrew PLC and was reelected Project Leader. Sean Molenaar joined the PLC.</a> (@MikeMcQuaid)</li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 2.3.0. The most significant changes since 2.2.0 are GitHub Actions CI usage, fetching resources before installation, Docker image improvements and the deprecation of brew install from URLs.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">2.2.0</title><link href="https://brew.sh/2019/11/27/homebrew-2.2.0/" rel="alternate" type="text/html" title="2.2.0" /><published>2019-11-27T00:00:00+00:00</published><updated>2019-11-27T00:00:00+00:00</updated><id>https://brew.sh/2019/11/27/homebrew-2.2.0</id><content type="html" xml:base="https://brew.sh/2019/11/27/homebrew-2.2.0/"><![CDATA[<p>Today I’d like to announce Homebrew 2.2.0. The most significant changes since 2.1.0 are macOS Catalina support, performance increases and better Homebrew on Linux ecosystem integration.</p>

<p>Major changes and deprecations since 2.1.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/6500">macOS Catalina (10.15) is supported. macOS Sierra (10.12) and older are unsupported.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/6532">The no-op case for HOMEBREW_AUTO_UPDATE_SECS is dramatically faster and defaults to 5 minutes (rather than 1).</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/6728"><code class="language-plaintext highlighter-rouge">brew upgrade</code> no longer has an unsuccessful error code if the formula is up-to-date.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/6698"><code class="language-plaintext highlighter-rouge">brew upgrade</code>’s post-install dependent checking is dramatically faster and more reliable.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/6137">Homebrew on Linux raised their minimum requirements.</a></li>
  <li><a href="https://formulae.brew.sh">https://formulae.brew.sh</a> <a href="https://github.com/Homebrew/formulae.brew.sh/pull/150">displays Linux formulae</a>. When on Linux, <a href="https://github.com/Homebrew/brew/pull/6639"><code class="language-plaintext highlighter-rouge">brew info</code> outputs Linux analytics data</a>.</li>
  <li>Homebrew now uses OpenSSL 1.1. OpenSSL 1.0 has been removed as it was EOL by the end of 2019.</li>
  <li>Homebrew will remove Python 2.7 by the end of 2019 as it will be EOL.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/6704"><code class="language-plaintext highlighter-rouge">brew tap-pin</code> is disabled</a>. It was buggy and unused by Homebrew maintainers. Directly reference formulae (e.g. <code class="language-plaintext highlighter-rouge">brew install user/tap/formula</code>) or rename formulae in taps to avoid shadowing Homebrew/homebrew-core formulae instead.</li>
</ul>

<p>Other changes since 2.1.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/homebrew-bundle/pull/552"><code class="language-plaintext highlighter-rouge">brew bundle</code> outputs <code class="language-plaintext highlighter-rouge">Brewfile.lock.json</code> files for debugging non-reproducibility.</a></li>
  <li><a href="https://github.com/Homebrew/homebrew-bundle/pull/486"><code class="language-plaintext highlighter-rouge">brew bundle</code> allows skipping installations by setting environment variables.</a></li>
  <li><a href="https://github.com/Homebrew/homebrew-services/pull/188"><code class="language-plaintext highlighter-rouge">sudo brew services</code> takes root ownership of files when running as root.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/6705"><code class="language-plaintext highlighter-rouge">--verbose</code> command output no longer outputs (extremely) long $LOAD_PATH and Ruby paths.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/6556">Homebrew uses Ruby 2.6</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/6504"><code class="language-plaintext highlighter-rouge">brew cat</code> sets <code class="language-plaintext highlighter-rouge">bat</code> as pager if <code class="language-plaintext highlighter-rouge">HOMEBREW_BAT</code> is set</a></li>
  <li><code class="language-plaintext highlighter-rouge">brew create</code> has <a href="https://github.com/Homebrew/brew/pull/6489"><code class="language-plaintext highlighter-rouge">--rust</code></a> and <a href="https://github.com/Homebrew/brew/pull/6485"><code class="language-plaintext highlighter-rouge">--python</code></a> options.</li>
  <li><code class="language-plaintext highlighter-rouge">brew audit</code> checks <a href="https://github.com/Homebrew/brew/pull/6425">bitbucket.com</a> and <a href="https://github.com/Homebrew/brew/pull/6272">gitlab.com</a> repositories for notability.</li>
  <li>Homebrew uses <a href="https://github.com/Homebrew/brew/pull/6372">GitHub Actions CI</a> for all non-core repositories.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/6162"><code class="language-plaintext highlighter-rouge">uses_from_macos</code></a> is a new formula DSL that allows formulae to declare that they use a dependency from the macOS system (rather than from Homebrew). This is useful for additional metadata and automatically installing that dependency on Linux.</li>
  <li>Setting <a href="https://github.com/Homebrew/brew/pull/6143"><code class="language-plaintext highlighter-rouge">HOMEBREW_CURL_RETRIES</code></a> retries <code class="language-plaintext highlighter-rouge">curl</code> downloads that fail.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5961"><code class="language-plaintext highlighter-rouge">brew bump-revision</code></a> increases the <code class="language-plaintext highlighter-rouge">revision</code> of formulae.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/6032">All invocations of <code class="language-plaintext highlighter-rouge">brew</code> are faster.</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li>Many Homebrew maintainers will be attending <a href="https://fosdem.org/2020/">FOSDEM 2020</a> (say hello!) and will have our AGM afterwards on 3rd February to elect a PLC and Project Leader.</li>
  <li><a href="https://github.com/sponsors/Homebrew">Homebrew now accepts donations through GitHub Sponsors</a> and <a href="https://www.patreon.com/homebrew">still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 2.2.0. The most significant changes since 2.1.0 are macOS Catalina support, performance increases and better Homebrew on Linux ecosystem integration.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Homebrew Maintainer Meeting</title><link href="https://brew.sh/2019/06/14/homebrew-maintainer-meeting/" rel="alternate" type="text/html" title="Homebrew Maintainer Meeting" /><published>2019-06-14T00:00:00+00:00</published><updated>2019-06-14T00:00:00+00:00</updated><id>https://brew.sh/2019/06/14/homebrew-maintainer-meeting</id><content type="html" xml:base="https://brew.sh/2019/06/14/homebrew-maintainer-meeting/"><![CDATA[<p>In February 2019 we had our first Homebrew maintainer in-person meeting at and around the <a href="https://fosdem.org/2019/">FOSDEM 2019 conference</a> in Brussels. Maintainers travelled from as far as India and Canada in order to get face-time with each other and have high-bandwidth conversations.</p>

<p>Maintainers arrived on Friday and met informally to socialise and get to know each other. On Saturday we released <a href="https://brew.sh/2019/02/02/homebrew-2.0.0/">Homebrew 2.0.0</a> and on Saturday and Sunday attended the various talks at the conference (including a <a href="https://mikemcquaid.com/talks/homebrew-2.0.0/">Homebrew 2.0.0 talk</a>).</p>

<p>After getting to know each other better over the weekend we met in a hotel meeting room on Monday for the main purpose of the maintainer meeting: discussion of the future direction of the Homebrew project. 14 Homebrew maintainers were present in the meeting room and 3 others called in remotely.</p>

<p><img src="/assets/img/blog/meeting.jpg" alt="meeting" /></p>

<p>Perhaps due to Mike McQuaid arranging to <a href="https://github.com/Homebrew/brew/pull/5073">resign as Lead Maintainer on the same day</a> the majority of the discussion was about Homebrew’s project governance. We agreed on having an elected Project Leader position, Project Leadership Committee and Technical Steering Committee. Representatives were elected to each of these positions.</p>

<p><img src="/assets/img/blog/meeting2.jpg" alt="meeting" /></p>

<p>If you’re interested in more details on our agreed governance structures you can read Governance documents (<a href="https://docs.brew.sh/Homebrew-Governance">https://docs.brew.sh/Homebrew-Governance</a>) and read the representatives for all positions in the <a href="https://github.com/Homebrew/brew#who-we-are">Homebrew README’s “Who We Are” section</a>.</p>

<p><img src="/assets/img/blog/lunch.jpg" alt="lunch" /></p>

<p>Homebrew spent $11,965.85 in total on this meeting on the 14 individuals who attended. Included in this are some group meals, meeting room hire, travel (i.e. flights or trains) and hotel rooms in line with the <a href="https://sfconservancy.org/projects/policies/conservancy-travel-policy.html">Software Freedom Conservancy Travel and Reimbursable Expense Policy</a>.</p>

<p>We felt this was a disproportionally valuable use of project funds. Most of us met each other for the first time, had some difficult conversations in-person and built bonds that make us all more committed to the project.</p>

<p>Thanks so much to everyone who has ever donated to Homebrew for enabling this meeting. If you would like to support similar events in future and can afford it, please <a href="https://www.patreon.com/homebrew">donate through Patreon</a>. If you’d rather not use Patreon (our preferred donation method), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[In February 2019 we had our first Homebrew maintainer in-person meeting at and around the FOSDEM 2019 conference in Brussels. Maintainers travelled from as far as India and Canada in order to get face-time with each other and have high-bandwidth conversations.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">2.1.0</title><link href="https://brew.sh/2019/04/04/homebrew-2.1.0/" rel="alternate" type="text/html" title="2.1.0" /><published>2019-04-04T00:00:00+00:00</published><updated>2019-04-04T00:00:00+00:00</updated><id>https://brew.sh/2019/04/04/homebrew-2.1.0</id><content type="html" xml:base="https://brew.sh/2019/04/04/homebrew-2.1.0/"><![CDATA[<p>Today I’d like to announce Homebrew 2.1.0. The most significant changes since 2.0.0 are casks on <a href="https://formulae.brew.sh">https://formulae.brew.sh</a>, search on Homebrew sites and better Docker support.</p>

<p>Major changes and deprecations since 2.0.0:</p>

<ul>
  <li><a href="https://formulae.brew.sh">https://formulae.brew.sh</a> <a href="https://github.com/Homebrew/formulae.brew.sh/issues/13">now displays casks</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5925"><code class="language-plaintext highlighter-rouge">brew tap-pin</code> is deprecated</a>. It was buggy and unused by Homebrew maintainers. Directly reference formulae (e.g. <code class="language-plaintext highlighter-rouge">brew install user/tap/formula</code>) or rename formulae in taps to avoid shadowing Homebrew/homebrew-core formulae instead.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5970"><code class="language-plaintext highlighter-rouge">brew install --ignore-dependencies</code> is documented as an unsupported, developer flag</a>. If you’re trying to avoid a command being installed instead consider adjusting your <code class="language-plaintext highlighter-rouge">PATH</code> so your preferred version precedes it.</li>
</ul>

<p>Other changes since 2.0.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/5974"><code class="language-plaintext highlighter-rouge">brew doctor</code> reports unreadable, installed formulae.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5949">Homebrew’s Formula API is generated by GitHub Actions and displayed</a> on <a href="https://rubydoc.brew.sh">https://rubydoc.brew.sh</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5898"><code class="language-plaintext highlighter-rouge">brew</code> commands avoid auto-updating</a> <a href="https://github.com/Homebrew/brew/pull/5766">if no parameters are passed</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5887"><code class="language-plaintext highlighter-rouge">brew extract</code> works for all taps</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5867">“Homebrew on Linux” is used consistently instead of “Linuxbrew”</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5848">Search is available on</a> <a href="https://formulae.brew.sh">https://formulae.brew.sh</a>, <a href="https://docs.brew.sh">https://docs.brew.sh</a> and <a href="https://brew.sh">https://brew.sh</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5827">New formulae in Homebrew/homebrew-core allow HEAD</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5802">Homebrew on Linux has best-effort support for ARM64 (AArch64)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5726">Homebrew/linuxbrew-core is used for Linuxbrew’s formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5761">Homebrew builds and tests the Dockerhub Linuxbrew/brew Docker image</a> (we’re working on obtaining the Homebrew name).</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5756"><code class="language-plaintext highlighter-rouge">brew update</code> and <code class="language-plaintext highlighter-rouge">brew doctor</code> warn on deleted taps.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5733">Homebrew allows Docker to run it as <code class="language-plaintext highlighter-rouge">root</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5721"><code class="language-plaintext highlighter-rouge">brew cleanup --prune-prefix</code> option does what <code class="language-plaintext highlighter-rouge">brew prune</code> used to</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://docs.brew.sh/Homebrew-Governance">Homebrew’s Governance document</a> <a href="https://github.com/Homebrew/brew/pull/5739">is public</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5669">Mike McQuaid is now the elected Homebrew project lead. A project leadership committee and technical steering committee were also elected.</a></li>
  <li><a href="https://www.patreon.com/homebrew">Homebrew still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use Patreon (our preferred donation method), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 2.1.0. The most significant changes since 2.0.0 are casks on https://formulae.brew.sh, search on Homebrew sites and better Docker support.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">2.0.0</title><link href="https://brew.sh/2019/02/02/homebrew-2.0.0/" rel="alternate" type="text/html" title="2.0.0" /><published>2019-02-02T00:00:00+00:00</published><updated>2019-02-02T00:00:00+00:00</updated><id>https://brew.sh/2019/02/02/homebrew-2.0.0</id><content type="html" xml:base="https://brew.sh/2019/02/02/homebrew-2.0.0/"><![CDATA[<p>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), <code class="language-plaintext highlighter-rouge">brew cleanup</code> running automatically, no more options in Homebrew/homebrew-core, and removal of support for OS X Mountain Lion (10.8) and older.</p>

<p>Major changes and deprecations since 1.9.0:</p>

<ul>
  <li>Homebrew officially supports Linux and Windows 10 with Windows Subsystem for Linux (WSL). Homebrew on Linux was previously called “Linuxbrew”. You can install it in your home directory, so it does not require <code class="language-plaintext highlighter-rouge">sudo</code>, and use it to install software that your host distribution’s package manager does not provide. Homebrew on Linux uses its own repository for formulae: Homebrew/linuxbrew-core.</li>
  <li><code class="language-plaintext highlighter-rouge">brew cleanup</code> is 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 <code class="language-plaintext highlighter-rouge">HOMEBREW_NO_INSTALL_CLEANUP</code> variable. This addresses a long-standing complaint where users were surprised by how much disk space Homebrew used if they did not run <code class="language-plaintext highlighter-rouge">brew cleanup</code>.</li>
  <li>Homebrew does not run on OS X Mountain Lion (10.8) and below. For 10.4 - 10.6 support, see <a href="https://github.com/mistydemeo/tigerbrew">Tigerbrew</a>. This has allowed us to remove large amounts of legacy code.</li>
  <li>Homebrew does not migrate old, pre-1.0.0 installations from the <a href="https://github.com/Homebrew/legacy-homebrew">Homebrew/legacy-homebrew</a> (formerly <a href="https://github.com/Homebrew/homebrew">Homebrew/homebrew</a> repository. This has allowed us to delete legacy code that dealt with migrations from old versions.</li>
  <li>Homebrew does not have any formulae with options in <a href="https://github.com/Homebrew/homebrew-core">Homebrew/homebrew-core</a>. 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.</li>
</ul>

<p>Other changes since 1.9.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/issues/1860">Homebrew uses a proper option parser to generate the <code class="language-plaintext highlighter-rouge">man brew</code> and <code class="language-plaintext highlighter-rouge">--help</code>. Also, Homebrew no longer silently ignores invalid options to formulae or commands.</a>. This change will provide better feedback to users and allow making our argument handling more simple and robust.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5624">Homebrew’s portable Ruby is now built on OS X Mavericks (10.9) for improved performance.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5613"><code class="language-plaintext highlighter-rouge">brew install</code> does not try to <code class="language-plaintext highlighter-rouge">link</code> formulae that already have a cask with the same name installed</a>. This change avoids link errors in these cases.</li>
  <li><a href="https://formulae.brew.sh/analytics/">Analytics data is now available for Cask installs on formulae.brew.sh</a>.</li>
</ul>

<p>Also, if you’ve not tuned in since 1.0.0, here are the major changes since then:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/1128">RuboCop-supporting editors (e.g. VS Code, Atom) can get inline <code class="language-plaintext highlighter-rouge">brew audit</code> information when editing formulae in taps.</a> This improves the contribution experience.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/1277">A <code class="language-plaintext highlighter-rouge">brew tap-new</code> command is available for creating a new tap with a <code class="language-plaintext highlighter-rouge">README</code></a> <a href="https://github.com/Homebrew/brew/pull/5457">and preconfigured Azure Pipelines configuration</a> (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).</li>
  <li><a href="https://github.com/Homebrew/brew/pull/1684"><code class="language-plaintext highlighter-rouge">brew update-reset</code> resets all repositories and taps to their upstream versions.</a> This is useful when debugging <code class="language-plaintext highlighter-rouge">git</code> issues.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/2961"><code class="language-plaintext highlighter-rouge">brew link</code> state is preserved after <code class="language-plaintext highlighter-rouge">brew install</code> and <code class="language-plaintext highlighter-rouge">brew upgrade</code> (including for keg-only formulae)</a> but unfortunately not the <a href="https://github.com/Homebrew/brew/pull/3660"><code class="language-plaintext highlighter-rouge">brew unlink</code> state</a> due to a lack of state. This should allow many keg-only formulae to be used as if they are normal formulae.</li>
  <li>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.</li>
  <li><a href="https://github.com/Homebrew/homebrew-core/blob/c74f26ce6fe71f49eb6919060da96b30d30b2aab/cmd/brew-postgresql-upgrade-database.rb"><code class="language-plaintext highlighter-rouge">brew postgresql-upgrade-database</code> upgrades PostgreSQL database data between major versions</a>. This simplifies upgrades between PostgreSQL versions which previously required a semi-manual process and old version of PostgreSQL to be kept around.</li>
  <li>The <code class="language-plaintext highlighter-rouge">python</code> formula was upgraded to Python 3.x and <code class="language-plaintext highlighter-rouge">python@2</code> formula was added for installing Python 2.7. We initially did not comply with <a href="https://www.python.org/dev/peps/pep-0394/">PEP 394</a> and this was a mistake. We made <code class="language-plaintext highlighter-rouge">brew install python</code> and <code class="language-plaintext highlighter-rouge">brew install python@2</code> PEP 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.</li>
  <li>We deprecated and archived all the Homebrew organisation taps and created new and versioned formulae in <a href="https://github.com/Homebrew/homebrew-core">Homebrew/homebrew-core</a>. 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.</li>
  <li><a href="https://formulae.brew.sh">Homebrew Formulae is a site providing formulae data, anonymous aggregate analytics data and a JSON API querying these.</a> This allows you to quickly query Homebrew information without access to macOS or Homebrew.</li>
  <li>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.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5100">When a bottle isn’t available for your version of macOS we will use a bottle from an older version instead.</a> This will make life much more pleasant on new macOS releases before our bottling has completed (or when formulae fail to build).</li>
  <li><a href="https://github.com/Homebrew/brew/pull/4767"><code class="language-plaintext highlighter-rouge">brew upgrade</code> automatically reinstalls or upgrades formulae with broken linkage</a>. This avoids broken formulae when building from source or using optional behaviour after upgrades.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/4830"><code class="language-plaintext highlighter-rouge">brew info</code> displays analytics data. This is the way that Homebrew maintainers query analytics data so we are using the same data as the community.</a>. This will hopefully ease concerns about our collection of analytics data.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/4656">Homebrew Cask’s downloads are quarantined</a>. This provides the same level of security when downloading these tools manually.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5406">Homebrew/homebrew-core requires all formulae to be open source by the OSI definition</a>. This allows you to be confident that any <code class="language-plaintext highlighter-rouge">brew install</code> (although not <code class="language-plaintext highlighter-rouge">brew cask install</code>) from <a href="https://github.com/Homebrew/homebrew-core">Homebrew/homebrew-core</a> is open source software.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5383"><code class="language-plaintext highlighter-rouge">brew link --force</code> will not link software already provided by macOS</a> 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 <code class="language-plaintext highlighter-rouge">PATH</code>.</li>
</ul>

<p>Finally:</p>

<ul>
  <li>Many Homebrew maintainers will be attending <a href="https://fosdem.org/2019/">FOSDEM 2019</a> (say hello!) and meeting afterwards on 4th February to discuss the future governance of Homebrew.</li>
  <li><a href="https://www.patreon.com/homebrew">Homebrew still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use Patreon (our preferred donation method), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[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.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">1.9.0</title><link href="https://brew.sh/2019/01/09/homebrew-1.9.0/" rel="alternate" type="text/html" title="1.9.0" /><published>2019-01-09T00:00:00+00:00</published><updated>2019-01-09T00:00:00+00:00</updated><id>https://brew.sh/2019/01/09/homebrew-1.9.0</id><content type="html" xml:base="https://brew.sh/2019/01/09/homebrew-1.9.0/"><![CDATA[<p>Today I’d like to announce Homebrew 1.9.0. The most significant changes since 1.8.0 are Linux support, (optional) automatic <code class="language-plaintext highlighter-rouge">brew cleanup</code> and providing bottles (binary packages) to more Homebrew users.</p>

<p>Major changes and deprecations since 1.8.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/5483">Homebrew 1.9.0 has beta support for Linux and Windows 10 (with the Windows Subsystem for Linux). Homebrew on Linux (known as Linuxbrew) does not require root access</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5472"><code class="language-plaintext highlighter-rouge">brew cleanup</code> is run periodically if the <code class="language-plaintext highlighter-rouge">HOMEBREW_INSTALL_CLEANUP</code> environment variable is set</a>. <a href="https://github.com/Homebrew/brew/pull/5165">The <code class="language-plaintext highlighter-rouge">HOMEBREW_INSTALL_CLEANUP</code> environment variable will also trigger individual formula cleanup on reinstall, install or upgrade</a>. <code class="language-plaintext highlighter-rouge">brew upgrade --cleanup</code> and <code class="language-plaintext highlighter-rouge">HOMEBREW_UPGRADE_CLEANUP</code> have been replaced with the <code class="language-plaintext highlighter-rouge">HOMEBREW_INSTALL_CLEANUP</code> variable. These will become default behaviours in 2.0.0.</li>
  <li>Homebrew 1.9.0 no longer runs on 32-bit Intel CPUs.</li>
  <li><code class="language-plaintext highlighter-rouge">brew update</code> no longer migrates legacy keg symlinks, tap names, repository locations, cache locations or cache entries.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5467"><code class="language-plaintext highlighter-rouge">brew prune</code> has been replaced by and is now run as part of <code class="language-plaintext highlighter-rouge">brew cleanup</code>.</a></li>
  <li><code class="language-plaintext highlighter-rouge">brew cask --version</code> has been replaced with <code class="language-plaintext highlighter-rouge">brew --version</code> and <code class="language-plaintext highlighter-rouge">brew cask search</code> with <code class="language-plaintext highlighter-rouge">brew search --cask</code>.</li>
  <li>The <code class="language-plaintext highlighter-rouge">HOMEBREW_BUILD_FROM_SOURCE</code> environment variable has been deprecated in favour of passing <code class="language-plaintext highlighter-rouge">--build-from-source</code> to individual formulae installs.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5491"><code class="language-plaintext highlighter-rouge">brew install</code> on macOS uses the same CFLAGS for bottles and building from source</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5406">Homebrew/homebrew-core requires all formulae to be open source by the OSI definition</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5383"><code class="language-plaintext highlighter-rouge">brew link --force</code> will not link software already provided by macOS</a>.</li>
</ul>

<p>Future major changes and deprecations coming in 2.0.0:</p>

<ul>
  <li>Homebrew 2.0.0 will officially support Linux and Windows 10 (with the Windows Subsystem for Linux).</li>
  <li><code class="language-plaintext highlighter-rouge">brew cleanup</code> will be run periodically and for trigger individual formula cleanup on reinstall, install or upgrade. You can enable this behaviour now on 1.9.0 by setting the <code class="language-plaintext highlighter-rouge">HOMEBREW_INSTALL_CLEANUP</code> variable.</li>
  <li>Homebrew 2.0.0 will not run on macOS 10.8 and below. For 10.4 - 10.6 support see <a href="https://github.com/mistydemeo/tigerbrew">Tigerbrew</a>.</li>
  <li>Homebrew 2.0.0 will not be able to create universal binaries (even in taps).</li>
  <li>Homebrew 2.0.0 will no longer migrate old installations from the legacy Homebrew/homebrew repository.</li>
  <li><a href="https://github.com/Homebrew/homebrew-core/issues/31510">Homebrew 2.0.0 will not have any formulae with options in Homebrew/homebrew-core</a>. Options will still be supported and encouraged by third-party taps.</li>
</ul>

<p>Other changes since 1.8.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/5478"><code class="language-plaintext highlighter-rouge">brew info --json</code> defaults to the latest JSON version and no longer requires a version argument</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5445">The <code class="language-plaintext highlighter-rouge">TERMINFO</code> environment variable is passed through to Homebrew to enable support for some terminal emulators</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5421">Incomplete downloads can be resumed even when the server rejects HEAD requests</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5435">macOS Mojave bottles are now optimised for the newer CPUs required by Mojave</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5388"><code class="language-plaintext highlighter-rouge">brew</code>’s ZSH completion performs more caching</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5368"><code class="language-plaintext highlighter-rouge">brew bottle</code> now allows relocation of more bottles by ignoring source code</a> and <a href="https://github.com/Homebrew/brew/pull/5366">skipping matches to build dependencies</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5292">More commands now have robust options handling</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5358"><code class="language-plaintext highlighter-rouge">brew doctor</code> now outputs the non-default Xcode prefix to ease debugging when Homebrew is using one in a strange location</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5291"><code class="language-plaintext highlighter-rouge">brew upgrade</code> will not upgrade formulae installed from one tap to formulae installed in another</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5223">Homebrew now has a mission statement</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/5169"><code class="language-plaintext highlighter-rouge">Homebrew/brew</code> contains a <code class="language-plaintext highlighter-rouge">Dockerfile</code> for building Linuxbrew</a>. This is built automatically on <a href="https://hub.docker.com/r/homebrew/brew/">Homebrew’s Docker Hub page</a>.</li>
</ul>

<p>Finally:</p>

<ul>
  <li>Many Homebrew maintainers will be attending <a href="https://fosdem.org/2019/">FOSDEM 2019</a> (say hello!) and meeting afterwards to discuss the future governance of Homebrew.</li>
  <li><a href="https://www.patreon.com/homebrew">Homebrew still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use Patreon (our preferred donation method), <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 1.9.0. The most significant changes since 1.8.0 are Linux support, (optional) automatic brew cleanup and providing bottles (binary packages) to more Homebrew users.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">1.8.0</title><link href="https://brew.sh/2018/10/23/homebrew-1.8.0/" rel="alternate" type="text/html" title="1.8.0" /><published>2018-10-23T00:00:00+00:00</published><updated>2018-10-23T00:00:00+00:00</updated><id>https://brew.sh/2018/10/23/homebrew-1.8.0</id><content type="html" xml:base="https://brew.sh/2018/10/23/homebrew-1.8.0/"><![CDATA[<p>Today I’d like to announce Homebrew 1.8.0. The most significant changes since 1.7.0 are official Mojave support, linkage auto-repair on <code class="language-plaintext highlighter-rouge">brew upgrade</code>, <code class="language-plaintext highlighter-rouge">brew info</code> displaying analytics data and quarantining Cask’s downloads.</p>

<p>Major changes and deprecations since 1.7.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/5112">Download strategies unused by Homebrew/homebrew-core have been deprecated</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5086">We no longer provide support for <code class="language-plaintext highlighter-rouge">devel</code> specs in Homebrew/homebrew-core (due to CI overhead)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5100">When a bottle isn’t available for your version of macOS we will use a bottle from an older version instead</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4884">I (Mike McQuaid) will step down as lead maintainer</a> on <a href="https://github.com/Homebrew/brew/pull/5073">February 4th when the Homebrew maintainers meet in person for the first time</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4950">Mojave is officially supported (and El Capitan unsupported)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4767"><code class="language-plaintext highlighter-rouge">brew upgrade</code> automatically reinstalls or upgrades formulae with broken linkage</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4849"><code class="language-plaintext highlighter-rouge">brew shellenv</code> outputs configuration variables for Homebrew</a> (and was <a href="https://github.com/Homebrew/brew/pull/4887">reimplemented in Bash for speed</a>)</li>
  <li><a href="https://github.com/Homebrew/brew/pull/4830"><code class="language-plaintext highlighter-rouge">brew info</code> displays analytics data. This is the way that Homebrew maintainers query analytics data so we are using the same data as the community.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4819">JSON is used to marshal child process errors to avoid potential security issues</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4656">Homebrew Cask’s downloads are quarantined</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4563"><code class="language-plaintext highlighter-rouge">brew extract</code> is a new command to extract old versions of formulae from Git history</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4620">Homebrew Cask’s installs report analytics events</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4670"><code class="language-plaintext highlighter-rouge">brew cask search</code> and <code class="language-plaintext highlighter-rouge">brew cask cleanup</code> are deprecated in favour of <code class="language-plaintext highlighter-rouge">brew search</code> and <code class="language-plaintext highlighter-rouge">brew cleanup</code></a></li>
</ul>

<p>Other changes since 1.7.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/5089"><code class="language-plaintext highlighter-rouge">brew gist-logs --private</code> creates private gists</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5139">Setting <code class="language-plaintext highlighter-rouge">HOMEBREW_FORCE_HOMEBREW_ON_LINUX</code> disables using Linuxbrew settings when using Homebrew on Linux</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5030"><code class="language-plaintext highlighter-rouge">brew style</code> checks Bash style with <code class="language-plaintext highlighter-rouge">shellcheck</code></a> and <a href="https://github.com/Homebrew/brew/pull/4948">uses RuboCop RSpec by default</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/5029"><code class="language-plaintext highlighter-rouge">brew cleanup</code> removes old or unnecessary portable Rubies and linkage caches</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4984"><code class="language-plaintext highlighter-rouge">brew linkage</code> uses a JSON cache to increase reliability</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4932"><code class="language-plaintext highlighter-rouge">brew update-reset</code> accepts a repository argument</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4895"><code class="language-plaintext highlighter-rouge">bundle install --standalone</code></a> is used to handle vendored gems. This is used to use <a href="https://github.com/Homebrew/brew/pull/4913">ActiveSupport File.atomic_write</a>, <a href="https://github.com/Homebrew/brew/pull/4912">ActiveSupport Hash#deep_merge</a>, <a href="https://github.com/Homebrew/brew/pull/4906"><code class="language-plaintext highlighter-rouge">String#delete_prefix</code> backport</a> and <a href="https://github.com/Homebrew/brew/pull/4902">ActiveSupport Object#blank? and #present?</a> rather than maintaining our own poor imitations.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/4868"><code class="language-plaintext highlighter-rouge">brew update</code> follows GitHub API redirects</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4844">Directories that need to be writable are created automatically and checked more thoroughly</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4762"><code class="language-plaintext highlighter-rouge">brew linkage</code> data is used to check for multiple simultaneous versioned formulae linkage. This is more permissive than the previous recursive dependency check.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4703"><code class="language-plaintext highlighter-rouge">brew bundle check --verbose</code> displays what software is missing and causing a <code class="language-plaintext highlighter-rouge">brew bundle check</code> to fail</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4682"><code class="language-plaintext highlighter-rouge">brew update</code> prints a one-time donation request</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li>Many Homebrew maintainers will be attending <a href="https://fosdem.org/2019/">FOSDEM 2019</a>. Consider coming along and saying hello!</li>
  <li><a href="https://www.patreon.com/homebrew">Homebrew still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use Patreon, <a href="https://github.com/Homebrew/brew/#donations">check out the other ways to donate in our README</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 1.8.0. The most significant changes since 1.7.0 are official Mojave support, linkage auto-repair on brew upgrade, brew info displaying analytics data and quarantining Cask’s downloads.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Security Incident Disclosure</title><link href="https://brew.sh/2018/08/05/security-incident-disclosure/" rel="alternate" type="text/html" title="Security Incident Disclosure" /><published>2018-08-05T00:00:00+00:00</published><updated>2018-08-05T00:00:00+00:00</updated><id>https://brew.sh/2018/08/05/security-incident-disclosure</id><content type="html" xml:base="https://brew.sh/2018/08/05/security-incident-disclosure/"><![CDATA[<p>On 31st July 2018 a security researcher identified a GitHub personal access token with recently elevated scopes was leaked from Homebrew’s Jenkins that gave them access to <code class="language-plaintext highlighter-rouge">git push</code> on Homebrew/brew and Homebrew/homebrew-core. They reported this to our Hacker One. Within a few hours the credentials had been revoked, replaced and sanitised within Jenkins so they would not be revealed in future. Homebrew/brew and Homebrew/homebrew-core were updated so non-administrators on those repositories cannot push directly to <code class="language-plaintext highlighter-rouge">master</code>. Most repositories in the Homebrew organisation (notably not Homebrew/homebrew-core due to their current workflow and maintainer requests) were also updated to require CI checks from a pull request to pass before changes can be pushed to <code class="language-plaintext highlighter-rouge">master</code>.</p>

<h3 id="what-was-impacted">What was impacted</h3>

<p>GitHub Support was contacted and they verified the relevant token had not been used to perform any pushes to Homebrew/brew or Homebrew/homebrew-core during the period of elevated scopes. <strong>To be explicit: no packages were compromised and no action is required by users due to this incident.</strong></p>

<h3 id="what-were-doing-about-it">What we’re doing about it</h3>

<ul>
  <li>We have for several years enabled 2FA and third party application restrictions for the entire Homebrew GitHub organisation. This was also recommended by the security researcher.</li>
  <li>We enabled branch protection and required reviews on additional repositories as mentioned above.</li>
  <li>We requested all Homebrew maintainers review and prune their personal access tokens and disable SMS fallback for 2FA.</li>
  <li>The security researcher also recommended we consider using GPG signing for Homebrew/homebrew-core. The Homebrew project leadership committee took a vote on this and it was rejected non-unanimously due to workflow concerns.</li>
</ul>

<p>We did, do and will continue to take the security of the project and our users very seriously. We try our best to behave as a for-profit company would do in terms of timely response to security issues but this is heavily limited by our lack of resources. For example, in this the Homebrew maintainer who resolved the above issues was on paternity leave from work and the primary carer for their child and had to reach a quick resolution while their child had a nap.</p>

<p>We need more help to improve Homebrew’s security. Please consider contributing your code and code reviews to our GitHub projects, get in touch to volunteer to be on-call for security and/or system administration emergencies or <a href="https://www.patreon.com/homebrew">donate through Patreon</a>.</p>

<p>Thanks for using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[On 31st July 2018 a security researcher identified a GitHub personal access token with recently elevated scopes was leaked from Homebrew’s Jenkins that gave them access to git push on Homebrew/brew and Homebrew/homebrew-core. They reported this to our Hacker One. Within a few hours the credentials had been revoked, replaced and sanitised within Jenkins so they would not be revealed in future. Homebrew/brew and Homebrew/homebrew-core were updated so non-administrators on those repositories cannot push directly to master. Most repositories in the Homebrew organisation (notably not Homebrew/homebrew-core due to their current workflow and maintainer requests) were also updated to require CI checks from a pull request to pass before changes can be pushed to master.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">1.7.0</title><link href="https://brew.sh/2018/07/15/homebrew-1.7.0/" rel="alternate" type="text/html" title="1.7.0" /><published>2018-07-15T00:00:00+00:00</published><updated>2018-07-15T00:00:00+00:00</updated><id>https://brew.sh/2018/07/15/homebrew-1.7.0</id><content type="html" xml:base="https://brew.sh/2018/07/15/homebrew-1.7.0/"><![CDATA[<p>Today I’d like to announce Homebrew 1.7.0. The most significant changes since 1.7.0 are fixes for macOS 10.14 Mojave’s developer beta, <a href="https://formulae.brew.sh">Homebrew Formulae’s</a> JSON analytics and formulae APIs and various formula API deprecations.</p>

<p>Major changes and deprecations since 1.6.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/4274">macOS 10.14 Mojave</a> and <a href="https://github.com/Homebrew/brew/pull/4275">Xcode 10</a> are now working for some formulae (but not yet supported)</li>
  <li><a href="https://formulae.brew.sh">Homebrew Formulae now uses HTTPS, provides anonymous aggregate analytics data and has a JSON API for formulae and analytics data</a></li>
  <li><a href="https://github.com/Homebrew/brew/issues/4193">Homebrew Cask’s taps have now all moved to the Homebrew GitHub organisation</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4377">Setting <code class="language-plaintext highlighter-rouge">HOMEBREW_FORCE_BREWED_GIT</code> makes Homebrew use a Homebrew-installed rather than system Git</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4361"><code class="language-plaintext highlighter-rouge">brew install</code> and <code class="language-plaintext highlighter-rouge">upgrade</code> display all caveats at the end of installing multiple formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4392">Many formula deprecations have been disabled and disabled functions removed</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4441"><code class="language-plaintext highlighter-rouge">brew link</code> does not permit force-linking system dependencies on macOS 10.14 Mojave/CLT 10 and instead outputs the correct compiler flags to use</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4397">The <code class="language-plaintext highlighter-rouge">HOMEBREW_PREFIX</code> can no longer be in Homebrew’s temporary directory</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4067"><code class="language-plaintext highlighter-rouge">brew ls</code> no longer accepts all <code class="language-plaintext highlighter-rouge">ls</code> arguments</a></li>
</ul>

<p>Other changes since 1.6.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/4461">Homebrew now uses Ruby 2.3.7 (like macOS High Sierra 10.13.6)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4334">macOS 10.14 Mojave currently requires the CLT header package (until we have more communication with Apple)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4359"><code class="language-plaintext highlighter-rouge">brew install</code>, <code class="language-plaintext highlighter-rouge">upgrade</code> and <code class="language-plaintext highlighter-rouge">reinstall</code> now have a <code class="language-plaintext highlighter-rouge">--display-times</code> option to print the install time for each formula</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3720"><code class="language-plaintext highlighter-rouge">brew linkage</code> now uses a cache to dramatically speed up the command</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3789">Unspecified but opportunistic linked dependencies are now stored on formula installation and used to correctly generate the list of dependencies for an installed formula</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4389">Downloading Homebrew’s portable Ruby also respects the <code class="language-plaintext highlighter-rouge">HOMEBREW_BOTTLE_DOMAIN</code> variable</a></li>
  <li><a href="https://github.com/Homebrew/brew.sh/commit/9806592bbd3fb9bb85c83121ebdf892831515490">The brew.sh websites all look better on mobiles</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://www.patreon.com/homebrew">Homebrew still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use Patreon we’ve <a href="https://github.com/Homebrew/brew/pull/3568">updated the README on how to make single donations through PayPal, cheque or wire transfer</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 1.7.0. The most significant changes since 1.7.0 are fixes for macOS 10.14 Mojave’s developer beta, Homebrew Formulae’s JSON analytics and formulae APIs and various formula API deprecations.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">1.6.0</title><link href="https://brew.sh/2018/04/09/homebrew-1.6.0/" rel="alternate" type="text/html" title="1.6.0" /><published>2018-04-09T00:00:00+00:00</published><updated>2018-04-09T00:00:00+00:00</updated><id>https://brew.sh/2018/04/09/homebrew-1.6.0</id><content type="html" xml:base="https://brew.sh/2018/04/09/homebrew-1.6.0/"><![CDATA[<p>Today I’d like to announce Homebrew 1.6.0. The most significant changes since 1.5.0 are <code class="language-plaintext highlighter-rouge">brew install python</code> installing Python 3, the deprecation of Homebrew/homebrew-php and various formula API deprecations.</p>

<p>Major changes and deprecations since 1.5.0:</p>

<ul>
  <li>The <code class="language-plaintext highlighter-rouge">python</code> formula was upgraded to Python 3.x and <code class="language-plaintext highlighter-rouge">python@2</code> formula was added for installing Python 2.7. We initially did not comply with <a href="https://www.python.org/dev/peps/pep-0394/">PEP 394</a> and this was a mistake; sorry for the pain. We heard your feedback on Python 3 and made <code class="language-plaintext highlighter-rouge">brew install python</code> and <code class="language-plaintext highlighter-rouge">brew install python@2</code> PEP 394 compliant. We will not change this again until PEP 394 has changed.</li>
  <li>We deprecated and archived the Homebrew/homebrew-php tap and created new <code class="language-plaintext highlighter-rouge">php</code> and versioned <code class="language-plaintext highlighter-rouge">php@*</code> formulae in <a href="https://github.com/homebrew/homebrew-core">Homebrew/core</a>. This completes the deprecation and archival of the last non-<a href="https://github.com/homebrew/homebrew-core">Homebrew/core</a> tap for end-users. We encourage more niche formulae and options to be supported in taps outside the Homebrew organisation.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/3896">Many formula deprecations have been disabled and disabled functions removed</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4022">Homebrew’s <code class="language-plaintext highlighter-rouge">curl</code> invocations now only read <code class="language-plaintext highlighter-rouge">curlrc</code> if <code class="language-plaintext highlighter-rouge">HOMEBREW_CURLRC</code> is set</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4033"><code class="language-plaintext highlighter-rouge">brew audit --strict</code> now checks for <code class="language-plaintext highlighter-rouge">depends_on ... build.with?</code> dependencies (because they don’t and cannot work as expected)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3948"><code class="language-plaintext highlighter-rouge">brew audit</code> now flags the use of <code class="language-plaintext highlighter-rouge">:run</code> dependencies as they were a no-op</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3747"><code class="language-plaintext highlighter-rouge">brew tap</code> refuses to tap deprecated taps</a></li>
</ul>

<p>Other changes since 1.5.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/4038">We’ve updated our documentation to note that <code class="language-plaintext highlighter-rouge">curl</code> needs <code class="language-plaintext highlighter-rouge">--insecure</code> on OS X 10.7 and below</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/4037"><code class="language-plaintext highlighter-rouge">brew unlink</code> no longer incorrectly removes versioned aliases</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3940"><code class="language-plaintext highlighter-rouge">brew linkage</code> now outputs broken dependencies and missing libraries</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3870"><code class="language-plaintext highlighter-rouge">brew bump-formula-pr</code> uses the GitHub API directly rather than <code class="language-plaintext highlighter-rouge">hub</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3938">You can now use <code class="language-plaintext highlighter-rouge">scp://</code> in formula URLs</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3979">Runtime dependencies handling is improved so e.g. <code class="language-plaintext highlighter-rouge">brew uninstall</code> and <code class="language-plaintext highlighter-rouge">brew missing</code> will now have consistent output</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3986">Bottles can use custom download strategy URLs</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3985"><code class="language-plaintext highlighter-rouge">brew install</code> will now also search casks if the formulae was not found</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3966">Bottle <code class="language-plaintext highlighter-rouge">root_url</code>s can now use any download strategy</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3915"><code class="language-plaintext highlighter-rouge">brew install --only-dependencies</code> will install any missing dependencies even if the formula is already installed</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3913"><code class="language-plaintext highlighter-rouge">brew upgrade</code> now has a <code class="language-plaintext highlighter-rouge">HOMEBREW_UPGRADE_CLEANUP</code> environment variable to request automatic removal of old versions of a formula on upgrade</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3875">Dependencies can now be <code class="language-plaintext highlighter-rouge">:test</code> to indicate they are only used by the <code class="language-plaintext highlighter-rouge">test do</code> block</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3851"><code class="language-plaintext highlighter-rouge">brew irb --pry</code> uses <code class="language-plaintext highlighter-rouge">pry</code> instead of <code class="language-plaintext highlighter-rouge">irb</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3845"><code class="language-plaintext highlighter-rouge">brew prof</code> and <code class="language-plaintext highlighter-rouge">brew ruby</code> commands have been added for Homebrew developers</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3837"><code class="language-plaintext highlighter-rouge">brew update</code> now handles a too old system Git (by installing Homebrew’s <code class="language-plaintext highlighter-rouge">git</code>) to access GitHub on OS X 10.8 and below</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3090">If the <code class="language-plaintext highlighter-rouge">NO_COLOR</code> environment variable is set, Homebrew disables all coloured output</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3748"><code class="language-plaintext highlighter-rouge">brew pin</code> is no longer automatically undone by <code class="language-plaintext highlighter-rouge">brew uninstall</code> or <code class="language-plaintext highlighter-rouge">brew upgrade</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3751">Homebrew now passes through the <code class="language-plaintext highlighter-rouge">ALL_PROXY</code> variable to <code class="language-plaintext highlighter-rouge">curl</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3749">We now tell people when they need to upgrade their macOS installation to install a formula</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/4020">The Homebrew maintainers will attempt to have more of our communication in the open</a></li>
  <li>Thank you to everyone who helped with the Python and PHP migrations and provided constructive, polite and actionable feedback. No thanks to those who have used these as an excuse to abuse the entirely volunteer run project and maintainers. If you’re going to @mention individual maintainers or this project on Twitter with unkind or rude things: expect to be immediately blocked here and on GitHub. When you do that also please be aware that you are sapping volunteer motivation and in doing so make the project worse. In short, remember that <a href="https://mikemcquaid.com/2018/03/19/open-source-maintainers-owe-you-nothing/">open source maintainers owe you nothing</a>.</li>
  <li><a href="https://www.patreon.com/homebrew">Homebrew still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use Patreon we’ve <a href="https://github.com/Homebrew/brew/pull/3568">updated the README on how to make single donations through PayPal, cheque or wire transfer</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 1.6.0. The most significant changes since 1.5.0 are brew install python installing Python 3, the deprecation of Homebrew/homebrew-php and various formula API deprecations.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">1.5.0</title><link href="https://brew.sh/2018/01/19/homebrew-1.5.0/" rel="alternate" type="text/html" title="1.5.0" /><published>2018-01-19T00:00:00+00:00</published><updated>2018-01-19T00:00:00+00:00</updated><id>https://brew.sh/2018/01/19/homebrew-1.5.0</id><content type="html" xml:base="https://brew.sh/2018/01/19/homebrew-1.5.0/"><![CDATA[<p>Today I’d like to announce Homebrew 1.5.0. The most significant changes since 1.4.0 are deprecations of formula APIs and some Homebrew organisation formula taps.</p>

<p>Future dates for your calendar:</p>

<ul>
  <li>On 1st March 2018 the <code class="language-plaintext highlighter-rouge">python</code> formula will be upgraded to Python 3.x and a <code class="language-plaintext highlighter-rouge">python@2</code> formula will be added for installing Python 2.7 (although this will be keg-only so neither <code class="language-plaintext highlighter-rouge">python</code> nor <code class="language-plaintext highlighter-rouge">python2</code> will be added to the <code class="language-plaintext highlighter-rouge">PATH</code> by default without a manual <code class="language-plaintext highlighter-rouge">brew link --force</code>). We will maintain <code class="language-plaintext highlighter-rouge">python2</code>, <code class="language-plaintext highlighter-rouge">python3</code> and <code class="language-plaintext highlighter-rouge">python@3</code> aliases. Any formulae that use <code class="language-plaintext highlighter-rouge">depends_on "python"</code> outside <a href="https://github.com/homebrew/homebrew-core">Homebrew/core</a> will need to be updated at this point if they wish to keep using Python 2. Note: macOS has provided Python 2.7 since OS X Lion (10.7) so you can update formulae that need Python 2 today by removing <code class="language-plaintext highlighter-rouge">depends_on "python"</code> so they use the system <code class="language-plaintext highlighter-rouge">python</code> instead.</li>
  <li>By 31st March 2018 we will deprecate and archive the Homebrew/homebrew-php tap. Unfortunately we have been unable to maintain an acceptable, consistent user or contributor experience and CI workload through non-core formula taps in the Homebrew organisation so we are continuing to migrate widely used formulae into <a href="https://github.com/homebrew/homebrew-core">Homebrew/core</a> and encourage more niche formulae and options to be supported outside the Homebrew organisation.</li>
</ul>

<p>Major changes and deprecations since 1.4.0:</p>

<ul>
  <li>The Homebrew/homebrew-science tap has been archived (for the reasons explained above) as <a href="https://brew.sh/2017/12/11/homebrew-1.4.0/">noted previously</a>. This does not represent an adversarial relationship between Homebrew and the science community (as we have imported the widely used formulae from this tap) but an inability to maintain an acceptable level of quality in this tap and differences of opinion on contributor experience (this tap aimed to work on Homebrew and Linuxbrew which made contribution difficult).</li>
  <li><a href="https://github.com/Homebrew/homebrew-core/blob/e0708e2a1a68a4ba7d826f9c6fc9fd21b29e5220/cmd/brew-postgresql-upgrade-database.rb"><code class="language-plaintext highlighter-rouge">brew postgresql-upgrade-database</code> is a new command to simplify upgrading PostgreSQL databases between major versions</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/3661"><code class="language-plaintext highlighter-rouge">default_formula</code> are no longer supported for <code class="language-plaintext highlighter-rouge">Requirement</code>s. This was originally added to ease our bottle/binary package building when Homebrew was primarily a build-from-source package manager. Now that Homebrew is primarily a binary package manager, <code class="language-plaintext highlighter-rouge">default_formula</code> was no longer useful and was the source of many complex dependency resolution bugs.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3659"><code class="language-plaintext highlighter-rouge">Requirement</code>s that allowed you to use <code class="language-plaintext highlighter-rouge">depends_on</code> for software outside of Homebrew that was also provided by Homebrew have been deprecated. Instead formulae that wish to support e.g. a non-Homebrew Python should use <code class="language-plaintext highlighter-rouge">env :std</code> and use the first instance of the software in the PATH (found with <code class="language-plaintext highlighter-rouge">which</code>)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3694">Various, old deprecated APIs have been disabled</a> and <a href="https://github.com/Homebrew/brew/pull/3652">more deprecations added</a>.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/3660"><code class="language-plaintext highlighter-rouge">brew reinstall</code> and <code class="language-plaintext highlighter-rouge">brew upgrade</code> no longer keep manually <code class="language-plaintext highlighter-rouge">brew unlink</code>ed kegs as unlinked on <code class="language-plaintext highlighter-rouge">reinstall</code> or <code class="language-plaintext highlighter-rouge">upgrade</code>. Without this change there was no way of differentiating manually unlinked and failed-to-link kegs so a single keg link failure would stop any future version trying to link (leading to the software unexpectedly being missing from the user’s <code class="language-plaintext highlighter-rouge">PATH</code>).</a></li>
</ul>

<p>Other changes since 1.4.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/3650"><code class="language-plaintext highlighter-rouge">brew audit</code> allows the use of <code class="language-plaintext highlighter-rouge">env :std</code> in non-Homebrew organisation taps</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3691"><code class="language-plaintext highlighter-rouge">HOMEBREW_DEVELOPER</code>s are encouraged to submit pull requests for deprecations</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3614">Attempting to <code class="language-plaintext highlighter-rouge">brew install</code> a formula that doesn’t exist will only check if the formula was deleted in the last month (rather than ever) to improve performance.</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3693"><code class="language-plaintext highlighter-rouge">brew info</code> now shows <code class="language-plaintext highlighter-rouge">--devel</code> and <code class="language-plaintext highlighter-rouge">--HEAD</code> options for optionless formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3683">Homebrew’s portable Ruby has a GitHub mirror for users that cannot access Bintray</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3644"><code class="language-plaintext highlighter-rouge">brew upgrade</code> skips the formula rather than exiting if an upgrade fails due to an unsatisfied <code class="language-plaintext highlighter-rouge">Requirement</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3584">The <code class="language-plaintext highlighter-rouge">no_proxy</code> variable is passed through to the Homebrew fetch/install process (e.g. for <code class="language-plaintext highlighter-rouge">curl</code>)</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/3676">Homebrew has fewer maintainers than we once did so we’d love more help</a>. If you’re interested check out the <a href="https://docs.brew.sh/New-Maintainer-Checklist">documented expectations for Homebrew maintainers</a>.</li>
  <li><a href="https://www.patreon.com/homebrew">Homebrew still accepts donations through Patreon</a>. If you can afford it, please consider donating. If you’d rather not use Patreon we’ve <a href="https://github.com/Homebrew/brew/pull/3568">updated the README on how to make single donations through PayPal, cheque or wire transfer</a>.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 1.5.0. The most significant changes since 1.4.0 are deprecations of formula APIs and some Homebrew organisation formula taps.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">1.4.0</title><link href="https://brew.sh/2017/12/11/homebrew-1.4.0/" rel="alternate" type="text/html" title="1.4.0" /><published>2017-12-11T00:00:00+00:00</published><updated>2017-12-11T00:00:00+00:00</updated><id>https://brew.sh/2017/12/11/homebrew-1.4.0</id><content type="html" xml:base="https://brew.sh/2017/12/11/homebrew-1.4.0/"><![CDATA[<p>Today I’d like to announce Homebrew 1.4.0. The most significant change since 1.3.0 is that Homebrew filters environment variables.</p>

<p>Major changes and deprecations since 1.3.0:</p>

<ul>
  <li>Homebrew filters all user environment variables. This reduces errors in installing formulae from source and in Homebrew commands.</li>
  <li>Homebrew’s “bottle hooks” <a href="https://github.com/Homebrew/brew/pull/3510">have been removed</a>. These were added originally to remove Boxen’s monkey-patching of Homebrew’s internal, private APIs but are no longer necessary for or used by Boxen.</li>
  <li>The Homebrew/science tap is migrating notable formulae to Homebrew/core and will be archived in January 2018. The Homebrew/apache tap <a href="https://github.com/Homebrew/brew/pull/3274">has been deprecated and archived</a>. In 2018 we will also deprecate and archive the Homebrew/php tap. Over the last few minor versions of Homebrew we’ve migrated, deprecated and archived most of the formula taps in the Homebrew organisation to improve the reliability, consistency and discoverability of formulae under the Homebrew organisation.</li>
  <li>macOS version analytics <a href="https://brew.sh/analytics/os-version/">are available</a> on the brew.sh homepage.</li>
</ul>

<p>Other changes since 1.3.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/3542">Xcode 9.2 is the latest supported version of Xcode</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3121">macOS High Sierra is the latest supported version of macOS</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3164">Homebrew’s vendored Ruby is 2.3.3 (the same version as provided by macOS High Sierra). This is only used on older macOS versions.</a></li>
  <li>Using the <a href="https://github.com/Homebrew/brew/pull/3533"><code class="language-plaintext highlighter-rouge">HOMEBREW_FORCE_BREWED_CURL</code></a> variable you can <a href="https://github.com/Homebrew/brew/pull/3482">force Homebrew to use its own <code class="language-plaintext highlighter-rouge">curl</code></a> for all downloads. This may be useful combined with the <code class="language-plaintext highlighter-rouge">proxychains-ng</code> formula in bypassing any grating, ceramic firewalls.</li>
  <li>Homebrew no longer sets <a href="https://github.com/Homebrew/brew/pull/3464">MACOSX_DEPLOYMENT_TARGET</a> when building formulae</li>
  <li><a href="https://github.com/Homebrew/brew/pull/3453">Homebrew requires the CLT on all but the latest version of macOS (to avoid copious workarounds in formulae)</a></li>
  <li>Homebrew <a href="https://github.com/Homebrew/brew/pull/3316">correctly</a> <a href="https://github.com/Homebrew/brew/pull/3347">orders</a> <a href="https://github.com/Homebrew/brew/pull/3380">APFS</a> <a href="https://github.com/Homebrew/brew/pull/3430">filesystem</a> command output</li>
  <li><a href="https://github.com/Homebrew/brew/pull/3420"><code class="language-plaintext highlighter-rouge">brew config</code> outputs most <code class="language-plaintext highlighter-rouge">HOMEBREW_*</code> variables</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3368"><code class="language-plaintext highlighter-rouge">brew readall</code> and <code class="language-plaintext highlighter-rouge">brew update-reset</code> are documented commands in <code class="language-plaintext highlighter-rouge">man brew</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3273">Homebrew ignores applications (e.g. Xcode) found in Time Machine backups</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3176">Formulae are loaded from bottles (when sensible)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3103"><code class="language-plaintext highlighter-rouge">brew linkage</code> will list possible unnecessary dependencies</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3158">The first-time installation on Mac OS X 10.5 has been improved</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3151">Require some HTTP mirrors for old OS X versions without a system <code class="language-plaintext highlighter-rouge">curl</code> that consistently supports HTTPS</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3135">Homebrew now always outputs when tapping Homebrew/core (rather than a silent delay)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2982">Many more <code class="language-plaintext highlighter-rouge">brew audit</code> checks have been ported to RuboCop so are available in your text editor</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3105"><code class="language-plaintext highlighter-rouge">brew install</code>ing local bottles no longer requires a <code class="language-plaintext highlighter-rouge">sha256</code> in the formula</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3059"><code class="language-plaintext highlighter-rouge">brew search</code> explains what it’s searching for at each stage</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3043"><code class="language-plaintext highlighter-rouge">brew pin</code> documentation explains when and why pinned formulae may be upgraded</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/3016">The macOS sandbox message is no longer printed (as it has been on by default for a while)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2997"><code class="language-plaintext highlighter-rouge">brew audit</code> will only check for non-libraries in <code class="language-plaintext highlighter-rouge">lib</code> for new formulae</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li>Thanks to our new sponsor, <a href="https://www.commsworld.com">CommsWorld</a>, for hosting our physical hardware. This was particularly helpful for the macOS 10.13 release.</li>
  <li><a href="https://www.patreon.com/homebrew">Homebrew still accepts donations through Patreon</a>. If you can afford it, please consider donating.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 1.4.0. The most significant change since 1.3.0 is that Homebrew filters environment variables.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">1.3.0</title><link href="https://brew.sh/2017/07/31/homebrew-1.3.0/" rel="alternate" type="text/html" title="1.3.0" /><published>2017-07-31T00:00:00+00:00</published><updated>2017-07-31T00:00:00+00:00</updated><id>https://brew.sh/2017/07/31/homebrew-1.3.0</id><content type="html" xml:base="https://brew.sh/2017/07/31/homebrew-1.3.0/"><![CDATA[<p>Today I’d like to announce Homebrew 1.3.0. The most significant change since 1.2.0 is that <code class="language-plaintext highlighter-rouge">brew install python</code> no longer installs a <code class="language-plaintext highlighter-rouge">python</code> binary without manual <code class="language-plaintext highlighter-rouge">PATH</code> additions and instead installs a <code class="language-plaintext highlighter-rouge">python2</code> binary. This avoids overriding the system <code class="language-plaintext highlighter-rouge">python</code> binary by default when installing Python as a dependency. It also paves the way to eventually have <code class="language-plaintext highlighter-rouge">python</code> be Python 3.x.</p>

<p>Major changes and deprecations since 1.2.0:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/2898"><code class="language-plaintext highlighter-rouge">brew install</code> (and <code class="language-plaintext highlighter-rouge">upgrade</code>/<code class="language-plaintext highlighter-rouge">reinstall</code>) use the macOS sandbox for all builds by default</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2899"><code class="language-plaintext highlighter-rouge">revision</code> is deprecated in favour of <code class="language-plaintext highlighter-rouge">rebuild</code> in <code class="language-plaintext highlighter-rouge">bottle do</code> blocks</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2899"><code class="language-plaintext highlighter-rouge">fails_with :llvm</code> is deprecated as it’s always a no-op</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2923">versioned aliases’ <code class="language-plaintext highlighter-rouge">opt</code> links for taps are created based on their name and not in subdirectories</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2961"><code class="language-plaintext highlighter-rouge">brew link</code> and <code class="language-plaintext highlighter-rouge">brew unlink</code> state is preserved after <code class="language-plaintext highlighter-rouge">brew install</code> and <code class="language-plaintext highlighter-rouge">brew upgrade</code> (including for keg-only formulae)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2816"><code class="language-plaintext highlighter-rouge">brew test</code> requires non-keg-only formulae to be linked</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2752">events we didn’t use are no longer reported to analytics</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2758"><code class="language-plaintext highlighter-rouge">BuildErrors</code> reported to analytics now include the requested formula installation options</a></li>
</ul>

<p>While all the functionality for these deprecations will be supported for the foreseeable future in <a href="https://github.com/Homebrew/brew">Homebrew/brew</a> for 3rd-party usage, <a href="https://github.com/Homebrew/homebrew-core">Homebrew/homebrew-core</a> has removed the use of these APIs from formulae to improve the user experience.</p>

<p>Other changes since 1.2.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/2969"><code class="language-plaintext highlighter-rouge">default_formula</code> are always used when pouring bottles again</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2940"><code class="language-plaintext highlighter-rouge">brew --prefix</code> is faster</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2883"><code class="language-plaintext highlighter-rouge">with_env</code> can be used to simplify temporarily setting environment variables</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2895"><code class="language-plaintext highlighter-rouge">homebrew npm-noob</code> is a new tool to ease creating formulae from <code class="language-plaintext highlighter-rouge">npm</code> packages</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2858"><code class="language-plaintext highlighter-rouge">brew update</code> arguments tell you more explicitly which <code class="language-plaintext highlighter-rouge">brew upgrade</code> command to run</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2829"><code class="language-plaintext highlighter-rouge">brew bump-formula-pr</code> now works with a shallow Git clone of a tap</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2827">versions are detected</a> <a href="https://github.com/Homebrew/brew/pull/2931">more reliably from URLs</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2954">you can <code class="language-plaintext highlighter-rouge">brew install</code> formulae whose dependency trees require more than one version of the same <code class="language-plaintext highlighter-rouge">:build</code>-time dependency</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2815"><code class="language-plaintext highlighter-rouge">:build</code>-time requirements are no longer fatal when installing from bottles</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2749"><code class="language-plaintext highlighter-rouge">brew edit</code> will use <code class="language-plaintext highlighter-rouge">atom</code> if available</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2732">Basic</a> <a href="https://github.com/Homebrew/brew/pull/2738">macOS</a> <a href="https://github.com/Homebrew/brew/pull/2759">10.13</a> <a href="https://github.com/Homebrew/brew/pull/2973">High</a> <a href="https://github.com/Homebrew/brew/pull/2806">Sierra</a> <a href="https://github.com/Homebrew/brew/pull/2872">support</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2721"><code class="language-plaintext highlighter-rouge">brew search</code> includes Homebrew Cask results even when it is tapped</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2679"><code class="language-plaintext highlighter-rouge">brew style</code> and <code class="language-plaintext highlighter-rouge">brew audit</code> run <code class="language-plaintext highlighter-rouge">rubocop</code> in parallel for performance</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2470"><code class="language-plaintext highlighter-rouge">brew info</code> displays formula conflict reasons</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2617"><code class="language-plaintext highlighter-rouge">brew install --interactive</code> can access <code class="language-plaintext highlighter-rouge">$HOME</code> to provide a better shell experience</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2406"><code class="language-plaintext highlighter-rouge">brew install</code> can install bottles from a URL</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2579"><code class="language-plaintext highlighter-rouge">brew postinstall</code> allows reinstalling <code class="language-plaintext highlighter-rouge">etc</code> and <code class="language-plaintext highlighter-rouge">var</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2628">Many</a> <a href="https://github.com/Homebrew/brew/pull/2631"><code class="language-plaintext highlighter-rouge">brew audit</code></a> <a href="https://github.com/Homebrew/brew/pull/2662">checks</a> <a href="https://github.com/Homebrew/brew/pull/2664">have</a> <a href="https://github.com/Homebrew/brew/pull/2755">been</a> <a href="https://github.com/Homebrew/brew/pull/2790">ported</a> <a href="https://github.com/Homebrew/brew/pull/2843">to</a> <a href="https://github.com/Homebrew/brew/pull/2879"><code class="language-plaintext highlighter-rouge">rubocop</code></a> <a href="https://github.com/Homebrew/brew/pull/2901">providing</a> <a href="https://github.com/Homebrew/brew/pull/2905">in-editor</a> <a href="https://github.com/Homebrew/brew/pull/2911">feedback</a> <a href="https://github.com/Homebrew/brew/pull/2932">on Homebrew style</a></li>
</ul>

<p>Finally:</p>

<ul>
  <li><a href="https://www.patreon.com/homebrew">Homebrew still accepts donations through Patreon</a>. If you can afford it, please consider donating.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 1.3.0. The most significant change since 1.2.0 is that brew install python no longer installs a python binary without manual PATH additions and instead installs a python2 binary. This avoids overriding the system python binary by default when installing Python as a dependency. It also paves the way to eventually have python be Python 3.x.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">1.2.0</title><link href="https://brew.sh/2017/05/01/homebrew-1.2.0/" rel="alternate" type="text/html" title="1.2.0" /><published>2017-05-01T00:00:00+00:00</published><updated>2017-05-01T00:00:00+00:00</updated><id>https://brew.sh/2017/05/01/homebrew-1.2.0</id><content type="html" xml:base="https://brew.sh/2017/05/01/homebrew-1.2.0/"><![CDATA[<p>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 <a href="https://github.com/Homebrew">Homebrew GitHub organisation</a> have been deprecated and the currently buildable software moved into <a href="https://github.com/Homebrew/homebrew-core">Homebrew/homebrew-core</a>. This will improve the quality and availability of all their software.</p>

<p>Additionally, as Homebrew/homebrew-versions has been moved into <a href="https://github.com/Homebrew/homebrew-core">Homebrew/homebrew-core</a> Homebrew provides better, official support for different versions. You can read more about this in the <a href="https://docs.brew.sh/Versions.html">dedicated versions document</a>. 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 <a href="https://docs.brew.sh/How-to-Create-and-Maintain-a-Tap">own tap (package repository)</a>.</p>

<p>Since 1.1.0 the following deprecations have been made:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/1775"><code class="language-plaintext highlighter-rouge">env :std</code> and <code class="language-plaintext highlighter-rouge">env :userpaths</code> in formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1674"><code class="language-plaintext highlighter-rouge">OS.mac?</code> and <code class="language-plaintext highlighter-rouge">OS.linux?</code> in formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1673"><code class="language-plaintext highlighter-rouge">fails_with :llvm</code> in formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1698"><code class="language-plaintext highlighter-rouge">32-bit</code> options in formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2562"><code class="language-plaintext highlighter-rouge">go get</code> usage in formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2482">formulae dependencies that need built with non-default options</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2479">new formulae that require patches</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2473">language module requirements (e.g. <code class="language-plaintext highlighter-rouge">depends_on "pygments.rb" =&gt; :ruby</code>)</a></li>
  <li>Universal <a href="https://github.com/Homebrew/brew/pull/1844">options</a> and <a href="https://github.com/Homebrew/brew/pull/2477">builds of formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2480"><code class="language-plaintext highlighter-rouge">brew tap</code> of deprecated, official taps</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1690"><code class="language-plaintext highlighter-rouge">brew cask update</code> command</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1808"><code class="language-plaintext highlighter-rouge">brew linkapps</code> and <code class="language-plaintext highlighter-rouge">brew unlinkapps</code> commands</a></li>
  <li>Various internal APIs on <a href="https://github.com/Homebrew/brew/pull/1701"><code class="language-plaintext highlighter-rouge">ENV.</code></a> and <a href="https://github.com/Homebrew/brew/pull/2522">elsewhere</a></li>
</ul>

<p>While all the functionality for these deprecations will be supported for the foreseeable future in <a href="https://github.com/Homebrew/brew">Homebrew/brew</a> for 3rd-party usage, <a href="https://github.com/Homebrew/homebrew-core">Homebrew/homebrew-core</a> will be removing the use of these APIs from formulae to improve the user experience.</p>

<p>Since 1.1.0 some new commands are available:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/2309"><code class="language-plaintext highlighter-rouge">brew cask outdated</code> shows outdated Casks</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1972"><code class="language-plaintext highlighter-rouge">brew formula</code> outputs the location of a formula</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1684"><code class="language-plaintext highlighter-rouge">brew update-reset</code> simplifies cleaning up broken repositories</a></li>
</ul>

<p>Some of the other changes since 1.1.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/2481"><code class="language-plaintext highlighter-rouge">brew create</code> uses GitHub metadata to populate fields when creating from a GitHub archive</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2478"><code class="language-plaintext highlighter-rouge">brew audit</code> provides <code class="language-plaintext highlighter-rouge">--only</code> and <code class="language-plaintext highlighter-rouge">--except</code> flags to allow selectively running <code class="language-plaintext highlighter-rouge">brew audit</code> methods</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/2540"><code class="language-plaintext highlighter-rouge">brew search</code> uses a single GitHub API call for searching all Homebrew and Caskroom taps</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1192"><code class="language-plaintext highlighter-rouge">brew install</code> creates symlinks in <code class="language-plaintext highlighter-rouge">opt</code> for formulae aliases (such as versioned aliases)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1708"><code class="language-plaintext highlighter-rouge">brew update</code> will symlink shell completions provided by taps</a></li>
  <li><code class="language-plaintext highlighter-rouge">brew tests</code> <a href="https://github.com/Homebrew/brew/pull/2260">runs all cask tests (replacing <code class="language-plaintext highlighter-rouge">brew cask-tests</code>)</a> and <a href="https://github.com/Homebrew/brew/pull/2233">all tests use RSpec rather than MiniTest</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1763">New download strategies were added for handling private GitHub repositories</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1813">We store (and report to anonymous analytics) whether a package was installed as a dependency or on request. This is returned as part of <code class="language-plaintext highlighter-rouge">brew info --json=v1</code></a>. 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 <code class="language-plaintext highlighter-rouge">brew bundle dump</code> and <code class="language-plaintext highlighter-rouge">brew bundle cleanup</code> to handle dependencies more sensibly.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/1710">Xcode prerelease warnings have been removed</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1642"><code class="language-plaintext highlighter-rouge">brew reinstall</code>, <code class="language-plaintext highlighter-rouge">upgrade</code> and <code class="language-plaintext highlighter-rouge">install</code> always output used options</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1608"><code class="language-plaintext highlighter-rouge">brew tap-new</code> uses our latest Travis CI recommended configuration providing zero-configuration CI for all formulae taps</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1082"><code class="language-plaintext highlighter-rouge">brew uninstall</code> now refuses to uninstall a package if other packages that depend on it are still installed</a></li>
  <li>RuboCop is used for <a href="https://github.com/Homebrew/brew/pull/2242">formulae <code class="language-plaintext highlighter-rouge">desc</code> audits</a> and <a href="https://github.com/Homebrew/brew/pull/2465">checking the order of methods in formulae</a> rather than requiring <code class="language-plaintext highlighter-rouge">brew audit</code> be run. This also allows these checks to be run automatically in any editor with RuboCop integration.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/1753">Setting <code class="language-plaintext highlighter-rouge">HOMEBREW_ENV_FILTERING</code> will filter all custom user environment variables from <code class="language-plaintext highlighter-rouge">brew</code></a>. Eventually we hope to enable this by default.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/2524">Sensitive tokens in the environment are hidden from untrusted 3rd-party code in <code class="language-plaintext highlighter-rouge">brew install</code> and <code class="language-plaintext highlighter-rouge">brew test</code></a></li>
  <li><a href="https://github.com/Homebrew/homebrew-services/pull/112"><code class="language-plaintext highlighter-rouge">brew services</code> provides better error reporting using new macOS APIs</a></li>
</ul>

<p>And finally:</p>

<ul>
  <li><a href="https://docs.brew.sh">A new documentation site is at docs.brew.sh</a></li>
  <li><a href="https://brew.sh/analytics/">A dump of installation, installation on request and build error events is provided on this site</a></li>
  <li><a href="https://discourse.brew.sh">Homebrew’s mailing list has been deprecated in favour of our Discourse forum</a></li>
  <li><a href="https://www.patreon.com/homebrew">Homebrew accepts donations through Patreon</a>. If you can afford it, please consider donating.</li>
  <li><a href="https://hackerone.com/homebrew">Homebrew uses HackerOne for security vulnerability disclosure</a></li>
  <li>Homebrew’s CI servers are now provided by <a href="https://www.macstadium.com/">MacStadium</a> and <a href="https://www.digitalocean.com">DigitalOcean</a>. Thanks to <a href="https://www.positive-internet.com">Positive Internet</a> for years of friendship, incredible customer support and super reliable hosting.</li>
</ul>

<p>Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[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.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">1.1.0</title><link href="https://brew.sh/2016/11/07/homebrew-1.1.0/" rel="alternate" type="text/html" title="1.1.0" /><published>2016-11-07T00:00:00+00:00</published><updated>2016-11-07T00:00:00+00:00</updated><id>https://brew.sh/2016/11/07/homebrew-1.1.0</id><content type="html" xml:base="https://brew.sh/2016/11/07/homebrew-1.1.0/"><![CDATA[<p>Today I’d like to announce Homebrew 1.1.0. We’ve had a great response to Homebrew 1.0.0 and been iterating on our work there. That 1.1.0 follows 1.0.9 is a happy coincidence due to breaking changes; in the future we may have a e.g. 1.1.10.</p>

<p>1.1.0 contains some breaking changes:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/1451">Disable SHA-1 checksum support in formulae</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1452">Disable running Homebrew as the <code class="language-plaintext highlighter-rouge">root</code> user (e.g. <code class="language-plaintext highlighter-rouge">sudo brew</code>)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1446">Bottles with <code class="language-plaintext highlighter-rouge">_or_later</code> tags no longer use <code class="language-plaintext highlighter-rouge">_or_later</code> in their filenames so the existing bottle can be reused</a></li>
</ul>

<p>Some of the changes since 1.0.0 I’d like to highlight are the following:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/1121">A branch named <code class="language-plaintext highlighter-rouge">stable</code> (rather than <code class="language-plaintext highlighter-rouge">master</code>) is used for following Homebrew/brew tags</a></li>
  <li><a href="https://github.com/homebrew/homebrew-test-bot"><code class="language-plaintext highlighter-rouge">brew test-bot</code> has moved to its own tap</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1004"><code class="language-plaintext highlighter-rouge">brew info</code> now also lists <code class="language-plaintext highlighter-rouge">Requirements</code> (e.g. <code class="language-plaintext highlighter-rouge">depends_on :foo</code>) as well as dependencies</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1128">RuboCop configured so RuboCop-supporting editors get the correct messaging for editing files in Homebrew/brew and <code class="language-plaintext highlighter-rouge">Library/Taps</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1205">External <code class="language-plaintext highlighter-rouge">brew</code> commands can now use <code class="language-plaintext highlighter-rouge">#:</code> comments to automatically have rich <code class="language-plaintext highlighter-rouge">--help</code> output</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1214">The <code class="language-plaintext highlighter-rouge">brew.1</code> manpage points to official external commands (<code class="language-plaintext highlighter-rouge">brew bundle</code>, <code class="language-plaintext highlighter-rouge">brew cask</code>, <code class="language-plaintext highlighter-rouge">brew services</code>)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1279">OS X Mavericks (10.9) and above now use BSD tar’s libarchive LZMA support rather than needing to install <code class="language-plaintext highlighter-rouge">xz</code></a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1277">A <code class="language-plaintext highlighter-rouge">brew tap-new</code> command is available for creating a new tap with a <code class="language-plaintext highlighter-rouge">README</code> and preconfigured Travis CI file (<code class="language-plaintext highlighter-rouge">.travis.yml</code>)</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1253">Bottle/binary package creation and extraction has been sped up</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1380"><code class="language-plaintext highlighter-rouge">brew</code> output has been improved when <code class="language-plaintext highlighter-rouge">git</code> is not installed</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1248">A new <code class="language-plaintext highlighter-rouge">brew cask reinstall</code> command was added</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/1308"><code class="language-plaintext highlighter-rouge">brew info</code> now lists required option builds in dependencies output</a></li>
</ul>

<p>Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’d like to announce Homebrew 1.1.0. We’ve had a great response to Homebrew 1.0.0 and been iterating on our work there. That 1.1.0 follows 1.0.9 is a happy coincidence due to breaking changes; in the future we may have a e.g. 1.1.10.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">1.0.0</title><link href="https://brew.sh/2016/09/21/homebrew-1.0.0/" rel="alternate" type="text/html" title="1.0.0" /><published>2016-09-21T00:00:00+00:00</published><updated>2016-09-21T00:00:00+00:00</updated><id>https://brew.sh/2016/09/21/homebrew-1.0.0</id><content type="html" xml:base="https://brew.sh/2016/09/21/homebrew-1.0.0/"><![CDATA[<p>Today I’m proud to announce Homebrew 1.0.0. In the seven years since Homebrew was created by <a href="https://github.com/mxcl">@mxcl</a> our community has grown to <a href="https://github.com/Homebrew/homebrew-core/graphs/contributors">almost 6000 unique contributors</a>, a <a href="https://github.com/search?p=2&amp;q=homebrew-&amp;type=Repositories&amp;utf8=✓">wide-reaching third-party “tap” ecosystem</a> and <a href="https://github.com/Homebrew/homebrew-core/tree/master/Formula">thousands of packages</a>.</p>

<p>We’ve been working hard over the last year to make some major changes to Homebrew that we’ve been wanting for a long time. There have been some hiccups along the way but we now have a more stable base for using and developing Homebrew in the future.</p>

<p>These include:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/2">Homebrew package management and formulae (package metadata) split into separate repositories</a></li>
  <li><a href="https://discourse.brew.sh">Homebrew Community site (using Discourse) for discussion</a></li>
  <li><a href="https://sfconservancy.org/news/2016/feb/22/homebrew-joins/">Homebrew joined the Software Freedom Conservancy</a></li>
  <li><a href="https://github.com/Homebrew/install/pull/60">Homebrew’s default repository installation location changed to <code class="language-plaintext highlighter-rouge">/usr/local/Homebrew</code> to keep your <code class="language-plaintext highlighter-rouge">/usr/local</code> cleaner</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/998">Homebrew/brew updates between release tags</a></li>
  <li><a href="https://github.com/Homebrew/legacy-homebrew/pull/38361">Homebrew CI and homebrew/core use the macOS sandbox for build-time security</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/725">Homebrew Cask integrated into Homebrew/brew</a></li>
  <li><a href="https://github.com/Homebrew/legacy-homebrew/pull/49848">Add new <code class="language-plaintext highlighter-rouge">brew bump-formula-pr</code> command to create new formula version pull requests</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/10">Add <code class="language-plaintext highlighter-rouge">brew --help</code> to <code class="language-plaintext highlighter-rouge">brew</code> subcommands</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/50">Homebrew auto-updates when needed</a></li>
  <li><a href="https://github.com/Homebrew/legacy-homebrew/pull/49219"><code class="language-plaintext highlighter-rouge">brew update</code> sped up by only running <code class="language-plaintext highlighter-rouge">git fetch</code> if necessary</a></li>
  <li>Officially support <a href="https://github.com/Homebrew/homebrew-bundle"><code class="language-plaintext highlighter-rouge">brew bundle</code></a> (for <code class="language-plaintext highlighter-rouge">Brewfile</code>s and import/export) and <a href="https://github.com/Homebrew/homebrew-services"><code class="language-plaintext highlighter-rouge">brew services</code></a> (for background services management).</li>
  <li><a href="https://github.com/Homebrew/brew/pull/168">Homebrew/brew passes tests on Linux and has generic backend for porting to other platforms in future</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/881">Provide access to developer commands and <code class="language-plaintext highlighter-rouge">brew update</code> workflow automatically</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/295">Use <code class="language-plaintext highlighter-rouge">curl</code> for all HTTP access for consistent proxy support</a></li>
  <li>Use <a href="https://github.com/Homebrew/ruby-macho">new Ruby Macho library</a> for reading and writing library macOS Mach O file locations.</li>
  <li><a href="https://github.com/Homebrew/brew/pull/404">Provide vendored, portable Ruby 2 binary for when system Ruby 2 is not available</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/584"><code class="language-plaintext highlighter-rouge">HEAD</code> package installations have versions and can be upgraded</a></li>
  <li><a href="https://github.com/Homebrew/brew/pull/344">Use Python virtualenvs to better handle Python dependencies</a></li>
</ul>

<p>And finally:</p>

<ul>
  <li><a href="https://github.com/Homebrew/brew/pull/96">Improves formula not found handling</a></li>
</ul>

<p>Thanks to all our users, contributors and maintainers past and present for getting us to this milestone. Enjoy using Homebrew!</p>]]></content><author><name>MikeMcQuaid</name></author><summary type="html"><![CDATA[Today I’m proud to announce Homebrew 1.0.0. In the seven years since Homebrew was created by @mxcl our community has grown to almost 6000 unique contributors, a wide-reaching third-party “tap” ecosystem and thousands of packages.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brew.sh/assets/img/homebrew-social-card.png" /><media:content medium="image" url="https://brew.sh/assets/img/homebrew-social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>