
Sorbet/StrictSigil
as it's better than comments
- Previously I thought that comments were fine to discourage people from wasting their time trying to bump things that used `undef` that Sorbet didn't support. But RuboCop is better at this since it'll complain if the comments are unnecessary. - Suggested in https://github.com/Homebrew/brew/pull/18018#issuecomment-2283369501. - I've gone for a mixture of `rubocop:disable` for the files that can't be `typed: strict` (use of undef, required before everything else, etc) and `rubocop:todo` for everything else that should be tried to make strictly typed. There's no functional difference between the two as `rubocop:todo` is `rubocop:disable` with a different name. - And I entirely disabled the cop for the docs/ directory since `typed: strict` isn't going to gain us anything for some Markdown linting config files. - This means that now it's easier to track what needs to be done rather than relying on checklists of files in our big Sorbet issue: ```shell $ git grep 'typed: true # rubocop:todo Sorbet/StrictSigil' | wc -l 268 ``` - And this is confirmed working for new files: ```shell $ git status On branch use-rubocop-for-sorbet-strict-sigils Untracked files: (use "git add <file>..." to include in what will be committed) Library/Homebrew/bad.rb Library/Homebrew/good.rb nothing added to commit but untracked files present (use "git add" to track) $ brew style Offenses: bad.rb:1:1: C: Sorbet/StrictSigil: Sorbet sigil should be at least strict got true. ^^^^^^^^^^^^^ 1340 files inspected, 1 offense detected ```
Homebrew
Features, usage and installation instructions are summarised on the homepage. Terminology (e.g. the difference between a Cellar, Tap, Cask and so forth) is explained here.
What Packages Are Available?
- Type
brew formulae
for a list. - Or visit formulae.brew.sh to browse packages online.
More Documentation
brew help
, man brew
or check our documentation.
Troubleshooting
First, please run brew update
and 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.
Donations
Homebrew is a non-profit project run entirely by unpaid volunteers. 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.
For questions about donations, including corporate giving, please email the Homebrew PLC at plc@brew.sh.
Community
- Homebrew/discussions (forum)
- @homebrew@fosstodon.org (Mastodon)
- @MacHomebrew (𝕏 (formerly known as Twitter))
Contributing
We'd love you to contribute to Homebrew. First, please read our Contribution Guide and Code of Conduct.
We explicitly welcome contributions from people who have never contributed to open-source before: we were all beginners once! We can help build on a partially working pull request with the aim of getting it merged. We are also actively seeking to diversify our contributors and especially welcome contributions from women from all backgrounds and people of colour.
A good starting point for contributing is to first tap homebrew/core
, then run brew audit --strict
with some of the packages you use (e.g. brew audit --strict wget
if you use wget
) and read through the warnings. Try to fix them until brew audit --strict
shows no results and submit a pull request. If no formulae you use have warnings you can run brew audit --strict
without arguments to have it run on all packages and pick one.
Alternatively, for something more substantial, check out one of the issues labelled help wanted
in Homebrew/brew or Homebrew/homebrew-core.
Good luck!
Security
Please report security issues by filling in the security advisory form.
Who We Are
Homebrew's Project Leader is Mike McQuaid.
Homebrew's Project Leadership Committee is Colin Dean, Issy Long, Mike McQuaid, Patrick Linnane and Vanessa Gennarelli.
Homebrew's Technical Steering Committee is Bo Anderson, FX Coudert, Michka Popoff, Mike McQuaid and Rylan Polster.
Homebrew's maintainers are Alexander Bayandin, Bevan Kay, Bo Anderson, Branch Vincent, Caleb Xu, Carlo Cabrera, Douglas Eichelberger, Dustin Rodrigues, Eric Knibbe, FX Coudert, Issy Long, Justin Krehel, Klaus Hipp, Markus Reiter, Miccal Matthews, Michael Cho, Michka Popoff, Mike McQuaid, Nanda H Krishna, Patrick Linnane, Rui Chen, Ruoyu Zhong, Rylan Polster, Sam Ford, Sean Molenaar, Thierry Moisan, Timothy Sutton, William Woodruff and Štefan Baebler.
Former maintainers with significant contributions include Misty De Méo, Shaun Jackman, Vítor Galvão, Claudia Pellegrino, Seeker, Jan Viljanen, JCount, commitay, Dominyk Tiller, Tim Smith, Baptiste Fontaine, Xu Cheng, Martin Afanasjew, Brett Koonce, Charlie Sharpsteen, Jack Nagel, Adam Vandenberg, Andrew Janke, Alex Dunn, neutric, Tomasz Pajor, Uladzislau Shablinski, Alyssa Ross, ilovezfs, Chongyu Zhu and Homebrew's creator: 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.
Flaky test detection and tracking is provided by BuildPulse.
https://brew.sh's DNS is resolving with DNSimple.
Homebrew is generously supported by GitHub, Custom Ink, Randy Reddig, Codecademy, MacPaw Inc., Workbrew and many other users and organisations via GitHub Sponsors.