openstreetmap-website/.rubocop.yml
Andy Allan f1fc31d485 Disable Rails/BulkChangeTable cop
If you have multiple alter commands in a migration (like adding two
columns to an existing table) this cop will suggest combining them using
`change_table :foo, :bulk => true`.

However, Strong Migrations can't inspect `change_table` blocks, and
therefore suggests using `safety_assured`, which mostly defeats the
purpose of using strong_migrations in the first place.

Instead, we should stick with the individual alter commands. Since
postgres runs DDL changes in a transaction anyway, there is not enough
benefit from the `change_table` approach to be worth losing the
safety net of the Strong Migrations checks.
2024-06-19 17:44:20 +01:00

112 lines
1.8 KiB
YAML

inherit_from: .rubocop_todo.yml
require:
- rubocop-capybara
- rubocop-factory_bot
- rubocop-minitest
- rubocop-performance
- rubocop-rails
- rubocop-rake
AllCops:
TargetRubyVersion: 3.0
NewCops: enable
Exclude:
- 'vendor/**/*'
Rails:
Enabled: true
Layout/ExtraSpacing:
AllowForAlignment: true
Lint/PercentStringArray:
Exclude:
- 'config/initializers/secure_headers.rb'
- 'app/controllers/application_controller.rb'
- 'app/controllers/site_controller.rb'
Metrics/BlockLength:
Exclude:
- 'config/routes.rb'
Metrics/ClassLength:
Exclude:
- 'test/**/*'
Metrics/ModuleLength:
Max: 150
Naming/FileName:
Exclude:
- 'script/deliver-message'
- 'script/update-spam-blocks'
Naming/MethodParameterName:
Enabled: false
# This conflicts with Strong Migrations, which can't check `change_table`
Rails/BulkChangeTable:
Enabled: false
Rails/CreateTableWithTimestamps:
Enabled: false
Rails/FindBy:
IgnoreWhereFirst: false
Rails/FindEach:
Enabled: false
Rails/HasManyOrHasOneDependent:
Enabled: false
Rails/HttpPositionalArguments:
Enabled: false
Rails/ReflectionClassName:
Enabled: false
Rails/SkipsModelValidations:
Exclude:
- 'db/migrate/*.rb'
- 'app/controllers/users_controller.rb'
Style/Documentation:
Enabled: false
Style/FormatStringToken:
Exclude:
- 'config/routes.rb'
Style/IfInsideElse:
Enabled: false
Style/GuardClause:
Enabled: false
Style/HashEachMethods:
Enabled: true
Style/HashSyntax:
EnforcedStyle: hash_rockets
Exclude:
- 'lib/tasks/testing.rake'
- 'config/initializers/wrap_parameters.rb'
Style/HashTransformKeys:
Enabled: true
Style/HashTransformValues:
Enabled: true
Style/MixinUsage:
Exclude:
- 'bin/setup'
- 'bin/update'
Style/StringLiterals:
EnforcedStyle: double_quotes
Style/SymbolArray:
EnforcedStyle: brackets