11# inherit_from:
22# - https://raw.githubusercontent.com/Homebrew/brew/refs/heads/master/Library/.rubocop.yml
33---
4- plugins :
5- - rubocop-md :
6- plugin_class_name : RuboCop::Markdown::Plugin
7- - rubocop-performance :
8- plugin_class_name : RuboCop::Performance::Plugin
9- - rubocop-rspec :
10- plugin_class_name : RuboCop::RSpec::Plugin
11- - rubocop-sorbet :
12- plugin_class_name : RuboCop::Sorbet::Plugin
13-
14- require :
15- - ./Homebrew/rubocops.rb
16-
174inherit_mode :
185 merge :
196 - Include
@@ -36,57 +23,6 @@ AllCops:
3623 SuggestExtensions :
3724 rubocop-minitest : false
3825
39- Cask/Desc :
40- Description : " Ensure that the desc stanza conforms to various content and style checks."
41- Enabled : true
42-
43- Cask/HomepageUrlStyling :
44- Description : " Ensure that the homepage url has the correct format and styling."
45- Enabled : true
46-
47- Cask/StanzaGrouping :
48- Description : " Ensure that cask stanzas are grouped correctly. More info at https://docs.brew.sh/Cask-Cookbook#stanza-order"
49- Enabled : true
50-
51- Cask/StanzaOrder :
52- Description : " Ensure that cask stanzas are sorted correctly. More info at https://docs.brew.sh/Cask-Cookbook#stanza-order"
53- Enabled : true
54-
55- FormulaAudit :
56- Enabled : true
57-
58- FormulaAuditStrict :
59- Enabled : true
60-
61- Homebrew :
62- Enabled : true
63-
64- Homebrew/Blank :
65- Exclude :
66- # Core extensions are not available here:
67- - " Homebrew/startup/bootsnap.rb"
68-
69- Homebrew/CompactBlank :
70- Exclude :
71- # `blank?` is not necessarily available here:
72- - " Homebrew/extend/enumerable.rb"
73-
74- Homebrew/NoFileutilsRmrf :
75- Include :
76- - " /**/{Formula,Casks}/**/*.rb"
77- - " **/{Formula,Casks}/**/*.rb"
78-
79- # only used internally
80- Homebrew/MoveToExtendOS :
81- Enabled : false
82-
83- Homebrew/NegateInclude :
84- Exclude :
85- # `exclude?` is not available here:
86- - " Homebrew/standalone/init.rb"
87- - " Homebrew/rubocops/**/*"
88- - " Homebrew/sorbet/tapioca/**/*"
89-
9026# `system` is a special case and aligns on second argument, so allow this for formulae.
9127Layout/ArgumentAlignment :
9228 Exclude :
@@ -223,99 +159,6 @@ Naming/MethodParameterName:
223159Naming/VariableNumber :
224160 Enabled : false
225161
226- # Makes code less readable for minor performance increases.
227- Performance/Caller :
228- Enabled : false
229-
230- # Does not hinder readability, so might as well enable it.
231- Performance/CaseWhenSplat :
232- Enabled : true
233-
234- # Makes code less readable for minor performance increases.
235- Performance/MethodObjectAsBlock :
236- Enabled : false
237-
238- RSpec :
239- Include :
240- - " Homebrew/test/**/*"
241-
242- # Intentionally disabled as it doesn't fit with our code style.
243- RSpec/AnyInstance :
244- Enabled : false
245- RSpec/IncludeExamples :
246- Enabled : false
247- RSpec/SpecFilePathFormat :
248- Enabled : false
249- RSpec/StubbedMock :
250- Enabled : false
251- RSpec/SubjectStub :
252- Enabled : false
253- # These were ever-growing numbers, not useful.
254- RSpec/ExampleLength :
255- Enabled : false
256- RSpec/MultipleExpectations :
257- Enabled : false
258- RSpec/NestedGroups :
259- Enabled : false
260- RSpec/MultipleMemoizedHelpers :
261- Enabled : false
262-
263- RSpec/DescribedClassModuleWrapping :
264- Enabled : true
265- # Annoying to have these autoremoved.
266- RSpec/Focus :
267- AutoCorrect : false
268- # We use `allow(:foo).to receive(:bar)` everywhere.
269- RSpec/MessageSpies :
270- EnforcedStyle : receive
271-
272- # These are legacy violations that we should try to fix.
273- Sorbet/AllowIncompatibleOverride :
274- Exclude :
275- - " Homebrew/livecheck/strategy/*.rb"
276-
277- # Try getting rid of these.
278- Sorbet/ConstantsFromStrings :
279- Enabled : false
280-
281- # This is already the default
282- Sorbet/FalseSigil :
283- Enabled : false
284-
285- # We generally prefer to colo rbi files with the Ruby files they describe.
286- Sorbet/ForbidRBIOutsideOfAllowedPaths :
287- Enabled : false
288-
289- # T::Sig is monkey-patched into Module
290- Sorbet/RedundantExtendTSig :
291- Enabled : true
292-
293- # We make limited and intentional use of refinements.
294- # It's posssible this may change in the future, though we probably still do not want to ban it in taps
295- # and Sorbet typecheck will tell us what is and isn't a problem anyway.
296- # Right now, our use of refinements isn't problematic (or at least not yet).
297- Sorbet/Refinement :
298- Enabled : false
299-
300- Sorbet/StrictSigil :
301- Enabled : true
302- Exclude :
303- - " Taps/**/*"
304- - " /**/{Formula,Casks}/**/*.rb"
305- - " **/{Formula,Casks}/**/*.rb"
306- - " Homebrew/utils/ruby_check_version_script.rb" # A standalone script.
307- - " Homebrew/{standalone,startup}/*.rb" # These are loaded before sorbet-runtime
308- - " Homebrew/test/**/*.rb"
309- - " Homebrew/bundle/{brew_dumper,checker,commands/exec}.rb" # These aren't typed: true yet.
310-
311- Sorbet/TrueSigil :
312- Enabled : true
313- Exclude :
314- - " Taps/**/*"
315- - " /**/{Formula,Casks}/**/*.rb"
316- - " **/{Formula,Casks}/**/*.rb"
317- - " Homebrew/test/**/*.rb"
318-
319162# Require &&/|| instead of and/or
320163Style/AndOr :
321164 EnforcedStyle : always
0 commit comments