Style/PercentLiteralDelimiters: Enabled: false # kind_of? is a good way to check a type Style/ClassCheck: EnforcedStyle: kind_of? Style/FrozenStringLiteralComment: Enabled: false # This doesn't work with older versions of Ruby (pre 2.4.0) Style/SafeNavigation: Enabled: false # This doesn't work with older versions of Ruby (pre 2.4.0) Performance/RegexpMatch: Enabled: false # This suggests use of `tr` instead of `gsub`. While this might be more performant, # these methods are not at all interchangable, and behave very differently. This can # lead to people making the substitution without considering the differences. Performance/StringReplacement: Enabled: false # .length == 0 is also good, we don't always want .zero? Style/NumericPredicate: Enabled: false # this would cause errors with long lanes Metrics/BlockLength: Enabled: false # this is a bit buggy Metrics/ModuleLength: Enabled: false # certificate_1 is an okay variable name Style/VariableNumber: Enabled: false # This is used a lot across the fastlane code base for config files Style/MethodMissing: Enabled: false # # File.chmod(0777, f) # # is easier to read than # # File.chmod(0o777, f) # Style/NumericLiteralPrefix: Enabled: false # # command = (!clean_expired.nil? || !clean_pattern.nil?) ? CLEANUP : LIST # # is easier to read than # # command = !clean_expired.nil? || !clean_pattern.nil? ? CLEANUP : LIST # Style/TernaryParentheses: Enabled: false # sometimes it is useful to have those empty methods Style/EmptyMethod: Enabled: false # It's better to be more explicit about the type Style/BracesAroundHashParameters: Enabled: false # specs sometimes have useless assignments, which is fine Lint/UselessAssignment: Exclude: - '**/spec/**/*' # We could potentially enable the 2 below: Style/IndentHash: Enabled: false Style/AlignHash: Enabled: false # HoundCI doesn't like this rule Style/DotPosition: Enabled: false # We allow !! as it's an easy way to convert ot boolean Style/DoubleNegation: Enabled: false # Prevent to replace [] into %i Style/SymbolArray: Enabled: false # We still support Ruby 2.0.0 Style/IndentHeredoc: Enabled: false # This cop would not work fine with rspec Style/MixinGrouping: Exclude: - '**/spec/**/*' # Sometimes we allow a rescue block that doesn't contain code Lint/HandleExceptions: Enabled: false # Cop supports --auto-correct. Lint/UnusedBlockArgument: Enabled: false Lint/AmbiguousBlockAssociation: Enabled: false # Needed for $verbose Style/GlobalVars: Enabled: false # We want to allow class Fastlane::Class Style/ClassAndModuleChildren: Enabled: false # $? Exit Style/SpecialGlobalVars: Enabled: false Metrics/AbcSize: Enabled: false Metrics/MethodLength: Enabled: false Metrics/CyclomaticComplexity: Enabled: false # The %w might be confusing for new users Style/WordArray: MinSize: 19 # raise and fail are both okay Style/SignalException: Enabled: false # Better too much 'return' than one missing Style/RedundantReturn: Enabled: false # Having if in the same line might not always be good Style/IfUnlessModifier: Enabled: false # and and or is okay Style/AndOr: Enabled: false # Configuration parameters: CountComments. Metrics/ClassLength: Max: 320 # Configuration parameters: AllowURI, URISchemes. Metrics/LineLength: Max: 370 # Configuration parameters: CountKeywordArgs. Metrics/ParameterLists: Max: 17 Metrics/PerceivedComplexity: Max: 18 # Sometimes it's easier to read without guards Style/GuardClause: Enabled: false # We allow both " and ' Style/StringLiterals: Enabled: false # something = if something_else # that's confusing Style/ConditionalAssignment: Enabled: false # Better to have too much self than missing a self Style/RedundantSelf: Enabled: false # e.g. # def self.is_supported?(platform) # we may never use `platform` Lint/UnusedMethodArgument: Enabled: false # the let(:key) { ... } Lint/ParenthesesAsGroupedExpression: Exclude: - '**/spec/**/*' # This would reject is_ in front of methods # We use `is_supported?` everywhere already Style/PredicateName: Enabled: false # We allow the $ Style/PerlBackrefs: Enabled: false # Disable '+ should be surrounded with a single space' for xcodebuild_spec.rb Style/SpaceAroundOperators: Exclude: - '**/spec/actions_specs/xcodebuild_spec.rb' AllCops: Include: - '**/fastlane/Fastfile' Exclude: - '**/lib/assets/custom_action_template.rb' - './vendor/**/*' # They have not to be snake_case Style/FileName: Exclude: - '**/Dangerfile' - '**/Brewfile' - '**/Gemfile' - '**/Podfile' - '**/Rakefile' - '**/Fastfile' - '**/Deliverfile' - '**/Snapfile' # We're not there yet Style/Documentation: Enabled: false # Added after upgrade to 0.38.0 Style/MutableConstant: Enabled: false # length > 0 is good Style/ZeroLengthPredicate: Enabled: false # Adds complexity Style/IfInsideElse: Enabled: false # Sometimes we just want to 'collect' Style/CollectionMethods: Enabled: false