diff --git a/Library/.rubocop.yml b/Library/.rubocop.yml deleted file mode 100644 index 99de0d8a21..0000000000 --- a/Library/.rubocop.yml +++ /dev/null @@ -1,12 +0,0 @@ -inherit_from: - - .rubocop_rules.yml - - .rubocop_todo.yml - -AllCops: - TargetRubyVersion: 2.0 - Include: - - '**/.simplecov' - Exclude: - - 'Homebrew/cask/**/*' - - 'Homebrew/vendor/**/*' - - 'Homebrew/test/vendor/**/*' diff --git a/Library/.rubocop_rules.yml b/Library/.rubocop_common.yml similarity index 59% rename from Library/.rubocop_rules.yml rename to Library/.rubocop_common.yml index 6389892910..3563acf1fc 100644 --- a/Library/.rubocop_rules.yml +++ b/Library/.rubocop_common.yml @@ -1,3 +1,6 @@ +AllCops: + TargetRubyVersion: 2.0 + Metrics/AbcSize: Enabled: false @@ -15,10 +18,6 @@ Metrics/MethodLength: Metrics/ModuleLength: CountComments: false - Exclude: - - 'Homebrew/cask/lib/hbc/locations.rb' - - 'Homebrew/cask/lib/hbc/macos.rb' - - 'Homebrew/cask/lib/hbc/utils.rb' Metrics/PerceivedComplexity: Enabled: false @@ -36,11 +35,6 @@ Lint/AssignmentInCondition: Lint/EndAlignment: AlignWith: variable -# `formula do` uses nested method definitions -Lint/NestedMethodDefinition: - Exclude: - - 'Homebrew/test/**/*' - Lint/ParenthesesAsGroupedExpression: Enabled: false @@ -54,85 +48,6 @@ Style/AlignHash: Style/AlignParameters: Enabled: false -Style/BarePercentLiterals: - Exclude: - - 'Taps/**/*' - EnforcedStyle: percent_q - -Style/BlockDelimiters: - EnforcedStyle: semantic - Exclude: - - 'Taps/**/*' - FunctionalMethods: - - expect - - find - - let - - let! - - subject - - watch - - inject - - map - - map! - - collect - - collect! - - reject - - reject! - - delete_if - - with_object - - popen_read - ProceduralMethods: - - after - - at_exit - - before - - benchmark - - bm - - bmbm - - capture_io - - capture_output - - capture_subprocess_io - - chdir - - context - - create - - define_method - - define_singleton_method - - fork - - measure - - new - - open - - realtime - - shutup - - tap - - each - - each_pair - - each_with_index - - reverse_each - - ignore_interrupts - IgnoredMethods: - - each_with_object - - it - - its - - lambda - - proc - - formula - - mock - - devel - - stable - - head - - assert_raises - - assert_nothing_raised - - resource - - with_build_environment - - ensure_writable - - satisfy - - fetch - - brew - - expand - - env - - recursive_dependencies - - trap - - link_dir - - with_system_path - Style/CaseIndentation: IndentWhenRelativeTo: end @@ -158,29 +73,9 @@ Style/EmptyLineBetweenDefs: Style/FileName: Regex: !ruby/regexp /^[\w\@\-\+\.]+(\.rb)?$/ -# counterproductive in formulas, notably within the install method -Style/GuardClause: - Exclude: - - 'Taps/**/*' - -# depends_on foo: :bar looks rubbish -Style/HashSyntax: - EnforcedStyle: ruby19_no_mixed_keys - Exclude: - - 'Taps/**/*' - -Style/IfUnlessModifier: - Exclude: - - 'Taps/**/*' - Style/IndentArray: EnforcedStyle: special_inside_parentheses -# we won't change backward compatible method names -Style/MethodName: - Exclude: - - 'Homebrew/compat/**/*' - # only for numbers >= 1_000_000 Style/NumericLiterals: MinDigits: 7 @@ -206,12 +101,6 @@ Style/PercentLiteralDelimiters: Style/PerlBackrefs: Enabled: false -# we won't change backward compatible predicate names -Style/PredicateName: - Exclude: - - 'Homebrew/compat/**/*' - NameWhitelist: is_32_bit?, is_64_bit? - Style/RaiseArgs: EnforcedStyle: exploded diff --git a/Library/.rubocop_core.yml b/Library/.rubocop_core.yml new file mode 100644 index 0000000000..c4dd9c5971 --- /dev/null +++ b/Library/.rubocop_core.yml @@ -0,0 +1,112 @@ +inherit_from: + - .rubocop_common.yml + - .rubocop_todo.yml + +AllCops: + Include: + - '**/.simplecov' + Exclude: + - 'Homebrew/cask/**/*' + - 'Homebrew/**/vendor/**/*' + +# `formula do` uses nested method definitions +Lint/NestedMethodDefinition: + Exclude: + - 'Homebrew/test/**/*' + +Metrics/ModuleLength: + CountComments: false + Exclude: + - 'Homebrew/cask/lib/hbc/locations.rb' + - 'Homebrew/cask/lib/hbc/macos.rb' + - 'Homebrew/cask/lib/hbc/utils.rb' + +Style/BarePercentLiterals: + EnforcedStyle: percent_q + +Style/BlockDelimiters: + EnforcedStyle: semantic + FunctionalMethods: + - expect + - find + - let + - let! + - subject + - watch + - inject + - map + - map! + - collect + - collect! + - reject + - reject! + - delete_if + - with_object + - popen_read + ProceduralMethods: + - after + - at_exit + - before + - benchmark + - bm + - bmbm + - capture_io + - capture_output + - capture_subprocess_io + - chdir + - context + - create + - define_method + - define_singleton_method + - fork + - measure + - new + - open + - realtime + - shutup + - tap + - each + - each_pair + - each_with_index + - reverse_each + - ignore_interrupts + IgnoredMethods: + - each_with_object + - it + - its + - lambda + - proc + - formula + - mock + - devel + - stable + - head + - assert_raises + - assert_nothing_raised + - resource + - with_build_environment + - ensure_writable + - satisfy + - fetch + - brew + - expand + - env + - recursive_dependencies + - trap + - link_dir + - with_system_path + +Style/HashSyntax: + EnforcedStyle: ruby19_no_mixed_keys + +# we won't change backward compatible method names +Style/MethodName: + Exclude: + - 'Homebrew/compat/**/*' + +# we won't change backward compatible predicate names +Style/PredicateName: + Exclude: + - 'Homebrew/compat/**/*' + NameWhitelist: is_32_bit?, is_64_bit? + diff --git a/Library/.rubocop_formula.yml b/Library/.rubocop_formula.yml new file mode 100644 index 0000000000..d763bb4603 --- /dev/null +++ b/Library/.rubocop_formula.yml @@ -0,0 +1,12 @@ +inherit_from: + - .rubocop_common.yml + +# counterproductive in formulas, notably within the install method +Style/GuardClause: + Enabled: false +Style/IfUnlessModifier: + Enabled: false + +# depends_on foo: :bar looks rubbish +Style/HashSyntax: + Enabled: false diff --git a/Library/.rubocop_todo.yml b/Library/.rubocop_todo.yml index d3be22eb5f..2162a7490e 100644 --- a/Library/.rubocop_todo.yml +++ b/Library/.rubocop_todo.yml @@ -1,6 +1,6 @@ # This configuration was generated by # `rubocop --auto-gen-config --exclude-limit 100` -# on 2016-09-25 02:39:38 +0200 using RuboCop version 0.43.0. +# on 2016-09-27 18:48:13 +0200 using RuboCop version 0.43.0. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new @@ -37,7 +37,6 @@ Lint/Loop: # Offense count: 1 Lint/NestedMethodDefinition: Exclude: - - 'Homebrew/test/**/*' - 'Homebrew/dev-cmd/bottle.rb' # Offense count: 28 @@ -72,28 +71,26 @@ Metrics/BlockNesting: # Offense count: 19 # Configuration parameters: CountComments. Metrics/ModuleLength: - Max: 366 + Max: 367 # Offense count: 2 # Configuration parameters: CountKeywordArgs. Metrics/ParameterLists: Max: 6 -# Offense count: 9 +# Offense count: 8 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles. # SupportedStyles: percent_q, bare_percent Style/BarePercentLiterals: Exclude: - - 'Taps/**/*' - 'Homebrew/dev-cmd/audit.rb' - 'Homebrew/test/test_diagnostic.rb' - 'Homebrew/test/test_exceptions.rb' - - 'Homebrew/test/test_integration_cmds.rb' - 'Homebrew/test/test_patch.rb' - 'Homebrew/test/test_string.rb' -# Offense count: 136 +# Offense count: 134 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods. # SupportedStyles: line_count_based, semantic, braces_for_chaining @@ -102,7 +99,6 @@ Style/BarePercentLiterals: # IgnoredMethods: lambda, proc, it Style/BlockDelimiters: Exclude: - - 'Taps/**/*' - 'Homebrew/caveats.rb' - 'Homebrew/cleaner.rb' - 'Homebrew/cleanup.rb' @@ -157,13 +153,11 @@ Style/BlockDelimiters: - 'Homebrew/test/lib/config.rb' - 'Homebrew/test/test_ARGV.rb' - 'Homebrew/test/test_cleanup.rb' - - 'Homebrew/test/test_cmd_audit.rb' - 'Homebrew/test/test_dependency_collector.rb' - 'Homebrew/test/test_formula_installer.rb' - 'Homebrew/test/test_formula_installer_bottle.rb' - 'Homebrew/test/test_formulary.rb' - 'Homebrew/test/test_gpg.rb' - - 'Homebrew/test/test_integration_cmds.rb' - 'Homebrew/test/test_migrator.rb' - 'Homebrew/test/test_pathname.rb' - 'Homebrew/test/test_tap.rb' @@ -188,20 +182,12 @@ Style/GlobalVars: - 'Homebrew/utils.rb' # Offense count: 2 -# Cop supports --auto-correct. -# Configuration parameters: SupportedStyles, IndentationWidth. -# SupportedStyles: special_inside_parentheses, consistent, align_brackets -Style/IndentArray: - EnforcedStyle: special_inside_parentheses - -# Offense count: 5 # Configuration parameters: EnforcedStyle, SupportedStyles. # SupportedStyles: module_function, extend_self Style/ModuleFunction: Exclude: - 'Homebrew/global.rb' - 'Homebrew/os/mac/xcode.rb' - - 'Homebrew/os/mac/xquartz.rb' # Offense count: 8 Style/MultilineBlockChain: @@ -222,7 +208,6 @@ Style/MutableConstant: - 'Homebrew/tab.rb' - 'Homebrew/tap.rb' -# Offense count: 9 # Offense count: 8 Style/OpMethod: Exclude: diff --git a/Library/Homebrew/cmd/style.rb b/Library/Homebrew/cmd/style.rb index db61116be7..1a4b02277c 100644 --- a/Library/Homebrew/cmd/style.rb +++ b/Library/Homebrew/cmd/style.rb @@ -19,7 +19,7 @@ require "utils/json" module Homebrew def style target = if ARGV.named.empty? - [HOMEBREW_LIBRARY_PATH] + nil elsif ARGV.named.any? { |file| File.exist? file } ARGV.named elsif ARGV.named.any? { |tap| tap.count("/") == 1 } @@ -49,10 +49,16 @@ module Homebrew args = %W[ --force-exclusion - --config #{HOMEBREW_LIBRARY}/.rubocop.yml ] args << "--auto-correct" if fix - args += files + + if files.nil? + args << "--config" << HOMEBREW_LIBRARY/".rubocop_core.yml" + args += [HOMEBREW_LIBRARY_PATH] + else + args << "--config" << HOMEBREW_LIBRARY/".rubocop_formula.yml" + args += files + end HOMEBREW_LIBRARY.cd do case output_type