diff --git a/Library/.rubocop.yml b/Library/.rubocop.yml index 781519f917..258ba0072b 100644 --- a/Library/.rubocop.yml +++ b/Library/.rubocop.yml @@ -290,28 +290,12 @@ Layout/FirstHashElementIndentation: Lint/AmbiguousBlockAssociation: Enabled: false -Lint/RequireRelativeSelfPath: - # bugged on formula-analytics - # https://github.com/Homebrew/brew/pull/12152/checks?check_run_id=3755137378#step:15:60 - Exclude: - - "Taps/homebrew/homebrew-formula-analytics/*/*.rb" - Lint/DuplicateBranch: Exclude: - "Taps/*/*/*.rb" - "/**/{Formula,Casks}/*.rb" - "**/{Formula,Casks}/*.rb" -# needed for lazy_object magic -Naming/MemoizedInstanceVariableName: - Exclude: - - "Homebrew/lazy_object.rb" - -# useful for metaprogramming in RSpec -Lint/ConstantDefinitionInBlock: - Exclude: - - "**/*_spec.rb" - # so many of these in formulae and can't be autocorrected Lint/ParenthesesAsGroupedExpression: Exclude: diff --git a/Library/Homebrew/.rubocop.yml b/Library/Homebrew/.rubocop.yml index 5eb3d467b7..c2d79711ee 100644 --- a/Library/Homebrew/.rubocop.yml +++ b/Library/Homebrew/.rubocop.yml @@ -12,28 +12,15 @@ Layout/MultilineMethodCallIndentation: Exclude: - "**/*_spec.rb" -# `formula do` uses nested method definitions -Lint/NestedMethodDefinition: - Exclude: - - "test/**/*" - # TODO: Try to bring down all metrics maximums. Metrics/AbcSize: Max: 241 Metrics/BlockLength: Max: 86 - Exclude: - # TODO: extract more of the bottling logic - - "dev-cmd/bottle.rb" - - "test/**/*" - - "cmd/install.rb" Metrics/BlockNesting: Max: 5 Metrics/ClassLength: Max: 736 - Exclude: - - "formula.rb" - - "formula_installer.rb" Metrics/CyclomaticComplexity: Max: 68 Metrics/PerceivedComplexity: @@ -42,12 +29,6 @@ Metrics/MethodLength: Max: 232 Metrics/ModuleLength: Max: 481 - Exclude: - # TODO: extract more of the bottling logic - - "dev-cmd/bottle.rb" - # TODO: try break this down - - "utils/github.rb" - - "test/**/*" Naming/PredicateName: # Can't rename these. @@ -87,5 +68,4 @@ Style/BlockDelimiters: - "sig" Bundler/GemFilename: - Exclude: - - "utils/gems.rb" + Enabled: false diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index bfde37fc5c..3f9b63ccf3 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -19,7 +19,7 @@ module Homebrew sig { returns(CLI::Parser) } def install_args - Homebrew::CLI::Parser.new do + Homebrew::CLI::Parser.new do # rubocop:disable Metrics/BlockLength description <<~EOS Install a or . Additional options specific to a may be appended to the command. diff --git a/Library/Homebrew/dev-cmd/bottle.rb b/Library/Homebrew/dev-cmd/bottle.rb index 3af859eb19..6325d8f608 100644 --- a/Library/Homebrew/dev-cmd/bottle.rb +++ b/Library/Homebrew/dev-cmd/bottle.rb @@ -35,7 +35,7 @@ ALLOWABLE_HOMEBREW_REPOSITORY_LINKS = [ %r{#{Regexp.escape(HOMEBREW_LIBRARY)}/Homebrew/os/(mac|linux)/pkgconfig}, ].freeze -module Homebrew +module Homebrew # rubocop:disable Metrics/ModuleLength extend T::Sig module_function @@ -591,7 +591,7 @@ module Homebrew bottles_hash = merge_json_files(parse_json_files(args.named)) any_cellars = ["any", "any_skip_relocation"] - bottles_hash.each do |formula_name, bottle_hash| + bottles_hash.each do |formula_name, bottle_hash| # rubocop:disable Metrics/BlockLength ohai formula_name bottle = BottleSpecification.new diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 4e6b179cde..a1b70812ac 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -56,7 +56,7 @@ require "api" # system "make", "install" # end # end -class Formula +class Formula # rubocop:disable Metrics/ClassLength extend T::Sig include FileUtils diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index fa23be13f0..971e192b45 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -26,7 +26,7 @@ require "service" # Installer for a formula. # # @api private -class FormulaInstaller +class FormulaInstaller # rubocop:disable Metrics/ClassLength extend T::Sig include FormulaCellarChecks diff --git a/Library/Homebrew/lazy_object.rb b/Library/Homebrew/lazy_object.rb index 550c696387..4dfcbdb4e6 100644 --- a/Library/Homebrew/lazy_object.rb +++ b/Library/Homebrew/lazy_object.rb @@ -10,9 +10,11 @@ class LazyObject < Delegator end def __getobj__ + # rubocop:disable Naming/MemoizedInstanceVariableName return @__delegate__ if defined?(@__delegate__) @__delegate__ = @__callable__.call + # rubocop:enable Naming/MemoizedInstanceVariableName end def __setobj__(callable) diff --git a/Library/Homebrew/test/cask/artifact/shared_examples/uninstall_zap.rb b/Library/Homebrew/test/cask/artifact/shared_examples/uninstall_zap.rb index 06bacb96e0..698d292d2d 100644 --- a/Library/Homebrew/test/cask/artifact/shared_examples/uninstall_zap.rb +++ b/Library/Homebrew/test/cask/artifact/shared_examples/uninstall_zap.rb @@ -3,7 +3,7 @@ require "benchmark" -shared_examples "#uninstall_phase or #zap_phase" do +shared_examples "#uninstall_phase or #zap_phase" do # rubocop:disable Metrics/BlockLength subject { artifact } let(:artifact_dsl_key) { described_class.dsl_key } diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb index ba93979961..21523e1194 100644 --- a/Library/Homebrew/test/dev-cmd/audit_spec.rb +++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb @@ -17,7 +17,7 @@ module Count end end -module Homebrew +module Homebrew # rubocop:disable Metrics/ModuleLength describe FormulaTextAuditor do alias_matcher :have_data, :be_data alias_matcher :have_end, :be_end diff --git a/Library/Homebrew/test/exceptions_spec.rb b/Library/Homebrew/test/exceptions_spec.rb index 6c6a39ddc3..ec721ab110 100644 --- a/Library/Homebrew/test/exceptions_spec.rb +++ b/Library/Homebrew/test/exceptions_spec.rb @@ -90,11 +90,11 @@ describe "Exception" do let(:mod) do Module.new do # These are defined within an anonymous module to avoid polluting the global namespace. - # rubocop:disable RSpec/LeakyConstantDeclaration + # rubocop:disable RSpec/LeakyConstantDeclaration,Lint/ConstantDefinitionInBlock class Bar < Requirement; end class Baz < Formula; end - # rubocop:enable RSpec/LeakyConstantDeclaration + # rubocop:enable RSpec/LeakyConstantDeclaration,Lint/ConstantDefinitionInBlock end end diff --git a/Library/Homebrew/test/patching_spec.rb b/Library/Homebrew/test/patching_spec.rb index 830601d1a3..28bb80019d 100644 --- a/Library/Homebrew/test/patching_spec.rb +++ b/Library/Homebrew/test/patching_spec.rb @@ -7,7 +7,7 @@ describe "patching" do let(:formula_subclass) { Class.new(Formula) { # These are defined within an anonymous class to avoid polluting the global namespace. - # rubocop:disable RSpec/LeakyConstantDeclaration + # rubocop:disable RSpec/LeakyConstantDeclaration,Lint/ConstantDefinitionInBlock TESTBALL_URL = "file://#{TEST_FIXTURE_DIR}/tarballs/testball-0.1.tbz" TESTBALL_PATCHES_URL = "file://#{TEST_FIXTURE_DIR}/tarballs/testball-0.1-patches.tgz" PATCH_URL_A = "file://#{TEST_FIXTURE_DIR}/patches/noop-a.diff" @@ -17,7 +17,7 @@ describe "patching" do APPLY_A = "noop-a.diff" APPLY_B = "noop-b.diff" APPLY_C = "noop-c.diff" - # rubocop:enable RSpec/LeakyConstantDeclaration + # rubocop:enable RSpec/LeakyConstantDeclaration,Lint/ConstantDefinitionInBlock url TESTBALL_URL sha256 TESTBALL_SHA256 diff --git a/Library/Homebrew/test/spec_helper.rb b/Library/Homebrew/test/spec_helper.rb index 1ea10a0493..723e999a99 100644 --- a/Library/Homebrew/test/spec_helper.rb +++ b/Library/Homebrew/test/spec_helper.rb @@ -63,7 +63,7 @@ TEST_DIRECTORIES = [ # work when type-checking is active. RSpec::Sorbet.allow_doubles! -RSpec.configure do |config| +RSpec.configure do |config| # rubocop:disable Metrics/BlockLength config.order = :random config.raise_errors_for_deprecations! @@ -181,7 +181,7 @@ RSpec.configure do |config| skip "Unzip is not installed." unless which("unzip") end - config.around do |example| + config.around do |example| # rubocop:disable Metrics/BlockLength def find_files return [] unless File.exist?(TEST_TMPDIR) diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb index 7222a0b641..06faced93f 100644 --- a/Library/Homebrew/utils/github.rb +++ b/Library/Homebrew/utils/github.rb @@ -10,7 +10,7 @@ require "system_command" # Wrapper functions for the GitHub API. # # @api private -module GitHub +module GitHub # rubocop:disable Metrics/ModuleLength extend T::Sig include SystemCommand::Mixin