Also updates rubocop-sorbet (0.13.2 -> 0.14.0) and json (2.21.1 -> 2.21.2), which rubocop depends on. Two suppressions can go away thanks to bug fixes in this release: - rubocop/rubocop#15438 and rubocop/rubocop#15442 stop `Style/ArrayIntersect` firing when the `include?` receiver in a block is not an array literal, so the cop is re-enabled. It still cannot guarantee the *outer* receiver is an `Array`, and in `cask/artifact/abstract_uninstall.rb` that receiver is the `Enumerator` from `Pathname#each_filename`, which has no `intersect?`. Convert with `to_a` there rather than taking the autocorrect verbatim. - rubocop/rubocop#15452 fixes the `Layout/HashAlignment` false positive on multi-line hash keys, so the two `delegate` disable comments in `formula.rb` are dead and removed. One suppression is added: rubocop/rubocop#15493 makes `Style/IfUnlessModifier` respect `Layout/LineLength`'s exemptions rather than its `Max`. Several of our exemption patterns are unescaped regexes (`"#{version."` matches `#{version}`, `#{version_text}` and `#{version_info[...]}`), so the cop demanded modifier form for statements that then ran to 179 characters. Disable the cop. Reported upstream as rubocop/rubocop#15531. rubocop-sorbet 0.14.0 widens `Sorbet/SetterReturnType` to cover setters taking splat and keyword arguments, so several `depends_on` and ENV setters switch to `.void`. Under `HOMEBREW_SORBET_RUNTIME` a `.void` method returns the sentinel `T::Private::Types::Void::VOID`, which breaks the two callers that consumed a setter's return value. Sorbet does not catch either statically: - `DependsOn#load` stored the result of `send(:"#{key}=", ...)` into the delegated hash, so the whole `depends_on` stanza became `VOID`. Read the value back through the matching reader instead. - `Superenv#cc=` assigned `super` to `HOMEBREW_CC`, raising `TypeError: no implicit conversion of Module into String`. Assign from `val`. Drop `extend/ENV/shared.rbi`, which existed to widen `[]=` to accept `Pathname` and `PATH`. Without it `[]=` resolves to Sorbet's own `ENVClass#[]=`, which takes `T.nilable(String)`, so the ENV assignments convert explicitly with `to_s`/`&.to_s`. Both `Pathname` and `PATH` define `to_str`, so Ruby was already converting implicitly and behaviour is unchanged. The remaining changes are new offenses in this release: - `Lint/UselessAssignment` (rubocop/rubocop#12269) catches the `root_url = root_url =` workaround in `dev-cmd/tap-new.rb`. The Ruby `assigned but unused variable` warning it silenced no longer fires on our vendored Ruby, so drop it. - `Style/RedundantParentheses` (rubocop/rubocop#15472) and `Layout/MultilineMethodCallIndentation` autocorrections. The redundant `T.let` on `GitHub::API::ERRORS` is also dropped. Claude-Session: https://claude.ai/code/session_01AdSQcU5MmY4VWiFdfrPeu2
🍺 Homebrew
See Homebrew's homepage at brew.sh for installation instructions, what homebrew does, packages, brew bundle and more.
💸 Donations
Homebrew is a non-profit project run entirely by volunteers, not employees. We need your funds to pay for software, hardware and hosting around continuous integration and future improvements to the project. Every donation will be spent on making Homebrew better for our users.
Please consider a regular donation through GitHub Sponsors, Open Collective or Patreon. Homebrew is fiscally hosted by the Open Source Collective.
📚 Documentation
Read the Homebrew manual with man brew.
Read installation,
troubleshooting,
contribution
including the FAQ on docs.brew.sh.
Read the Homebrew Blog for release notes, project updates and announcements.
📦 Packages
Find formulae, casks, dependencies, versions and package metadata on formulae.brew.sh.
View anonymised install, build and operating system usage data at formulae.brew.sh/analytics.
Read how Homebrew uses Anonymous Analytics.
🔧 Get Help
First, please run brew update and run (and read) brew doctor.
Second, read the Troubleshooting Checklist.
If you don't read these it will take us far longer to help you with your problem.
After this, if you still need help, please ask in Homebrew/discussions or follow (and read) the Homebrew/brew new issue chooser.
💬 Social
Follow Homebrew on Mastodon, Bluesky, 𝕏 (Twitter) or subscribe to the newsletter.
🤝 Contributing
We'd love you to join us and >10,000 others by contributing to Homebrew!
First, please read our Contribution Guide and Code of Conduct.
A good starting point for contributing is:
brew tap --force homebrew/coreorbrew tap --force homebrew/cask(depending on whether you'd rather work on formulae or casks)- perform a strict audit on a package you use e.g.
brew audit --strict ffmpegfor FFmpeg - if no warnings, run
brew audit --strictto run on all packages and pick one to fix - read through the warnings and fix them until
brew audit --strict <package>shows no results - submit a pull request with your fixes
Alternatively, for something more substantial, check out one of the open issues in Homebrew/brew, Homebrew/homebrew-core or Homebrew/homebrew-cask.
If you've had inspiration for a new feature or bug fix: we don't need you to open an issue first, just open a pull request with your implementation and we'll review it.
Good luck!
🔐 Security
Please see our security policy for how to report security issues and what is in scope.
👥 Who We Are
Homebrew's Project Leader is Mike McQuaid.
Homebrew's Lead Maintainers are Bevan Kay, Carlo Cabrera, Issy Long, Justin Krehel, Michael Cho, Mike McQuaid, Nanda H Krishna, Patrick Linnane, Rui Chen, Ruoyu Zhong, Sam Ford and Sean Molenaar.
Homebrew's other Maintainers are Andrew Nesbitt, Anton Melnikov, Bo Anderson, Branch Vincent, Caleb Xu, Daeho Ro, Douglas Eichelberger, Dustin Rodrigues, FX Coudert, Klaus Hipp, Markus Reiter, Michka Popoff, Rylan Polster, Stefan Baebler, Thierry Moisan and William Woodruff.
Homebrew was originally created by Max Howell.
📜 License
Code is under the BSD 2-clause "Simplified" License. Documentation is under the Creative Commons Attribution license.
💛 Sponsors
Our macOS continuous integration infrastructure is hosted by MacStadium's Orka.
Secure password storage and syncing is provided by 1Password for Teams.
https://brew.sh's DNS is resolving with DNSimple.
Homebrew is generously supported by Joshua Baer, Randy Reddig, Codecademy, b.well, Workbrew, GitHub, Custom Ink, SAP and many other users and organisations via GitHub Sponsors.



