diff --git a/.rubocop.yml b/.rubocop.yml index 0cb02e3e975..d46296cf883 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,357 +1,2 @@ -require: - - rubocop-discourse - - rubocop-rspec - -AllCops: - TargetRubyVersion: 2.6 - DisabledByDefault: true - Exclude: - - "db/schema.rb" - - "bundle/**/*" - - "vendor/**/*" - - "node_modules/**/*" - - "public/**/*" - - "plugins/**/gems/**/*" - -Discourse: - Enabled: true - -Discourse/NoChdir: - Exclude: - - 'spec/**/*' # Specs are run sequentially, so chdir can be used - - 'plugins/*/spec/**/*' - -# Prefer &&/|| over and/or. -Style/AndOr: - Enabled: true - -Style/FrozenStringLiteralComment: - Enabled: true - -# Align `when` with `case`. -Layout/CaseIndentation: - Enabled: true - -# Align comments with method definitions. -Layout/CommentIndentation: - Enabled: true - -# No extra empty lines. -Layout/EmptyLines: - Enabled: true - -# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }. -Style/HashSyntax: - Enabled: true - -# Two spaces, no tabs (for indentation). -Layout/IndentationWidth: - Enabled: true - -Layout/SpaceAfterColon: - Enabled: true - -Layout/SpaceAfterComma: - Enabled: true - -Layout/SpaceAroundEqualsInParameterDefault: - Enabled: true - -Layout/SpaceAroundKeyword: - Enabled: true - -Layout/SpaceAroundOperators: - Enabled: true - -Layout/SpaceBeforeFirstArg: - Enabled: true - -# Defining a method with parameters needs parentheses. -Style/MethodDefParentheses: - Enabled: true - -# Use `foo {}` not `foo{}`. -Layout/SpaceBeforeBlockBraces: - Enabled: true - -# Use `foo { bar }` not `foo {bar}`. -Layout/SpaceInsideBlockBraces: - Enabled: true - -# Use `{ a: 1 }` not `{a:1}`. -Layout/SpaceInsideHashLiteralBraces: - Enabled: true - -Layout/SpaceInsideParens: - Enabled: true - -# Detect hard tabs, no hard tabs. -Layout/IndentationStyle: - Enabled: true - -# Blank lines should not have any spaces. -Layout/TrailingEmptyLines: - Enabled: true - -# No trailing whitespace. -Layout/TrailingWhitespace: - Enabled: true - -Lint/Debugger: - Enabled: true - -Layout/BlockAlignment: - Enabled: true - -# Align `end` with the matching keyword or starting expression except for -# assignments, where it should be aligned with the LHS. -Layout/EndAlignment: - Enabled: true - EnforcedStyleAlignWith: variable - -# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg. -Lint/RequireParentheses: - Enabled: true - -Lint/ShadowingOuterLocalVariable: - Enabled: true - -Layout/MultilineMethodCallIndentation: - Enabled: true - EnforcedStyle: indented - -Layout/HashAlignment: - Enabled: true - -Bundler/OrderedGems: - Enabled: false - -Style/SingleLineMethods: - Enabled: true - -Style/Semicolon: - Enabled: true - AllowAsExpressionSeparator: true - -Style/RedundantReturn: - Enabled: true - -Style/GlobalVars: - Enabled: true - Severity: warning - Exclude: - - 'lib/tasks/**/*' - - 'script/**/*' - - 'spec/**/*.rb' - - 'plugins/*/spec/**/*' - -# Specs - -RSpec/AnyInstance: - Enabled: false # To be decided - -RSpec/AroundBlock: - Enabled: true - -RSpec/BeforeAfterAll: - Enabled: false # To be decided - -RSpec/ContextMethod: - Enabled: false # TODO - -RSpec/ContextWording: - Enabled: false # To be decided - -RSpec/DescribeClass: - Enabled: false # To be decided - -RSpec/DescribeMethod: - Enabled: true - -RSpec/DescribeSymbol: - Enabled: false # To be decided - -RSpec/DescribedClass: - Enabled: false # To be decided - -RSpec/DescribedClassModuleWrapping: - Enabled: false # To be decided - -RSpec/EmptyExampleGroup: - Enabled: true - Exclude: - - 'spec/requests/api/*' - -RSpec/EmptyLineAfterExample: - Enabled: false # TODO - -RSpec/EmptyLineAfterExampleGroup: - Enabled: false # TODO - -RSpec/EmptyLineAfterFinalLet: - Enabled: false # TODO - -RSpec/EmptyLineAfterHook: - Enabled: false # TODO - -RSpec/EmptyLineAfterSubject: - Enabled: false # TODO - -RSpec/ExampleLength: - Enabled: false # To be decided - -RSpec/ExampleWithoutDescription: - Enabled: true - -RSpec/ExampleWording: - Enabled: false # TODO - -RSpec/ExpectActual: - Enabled: true - -RSpec/ExpectChange: - Enabled: false # To be decided - -RSpec/ExpectInHook: - Enabled: false # To be decided - -RSpec/ExpectOutput: - Enabled: true - -RSpec/FilePath: - Enabled: false # To be decided - -RSpec/Focus: - Enabled: true - -RSpec/HookArgument: - Enabled: false # TODO - -RSpec/HooksBeforeExamples: - Enabled: false # TODO - -RSpec/ImplicitBlockExpectation: - Enabled: true - -RSpec/ImplicitExpect: - Enabled: false # To be decided - -RSpec/ImplicitSubject: - Enabled: false # To be decided - -RSpec/InstanceSpy: - Enabled: true - -RSpec/InstanceVariable: - Enabled: false # TODO - -RSpec/InvalidPredicateMatcher: - Enabled: true - -RSpec/ItBehavesLike: - Enabled: true - -RSpec/IteratedExpectation: - Enabled: false # To be decided - -RSpec/LeadingSubject: - Enabled: false # TODO - -RSpec/LeakyConstantDeclaration: - Enabled: false # To be decided - -RSpec/LetBeforeExamples: - Enabled: false # TODO - -RSpec/LetSetup: - Enabled: false # TODO - -RSpec/MessageChain: - Enabled: true - -RSpec/MessageSpies: - Enabled: true - -RSpec/MissingExampleGroupArgument: - Enabled: true - -RSpec/MultipleDescribes: - Enabled: false # TODO - -RSpec/MultipleSubjects: - Enabled: true - -RSpec/NamedSubject: - Enabled: false # To be decided - -RSpec/NestedGroups: - Enabled: false # To be decided - -RSpec/OverwritingSetup: - Enabled: true - -RSpec/ReceiveCounts: - Enabled: true - -RSpec/ReceiveNever: - Enabled: true - -RSpec/RepeatedDescription: - Enabled: false # TODO - -RSpec/RepeatedExample: - Enabled: false # TODO - -RSpec/RepeatedExampleGroupBody: - Enabled: false # TODO - -RSpec/RepeatedExampleGroupDescription: - Enabled: false # TODO - -RSpec/ReturnFromStub: - Enabled: true - -RSpec/ScatteredSetup: - Enabled: false # TODO - -RSpec/SharedContext: - Enabled: true - -RSpec/SharedExamples: - Enabled: true - -RSpec/SingleArgumentMessageChain: - Enabled: true - -RSpec/SubjectStub: - Enabled: true - -RSpec/UnspecifiedException: - Enabled: true - -RSpec/VerifiedDoubles: - Enabled: true - -RSpec/VoidExpect: - Enabled: true - -RSpec/Yield: - Enabled: true - -Capybara/CurrentPathExpectation: - Enabled: true - -Capybara/FeatureMethods: - Enabled: true - -FactoryBot/AttributeDefinedStatically: - Enabled: true - -FactoryBot/CreateList: - Enabled: true - -FactoryBot/FactoryClassName: - Enabled: true - -Rails/HttpStatus: - Enabled: true +inherit_gem: + rubocop-discourse: default.yml diff --git a/Gemfile b/Gemfile index 742bf82d0b7..039acc6a2ad 100644 --- a/Gemfile +++ b/Gemfile @@ -172,9 +172,7 @@ group :test, :development do gem 'shoulda-matchers', require: false gem 'rspec-html-matchers' gem 'byebug', require: ENV['RM_INFO'].nil?, platform: :mri - gem 'rubocop', require: false gem "rubocop-discourse", require: false - gem "rubocop-rspec", require: false gem 'parallel_tests' gem 'rswag-specs' diff --git a/Gemfile.lock b/Gemfile.lock index 48dbd444f95..6c378be0a33 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -528,9 +528,7 @@ DEPENDENCIES rspec-rails rswag-specs rtlit - rubocop rubocop-discourse - rubocop-rspec ruby-prof ruby-readability rubyzip