]> eyrie.org Git - kerberos/krb5-strength.git/blob - tests/data/perlcriticrc
New upstream version 3.3
[kerberos/krb5-strength.git] / tests / data / perlcriticrc
1 # -*- conf -*-
2 #
3 # Default configuration for perlcritic.  Be sure to copy this into the source
4 # for packages that run perlcritic tests automatically during the build for
5 # reproducible test results.
6 #
7 # This file has been updated to match perlcritic 1.134.
8 #
9 # The canonical version of this file is maintained in the rra-c-util package,
10 # which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
11 #
12 # Written by Russ Allbery <eagle@eyrie.org>
13 # Copyright 2018-2022 Russ Allbery <eagle@eyrie.org>
14 # Copyright 2011-2013
15 #     The Board of Trustees of the Leland Stanford Junior University
16 #
17 # Permission is hereby granted, free of charge, to any person obtaining a
18 # copy of this software and associated documentation files (the "Software"),
19 # to deal in the Software without restriction, including without limitation
20 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
21 # and/or sell copies of the Software, and to permit persons to whom the
22 # Software is furnished to do so, subject to the following conditions:
23 #
24 # The above copyright notice and this permission notice shall be included in
25 # all copies or substantial portions of the Software.
26 #
27 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
28 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
29 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
30 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
31 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
32 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
33 # DEALINGS IN THE SOFTWARE.
34 #
35 # SPDX-License-Identifier: MIT
36
37 severity = 1
38 verbose  = %f:%l:%c: [%p] %m (%e, Severity: %s)\n
39
40 # I prefer this policy (a lot, actually), but other people in my group at
41 # Stanford really didn't like it, so this is my compromise to agree with a
42 # group coding style.
43 [-CodeLayout::ProhibitParensWithBuiltins]
44
45 # This conflicts with Subroutines::ProhibitExplicitReturnUndef and
46 # Subroutines::RequireFinalReturn, and I prefer the brevity of the simple
47 # return statement.  I don't think the empty list versus undef behavior is
48 # that confusing.
49 #
50 # This should be Community::EmptyReturn, which is the new name of the module,
51 # but currently ignores have to use the Freenode::EmptyReturn name instead.
52 [-Community::EmptyReturn]
53 [-Freenode::EmptyReturn]
54
55 # This recommends using given/when, but Perl has marked those as experimental
56 # and cautions against using when.
57 [-ControlStructures::ProhibitCascadingIfElse]
58
59 # Stanford's coding style allows postfix unless for flow control.  There
60 # doesn't appear to be any way to allow it only for flow control (the logic
61 # for "if" and "when" appears to be special-cased), so we have to allow unless
62 # globally.
63 [ControlStructures::ProhibitPostfixControls]
64 allow = unless
65
66 # This is handled with a separate test case that uses Test::Spelling.
67 [-Documentation::PodSpelling]
68
69 # The POD sections Perl::Critic wants are incompatible with the POD template
70 # from perlpodstyle, which is what I use for my POD documentation.
71 [-Documentation::RequirePodSections]
72
73 # This problem was fixed in Perl 5.14, which now properly preserves the value
74 # of $@ even if destructors run at exit from the eval block.
75 [-ErrorHandling::RequireCheckingReturnValueOfEval]
76
77 # The default of 9 is too small and forces weird code contortions.  After some
78 # experimentation, I've never found this helpful in driving useful refactors.
79 [-InputOutput::RequireBriefOpen]
80
81 # This is correct 80% of the time, but it isn't correct for a lot of scripts
82 # inside packages, where maintaining $VERSION isn't worth the effort.
83 # Unfortunately, there's no way to override it, so it gets turned off
84 # globally.
85 [-Modules::RequireVersionVar]
86
87 # This sounds interesting but is actually useless.  Any large blocks of
88 # literal text, which does not add to the complexity of the regex, will set it
89 # off.
90 [-RegularExpressions::ProhibitComplexRegexes]
91
92 # Produces false positives currently with postfix dereferencing (introduced in
93 # Perl 5.20).  See https://github.com/Perl-Critic/Perl-Critic/issues/578.
94 [-References::ProhibitDoubleSigils]
95
96 # Five arguments to a method has seemed reasonable at least once: a pair of
97 # input file data and path, a pair of output file descriptor and path, and
98 # a dict of additional arguments.
99 [Subroutines::ProhibitManyArgs]
100 skip_object = 1
101
102 # I generally don't want to require Readonly as a prerequisite for all my Perl
103 # modules.
104 [-ValuesAndExpressions::ProhibitConstantPragma]
105
106 # A good idea, but there are too many places where this would be more
107 # confusing than helpful.  Pull out numbers if one might change them
108 # independent of the algorithm, but don't do so for mathematical formulae.
109 [-ValuesAndExpressions::ProhibitMagicNumbers]
110
111 # This has never triggered on anything useful and keeps telling me to add
112 # underscores to UNIX timestamps and port numbers, which is just silly.
113 [-ValuesAndExpressions::RequireNumberSeparators]
114
115 # IO::Uncompress::Gunzip puts the error message in a package variable.
116 # Text::Wrap has a broken interface that requires use of package variables.
117 # YAML::XS also cannot be configured without package variables.
118 [Variables::ProhibitPackageVars]
119 add_packages = IO::Uncompress::Gunzip Text::Wrap YAML::XS
120
121 # use English was one of the worst ideas in the history of Perl.  It makes the
122 # code slightly more readable for amateurs at the cost of confusing
123 # experienced Perl programmers and sending people in futile quests for where
124 # these magical global variables are defined.
125 [-Variables::ProhibitPunctuationVars]