# -*- conf -*- # the list of checks could perhaps be moved to t/scripts/critic.pl. verbose = 1 # severity is ignored for our main purposes, see below severity = 1 criticism-fatal = 1 color = 1 allow-unsafe = 1 # to try some other stuff, uncomment the following # theme = security || bugs || complexity || maintenance # use a whitelist; the disabling config blocks below are for documentation only only = 1 # use separate blocks below instead of long Lines in include include = [BuiltinFunctions::ProhibitBooleanGrep] [BuiltinFunctions::ProhibitComplexMappings] [BuiltinFunctions::ProhibitLvalueSubstr] [BuiltinFunctions::ProhibitReverseSortBlock] [BuiltinFunctions::ProhibitShiftRef] [BuiltinFunctions::ProhibitSleepViaSelect] [BuiltinFunctions::ProhibitStringyEval] allow_includes = 1 [BuiltinFunctions::ProhibitStringySplit] [BuiltinFunctions::ProhibitUniversalCan] [BuiltinFunctions::ProhibitUniversalIsa] [BuiltinFunctions::ProhibitUselessTopic] [BuiltinFunctions::ProhibitVoidGrep] [BuiltinFunctions::ProhibitVoidMap] [BuiltinFunctions::RequireBlockGrep] [BuiltinFunctions::RequireBlockMap] [BuiltinFunctions::RequireGlobFunction] [BuiltinFunctions::RequireSimpleSortBlock] [ClassHierarchies::ProhibitAutoloading] [ClassHierarchies::ProhibitExplicitISA] [ClassHierarchies::ProhibitOneArgBless] [-CodeLayout::ProhibitFatCommaNewline] [-CodeLayout::ProhibitIfIfSameLine] [CodeLayout::ProhibitHardTabs] [-CodeLayout::ProhibitParensWithBuiltins] [CodeLayout::ProhibitQuotedWordLists] [CodeLayout::ProhibitTrailingWhitespace] [-CodeLayout::RequireConsistentNewlines] [-CodeLayout::RequireFinalSemicolon] [CodeLayout::RequireTidyCode] [-CodeLayout::RequireTrailingCommaAtNewline] [-CodeLayout::RequireTrailingCommas] [ControlStructures::ProhibitCStyleForLoops] [-ControlStructures::ProhibitCascadingIfElse] [-ControlStructures::ProhibitDeepNests] [ControlStructures::ProhibitLabelsWithSpecialBlockNames] [ControlStructures::ProhibitMutatingListFunctions] [ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions] [-ControlStructures::ProhibitPostfixControls] [-ControlStructures::ProhibitUnlessBlocks] [ControlStructures::ProhibitUnreachableCode] [ControlStructures::ProhibitUntilBlocks] [ControlStructures::ProhibitYadaOperator] [-Compatibility::ConstantPragmaHash] [-Compatibility::ConstantLeadingUnderscore] [-Compatibility::Gtk2Constants] [-Compatibility::PerlMinimumVersionAndWhy] [-Compatibility::PodMinimumVersion] [-Compatibility::ProhibitUnixDevNull] [-Documentation::PodSpelling] [-Documentation::ProhibitAdjacentLinks] [Documentation::ProhibitDuplicateHeadings] [Documentation::ProhibitDuplicateSeeAlso] [Documentation::ProhibitBadAproposMarkup] [Documentation::ProhibitLinkToSelf] [Documentation::ProhibitParagraphEndComma] [Documentation::ProhibitParagraphTwoDots] [Documentation::ProhibitUnbalancedParens] [-Documentation::ProhibitVerbatimMarkup] [-Documentation::RequireEndBeforeLastPod] [-Documentation::RequireFilenameMarkup] [-Documentation::RequireFinalCut] [-Documentation::RequireLinkedURLs] [Documentation::RequirePackageMatchesPodName] [-Documentation::RequirePodAtEnd] [-Documentation::RequirePodSections] [-ErrorHandling::RequireCarping] [-ErrorHandling::RequireCheckingReturnValueOfEval] [Community::AmpersandSubCalls] [Community::ArrayAssignAref] [Community::BarewordFilehandles] [Community::ConditionalDeclarations] [Community::ConditionalImplicitReturn] [Community::DeprecatedFeatures] [Community::DiscouragedModules] [Community::DollarAB] [Community::Each] [Community::EmptyReturn] [Community::IndirectObjectNotation] [Community::LexicalForeachIterator] [Community::LoopOnHash] [-Community::ModPerl] [Community::MultidimensionalArrayEmulation] [Community::OpenArgs] [Community::OverloadOptions] [Community::PackageMatchesFilename] [Community::POSIXImports] [Community::PreferredAlternatives] [Community::Prototypes] [Community::StrictWarnings] [Community::Threads] [Community::Wantarray] [Community::WarningsSwitch] [Community::WhileDiamondDefaultAssignment] [InputOutput::ProhibitBacktickOperators] [InputOutput::ProhibitBarewordFileHandles] [-InputOutput::ProhibitExplicitStdin] [InputOutput::ProhibitInteractiveTest] [InputOutput::ProhibitJoinedReadline] [-InputOutput::ProhibitOneArgSelect] [InputOutput::ProhibitReadlineInForLoop] [-InputOutput::ProhibitTwoArgOpen] # not needed with Community::OpenArgs [InputOutput::RequireBracedFileHandleWithPrint] [-InputOutput::RequireBriefOpen] [-InputOutput::RequireCheckedClose] [-InputOutput::RequireCheckedOpen] [InputOutput::RequireCheckedSyscalls] functions = open opendir chdir read readdir readline closedir sysopen sysread sysclose mkdir link pipe readlink unlink rename symlink fork # possible TODO: close [-InputOutput::RequireEncodingWithUTF8Layer] [Miscellanea::ProhibitFormats] [-Miscellanea::ProhibitTies] [Miscellanea::ProhibitUnrestrictedNoCritic] [Miscellanea::ProhibitUselessNoCritic] [-Miscellanea::TextDomainPlaceholders] [-Miscellanea::TextDomainUnused] [Modules::ProhibitAutomaticExportation] [Modules::ProhibitConditionalUseStatements] [Modules::ProhibitEvilModules] [-Modules::ProhibitExcessMainComplexity] # Maybe some day... [Modules::ProhibitModuleShebang] [Modules::ProhibitMultiplePackages] [-Modules::ProhibitPOSIXimport] # not needed with Community::POSIXImports [Modules::ProhibitUseQuotedVersion] [Modules::RequireBarewordIncludes] [Modules::RequireEndWithOne] [Modules::RequireExplicitPackage] [-Modules::RequireFilenameMatchesPackage] # not needed with Community::PackageMatchesFilename [Modules::RequireNoMatchVarsWithUseEnglish] [-Modules::RequireVersionVar] # We don't use package versions atm and even if we did, it probably # won't have full coverage anyway. [NamingConventions::Capitalization] [NamingConventions::ProhibitAmbiguousNames] [Objects::ProhibitIndirectSyntax] [References::ProhibitDoubleSigils] [-RegularExpressions::ProhibitCaptureWithoutTest] [-RegularExpressions::ProhibitComplexRegexes] [-RegularExpressions::ProhibitEnumeratedClasses] [-RegularExpressions::ProhibitEscapedMetacharacters] [RegularExpressions::ProhibitFixedStringMatches] [RegularExpressions::ProhibitSingleCharAlternation] [RegularExpressions::ProhibitUnusedCapture] [RegularExpressions::ProhibitUnusualDelimiters] allow_all_brackets = 1 [RegularExpressions::ProhibitUselessTopic] [RegularExpressions::RequireBracesForMultiline] allow_all_brackets = 1 [-RegularExpressions::RequireDotMatchAnything] [-RegularExpressions::RequireExtendedFormatting] [-RegularExpressions::RequireLineBoundaryMatching] [-Subroutines::ProhibitAmpersandSigils] # not needed with Community::AmpersandSubCalls [Subroutines::ProhibitBuiltinHomonyms] [-Subroutines::ProhibitExcessComplexity] [-Subroutines::ProhibitExplicitReturnUndef] [-Subroutines::ProhibitManyArgs] [Subroutines::ProhibitNestedSubs] [Subroutines::ProhibitReturnSort] [-Subroutines::ProhibitSubroutinePrototypes] # not needed with Community::Prototypes [Subroutines::ProhibitUnusedPrivateSubroutines] [Subroutines::ProtectPrivateSubs] [Subroutines::RequireArgUnpacking] [Subroutines::RequireFinalReturn] terminal_funcs = CORE::exec fatal_error internal_error Lintian::Util::internal_error Die error [TestingAndDebugging::ProhibitNoStrict] [-TestingAndDebugging::ProhibitNoWarnings] [-TestingAndDebugging::ProhibitProlongedStrictureOverride] [-TestingAndDebugging::RequireTestLabels] [-TestingAndDebugging::RequireUseStrict] # not needed with Community::StrictWarnings] [-TestingAndDebugging::RequireUseWarnings] # not needed with Community::StrictWarnings] [ValuesAndExpressions::ConstantBeforeLt] [ValuesAndExpressions::NotWithCompare] [-ValuesAndExpressions::ProhibitArrayAssignAref] # not needed with Community::ArrayAssignAref [ValuesAndExpressions::ProhibitBarewordDoubleColon] [ValuesAndExpressions::ProhibitCommaSeparatedStatements] [-ValuesAndExpressions::ProhibitComplexVersion] [-ValuesAndExpressions::ProhibitConstantPragma] [ValuesAndExpressions::ProhibitDuplicateHashKeys] [ValuesAndExpressions::ProhibitEmptyCommas] [ValuesAndExpressions::ProhibitEmptyQuotes] [-ValuesAndExpressions::ProhibitEscapedCharacters] [ValuesAndExpressions::ProhibitFiletest_f] [ValuesAndExpressions::ProhibitImplicitNewlines] [ValuesAndExpressions::ProhibitInterpolationOfLiterals] [ValuesAndExpressions::ProhibitLeadingZeros] [ValuesAndExpressions::ProhibitLongChainsOfMethodCalls] [ValuesAndExpressions::ProhibitMagicNumbers] [ValuesAndExpressions::ProhibitMismatchedOperators] [ValuesAndExpressions::ProhibitMixedBooleanOperators] [ValuesAndExpressions::ProhibitNoisyQuotes] [ValuesAndExpressions::ProhibitNullStatements] [ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters] [ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator] [ValuesAndExpressions::ProhibitUnknownBackslash] [-ValuesAndExpressions::ProhibitVersionStrings] [-ValuesAndExpressions::RequireConstantVersion] [-ValuesAndExpressions::RequireInterpolationOfMetachars] [ValuesAndExpressions::RequireNumberSeparators] [-ValuesAndExpressions::RequireNumericVersion] [ValuesAndExpressions::RequireQuotedHeredocTerminator] [ValuesAndExpressions::RequireUpperCaseHeredocTerminator] [ValuesAndExpressions::UnexpandedSpecialLiteral] [Variables::ProhibitAugmentedAssignmentInDeclaration] [Variables::ProhibitConditionalDeclarations] [-Variables::ProhibitEvilVariables] [-Variables::ProhibitLocalVars] [Variables::ProhibitMatchVars] [Variables::ProhibitPackageVars] add_packages = Devel::Size Module::CoreList Text::Wrap YAML::XS [Variables::ProhibitPerl4PackageNames] [-Variables::ProhibitPunctuationVars] # Requires "use English" and our style is against that. [Variables::ProhibitReusedNames] [Variables::ProhibitUnusedVariables] [Variables::ProtectPrivateVars] [Variables::RequireInitializationForLocalVars] [Variables::RequireLexicalLoopIterators] [Variables::RequireLocalizedPunctuationVars] allow = %ENV %SIG $! $? $0 [Variables::RequireNegativeIndices]