# -*- 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]
