Login
Alphabetize Policy entries in Changes.
[gknop/Perl-Critic.git] / Changes
CommitLineData
76d7da59 1[1.116] Released on 2011-05-15
00f22ad4
TW
2
3 Policy Changes:
961f03df
TW
4 * BuiltInFunctions::ProhibitLvalueSubstr does not report violations
5 if the document contains an explicit 'use n.nnn;' where the
6 version is before 5.005. RT #59112
6384082c
TW
7 * Documentation::RequirePodSections no longer blows up on code
8 having POD but no =head1. This problem was introduced with RT
9 #59268. RT #67231
76d7da59
ES
10 * RegularExpressions::ProhibitUnusedCapture should more reliably
11 find things like s/(a)/${1}2/. RT #67273.
00f22ad4
TW
12 * ValuesAndExpressions::ProhibitMagicNumbers and
13 Module::RequireVersionVar now treat versions passed as the second
14 argument of a 'package' statement the same as versions declared as
15 'our $VERSION ...'. RT #67159
76d7da59
ES
16 * Variables::RequireLexicalLoopIterators does not report violations
17 if the document contains an explicit 'use n.nnn;' where the
18 version is before 5.004. RT #67760
00f22ad4 19
eed38807 20[1.115] Released on 2011-03-31
0f4a4b7e
ES
21
22 Minor bits:
f0976931
TW
23 * Fatal error in RegularExpressions::ProhibitUnusedCapture here
24 document check. RT #67116.
0f4a4b7e
ES
25 * Internal POD error in Documentation::RequirePodLinksIncludeText. Patch
26 by Salvatore Bonaccorso. RT #67012
27
a815eb37 28[1.114] Released on 2011-03-26
b11b1193
TW
29
30 Policy Changes:
31 * Documentation::RequirePodLinksIncludeText now handles nested POD
32 formatting. RT #65569
e0033c21
TW
33 * Clarified relation of severity numbers to names in Perl::Critic
34 POD. RT #66017
8b36985b
TW
35 * Removed caveats from Variables::RequireLocalizedPunctuationVars,
36 no longer necessary with PPI 1.208. RT #65514
494325b2
TW
37 * Have InputOutput::RequireBriefOpen attempt to expand scope as
38 necessary to deal with the case where the open() and the
39 corresponding close() are not in the same scope. RT #64437
48ccbca9
TW
40 * RegularExpressions::ProhibitUnusedCapture now looks inside
41 double-quotish things. RT #38942.
25ff354f
TW
42 * RegularExpressions::ProhibitUnusedCapture now takes logical
43 alternation into account, so that (e.g.)
a815eb37
ES
44 if ( /(a)/ || /(b)/ ) {
45 say $1;
46 }
25ff354f 47 is not a violation. RT #38942.
45a557b1
TW
48 * ValuesAndExpressions::ProhibitCommaSeparatedStatements now
49 recognizes 'return { foo => 1, bar => 2 }' as containing a hash
50 constructor, not a block. This was fixed by PPI 1.215. RT #61301.
9502a80b
TW
51 * ValuesAndExpressions::ProhibitCommaSeparatedStatements now
52 recognizes 'bless { foo => 1, bar => 2 }' as containing a hash
53 constructor, not a block. This was fixed by PPI 1.215. RT #64132.
b11b1193 54
bc1567bf 55[1.113] Released on 2011-02-14
6eb1ad2a 56
bc1567bf
ES
57 New Policies:
58 * InputOutput::RequireEncodingWithUTF8Layer recommends
59 ':encoding(utf8)' over ':utf8' in open() and binmode(). It is severity 5
60 because of the bad things that can happen if invalid UTF8 gets loose in
61 your code.
62 * Modules::ProhibitConditionalUseStatements prohibits
ee9bb209 63 'use module' inside a conditional, since the statement is executed
bc1567bf
ES
64 unconditionally at compile time. Thanks to Peter Guzis for submitting
65 the policy and tests in RT #59065.
013aa3aa 66
7727f2f1 67 Policy Changes:
bc1567bf
ES
68 * CodeLayout::RequireConsistentNewlines produces multiple undefined
69 value errors when a violation is found. RT #65663
7727f2f1
TW
70 * ControlStructures::ProhibitMutatingListFunctions allows s///r,
71 which was introduced in 5.13.2.
28c853c2
ES
72 * ControlStructures::ProhibitPostfixControls now looks for "when". It is
73 treated in the same way as "if".
e06bf5ff
TW
74 * Documentation::RequirePodSections now honors '## no critic'
75 annotation anywhere before the '__END__', '__DATA__', or first
89bfef40
TW
76 '=head1', whichever comes first. The line number of the offending
77 '=head1 NAME' was added to the violation description. RT #59268.
b64d32ff
TW
78 * RegularExpressions::ProhibitUnusedCapture now takes account of the
79 use of $- and $+ (and their English equivalents under 'use
80 English') provided the subscripts are literal integers.
53166709
TW
81 * RegularExpressions::ProhibitUnusedCapture now takes account of the
82 use of capture variables in the replacement portion of
83 s/.../.../e.
0df91873
ES
84 * Subroutines::ProhibitUnusedPrivateSubroutines now looks inside
85 regular expressions.
86 * ValuesAndExpressions::ProhibitMagicNumbers now supports Const::Fast.
6ce9243e
TW
87 * ValuesAndExpressions::ProhibitMagicNumbers now has a
88 constant_creator_subroutines parameter to allow the user to
89 configure the names of subroutines that create constants. RT #62562.
0df91873
ES
90 * ValuesAndExpressions::ProhibitMismatchedOperators didn't handle file
91 test operators properly. Patch by H.Merijn Brand. RT #58751
92 * Variables::ProhibitUnusedVariables now looks inside regular
93 expressions.
2958f9ee
TW
94 * ValuesAndExpressions::RequireInterpolationOfMetachars now detects
95 and complains about "\b" and "\l" as documented in perlop, and
96 "\1" through "\7", which are not documented there, but were found
97 in toke.c.
7727f2f1 98
bc1567bf
ES
99 New Developer Features:
100 * uses_module(), namespaces(), and subdocuments_for_namespace() methods on
101 Perl::Critic::Document.
102 * Perl::Critic::Document->new() now accepts a -filename-override argument
103 for setting the filename when the source code comes from something
104 other than an actual file.
105
8ccbc8c0
ES
106 Other Changes:
107 * Test::Perl::Critic::Policy no longer exports by default.
a9ce4c58 108 * Build phase now requires Test::Deep.
0614c339
TW
109 * Added example using Try::Tiny to documentation of
110 ErrorHandling::RequireCheckingReturnValueOfEval. Suggested by Andy
28c853c2 111 Lester on the developers mailing list.
776c9cd4
ES
112 * In order to get more consistent behavior across all installations of
113 Perl::Critic, IPC::Open2 (which actually is part of core), PPIx::Regexp,
114 Perl::Tidy, Pod::Spell, and Text::ParseWords are no longer optional
115 prerequisites.
d6893a94 116 * Now depends upon PPIx::Utilities v1.1.0.
a9ce4c58 117
1e54fca6
ES
118 Bug Fixes:
119 * Build.PL/Makefile.PL didn't specify a minimum version of version.pm, but
120 TestingAndDebugging::RequireUseStrict did. RT #58952
cce731bd
TW
121 * Perl::Critic::Annotation needs to look inside the __END__ statement to
122 find the true end of the document, otherwise POD policies may give false
123 positives. RT #59176
1d28c306
TW
124 * BuiltinFunctions::ProhibitStringyEval no longer dies on eval
125 "#...". RT #60179
67510b85
ES
126 * RegularExpressions::ProhibitUnusedCapture now takes account of the
127 %LAST_PAREN_MATCH as well as %+ if English has been loaded. RT #60002
524c3240
TW
128 * Subroutines::ProhibitManyArgs now interprets prototype groups (e.g.
129 \[$@%]) as representing a single argument.
1e87fa52
TW
130 * Require Exporter version 5.63 (versus version 0) to get sane handling of
131 export tags. RT# 61071
2e31b804 132 * Prevent Subroutines::ProhibitUnusedPrivateSubroutines from failing
b2c1086c
TW
133 on &_subroutine(). RT #61311
134 * Subroutines::ProhibitAmpersandSigils now allows references of the
665fbede 135 form \( &sub1, &sub2 ). RT #49609
8c4463d4 136
bc1567bf
ES
137[1.112_002] Released on 2011-02-09
138[1.112_001] Released on 2010-12-14
139
140 Changes summarized into 1.113 above. For exact details, see Changes on
141 BackPAN.
142
143[1.111] Released on 2010-12-14
144
145 Bug Fixes:
146 * TestingAndDebugging::ProhibitNoStrict and ProhibitNoWarnings no longer
147 rely on the behavior of all() when the list is empty due to change in
148 List::MoreUtils 0.28. RT #63816
149
150[1.110_001] Released on 2010-11-30
151
152 Changes summarized into 1.113 above. For exact details, see Changes on
153 BackPAN. (Yes, all of this stuff was not in 1.111.)
154
8c4463d4
ES
155[1.109] Released on 2010-08-29
156
157 Bug Fixes:
158 * ValuesAndExpressions::RequireInterpolationOfMetachars fix due to changes
159 in Email::Address 1.890. Note that this may find problems in code that
160 it didn't before, e.g. q<'@foo'>.
1e54fca6 161
ef51afe3 162[1.108] Released on 2010-06-22
d533eee5 163
0b669668
ES
164 This is the "Give Shawn Moore what we promised him a year ago and hurry up
165 and get this out before Brad Oaks gives his YAPC::NA talk" release.
166
ef51afe3
ES
167 New Policies:
168 * Documentation::RequirePodLinksIncludeText
169 * Subroutines::ProhibitUnusedPrivateSubroutines
30dfd344 170
76d741ca
ES
171 New Features:
172 * There is a new global configuration item, 'program-extensions', which
173 configures Perl::Critic's idea of which file name extensions represent
ef51afe3
ES
174 programs. The desired extensions are specified as a space-separated list,
175 with leading '.' on each if that is desired. Files whose names end in
176 '.PL' will always be considered programs. This can be overridden by
76d741ca
ES
177 command option --programs-extensions, which can be specified multiple
178 times.
ef51afe3
ES
179 * There is now a perlcritic --allow-unsafe switch. Without this switch,
180 Perl::Critic will silently refuse to load any Policy that is marked
181 unsafe. Unsafe Policies are usually ones that may compile or execute
182 untrusted code (see Perl::Critic::DynamicPolicy for an example); Policy
183 authors can mark their policies as unsafe by overriding the is_safe()
184 method.
185 * The framework that we use to test Perl::Critic Policies has been
186 packaged into a convenient module that you can use to test your own
187 Policies. See Test::Perl::Critic::Policy and Perl::Critic::TestUtils
188 for details.
fc297a58 189
ef51afe3
ES
190 Policy Changes
191 * BuiltInFunctions::ProhibitLvalueSubstr no longer complains when there
192 is a low-precedence operator between the substr() and the assignment
193 operator.
194 * CodeLayout::ProhibitParensWithBuiltins now allows 'state ($foo)'. RT
195 #52029
196 * ErrorHandling::RequireCarping now has an
197 allow_in_main_if_not_in_subroutine option to allow "die" directly in
198 the default namespace.
199 * InputOutput::RequireBriefOpen now recognizes CORE::open(),
200 CORE::close(), CORE::GLOBAL::open(), and CORE::GLOBAL::close(). RT
201 #52391
202 * Modules::ProhibitEvilModules now complains by default about the modules
203 deprecated by the Perl 5 Porters in 5.12.
204 * Modules::RequireVersionVar documentation updated to make clear that "my
205 $VERSION" does not work as a module version declaration. RT #56667
206 * The RegularExpressions::* policies have been converted from using
207 Regexp::Parser to using PPIx::Regexp for their heavy lifting.
208 * RegularExpressions::ProhibitCaptureWithoutTest now allows capture
209 variables inside when() {}. RT #36081.
fc297a58
TW
210 * RegularExpressions::ProhibitUnusedCapture now checks for unused named
211 captures.
ef51afe3
ES
212 * Subroutines::ProhibitManyArgs revised to count only characters in the
213 prototype that represent arguments. RT #56627
214 * Subroutines::ProhibitNestedSubs no longer complains about scheduled
215 blocks (BEGIN, etc.) inside subroutines and vice versa.
216 * Subroutines::RequireFinalReturn should now understand a final given/when
217 statement, and declare an error if there is no 'default' block or if any
218 branch does not return.
219 * TestingAndDebugging::RequireUseStrict now accepts 'use 5.011' or greater
220 as equivalent to 'use strict'.
221 * ValuesAndExpressions::ProhibitMismatchedOperators false positive with
222 "'foo' x 15 . 'bar'". RT #54524
223 * Variables::ProhibitPunctuationVars gave false positives on qr// regexp's
224 ending in '$'. RT #55604
410ba6b3 225
d44f140e 226 Bug Fixes:
ef51afe3 227 * The "## no critic" annotations now respect #line directives.
ae766e5c 228 * Annotations on statements spanning more than one line (e.g.
ef51afe3
ES
229 my $foo =
230 '$bar'; ## no critic (RequireInterpolationOfMetachars)
ae766e5c 231 ) are now handled as single-line annotations, not block annotations.
fc297a58
TW
232 * All instances of L<Foo> in the POD have been changed to L<Foo|Foo>.
233 L</bar> and L<Foo/bar> were allowed to stand. RT #37485
fc297a58
TW
234 * Spaces are now allowed immediately inside the enclosing parentheses in
235 "## no critic ( Foo )". RT #52038
72189be0
TW
236 * With the introduction of PPIx::Regexp, Perl::Critic no longer dies
237 when it encounters a Perl 5.010 regexp. RT #49442.
ef51afe3
ES
238 * DEVELOPER.pod typo in link to
239 ValuesAndExpressions::ProhibitConstantPragma policy. RT #57818
240 * Spelling errors in documentation. RT #57375
241 * "die" used instead of "croak". RT #56619
242 * Fixed regex test that caused test failures on every Perl 5.11
243 (credit Tom Wyant).
244 * t/20_policy_pod_spelling.t now works (or at least no longer fails)
245 in non-English locales (again). RT #43291 and RT #48986.
246 * Perldoc hae broken link for McCabe score definition. RT #53219
247 * RT #33935 and #49679 were fixed by upgrading to PPI 1.208
d44f140e 248
b005b12c 249 Other Changes:
ef51afe3
ES
250 * Perl::Critic::Utils::is_unchecked_call() updated to include chmod in the
251 set of things covered by autodie (this happened in autodie v2.08). The
252 primary effect of this is on InputOutput::RequireCheckedSyscalls.
253 * Now depends upon Task::Weaken to ensure that we only install with perls
254 where Scalar::Util::weaken() works.
255 * Email::Address was optional, but is now required. So everyone
256 gets the optimal behavior from RequireInterpolationOfMetachars.
257 * Some infrastructure has been extracted to the new PPIx-Utilities
258 distro. It is also a required dependency here. Over time a good
259 portion of Perl::Critic::Utils* will be migrated to this distribution.
260 * Perl::Critic::Utils::PPI::get_constant_name_element_from_declaring_statement()
261 is deprecated because it doesn't handle multiple constants being
262 declared within a single "use constant" statement. Use
263 PPIx::Utilities::Statement::get_constant_name_elements_from_declaring_statement()
264 instead.
265 * Removed all uses of Perl::Critic::Utils::PPIRegep. Since the
266 PPIx::Regexp update, Perl::Critic only used get_match_string() and
267 friends, which were superseded by the corresponding PPI methods.
268 Perl::Critic now depends on PPI-1.208 or newer.
269 * Moved Perl::Critic::Utils::PPIRegexp to the Perl-Critic-Deprecated.
b005b12c
ES
270 * The PolicySummary.pod file is now generated when the distribution
271 is created, rather than when you install it. This ensures the file
272 will be available on http://search.cpan.org. Thanks to Bear Longyear
6422d13a 273 for bringing this to our attention.
b005b12c 274
ef51afe3
ES
275[1.107_001] Released on 2010-06-20
276
277 Changes summarized into 1.108 above. For exact details, see Changes on
278 BackPAN.
279
280[1.106] Released on 2010-05-10
281
282 Bug Fixes:
283 * NamingConventions::Capitalization fix for PPI 1.212. RT #57348
284
285[1.105_03] Released on 2010-03-21
286[1.105_02] Released on 2010-01-23
287[1.105_01] Released on 2010-01-16
288
289 Changes summarized into 1.108 above. For exact details, see Changes on
290 BackPAN.
291
380712ca 292[1.105] Released on 2009-09-07
d2306f22
ES
293
294 Bug Fixes:
295 * Variables::ProhibitPunctuationVars would complain about "%-" appearing
296 anywhere in a string. RT #49016
297
1704f0ee
ES
298 Policy Changes:
299 * InputOutput::RequireCheckedSyscalls now complains about unchecked "say"
300 by default. RT #37487
301
3c7cf947 302[1.104] Released on 2009-08-23
46f91981
ES
303
304 This release is dedicated to Tom Wyant in appreciation of the amount of
305 effort he put into the enhancements and bug fixes in this release, for
306 having the patience to wait for the amount of time that it took to get
307 them out, and for overall awesomeness. Thank you, Tom.
04dbda14 308
4e2f0cd0
ES
309 New Policies:
310 Objects::ProhibitIndirectSyntax
311 ValuesAndExpressions::ProhibitComplexVersion
312 ValuesAndExpressions::RequireConstantVersion
313
f5688dcb
ES
314 New Optional Requirement:
315 * Email::Address, if you want
316 ValuesAndExpressions::ProhibitInterpolationOfLiterals to properly ignore
023a8de4 317 email addresses.
f5688dcb 318
94f7eff2
ES
319 New Features:
320 * Perlcritic will list the names of files with violations if given the
321 --files-with-violations option, or the names of files without
322 violations if given the --files-without-violations options. These
323 have synonyms -l and -L respectively.
a3e30f41 324 * Perlcritic has a new --list-enabled option, which lists the Policies
e85ad595
ES
325 that will be enforced, given the current configuration. This is
326 useful if you've written a complex command-line or modified your
327 .perlcriticrc file and you want to see which Policies *would*
328 be used with the current configuration, if you were actually going
329 to critque a file with it.
f5688dcb
ES
330 * Perl::Critic::Violation now takes #line directives into account in the
331 %F, %f, and %l formats. You can get the old values via the new %G, %g,
332 and %L formats.
94f7eff2 333
e85ad595 334 Policy Changes:
f5688dcb
ES
335 * CodeLayout::ProhibitParensWithBuiltins was complaining in certain cases
336 where parentheses are required due to operator precedence. RT #46862.
337 * ControlStructures::ProhibitMutatingListFunctions no longer complains
338 about uses of tr/// that don't modify the operand. Reported by EDAVIS,
339 RT #44515.
340 * Miscellanea::RequireRcsKeywords now accepts "qw$Keyword: ...$". RT
341 #45196.
342 * Modules::RequireFilenameMatchesPackage now respects logical filenames
343 defined by the "#line" directives. This allows the Policy to work
344 properly with IDEs and code generators.
e85ad595
ES
345 * NamingConventions::Capitalization now allows fully qualified subroutine
346 declarations ( e.g. "sub Foo::Bar::baz {...}" ). However, the
347 non-package part of the subroutine name must still conform to whatever
348 capitalization rule you have chosen.
f5688dcb
ES
349 * RegularExpressions::ProhibitCaptureWithoutTest no longer complains if
350 the regex is followed by an "or die" or similar. Reported by EDAVIS,
351 RT #36081.
352 * RegularExpressions::ProhibitComplexRegexes no longer counts variable
353 substitutions in the length. Reported by EDAVIS, RT #36098.
354 * RegularExpressions::ProhibitUnusedCapture now considers the body of
355 while loops and not just their condition. Reported by EDAVIS, RT
356 #38942.
f5688dcb
ES
357 * ValuesAndExpressions::ProhibitVersionStrings was getting confused by
358 comments. Reported by Kevin Ryde, RT #44986.
8c476a52
ES
359 * ValuesAndExpressions::RequireInterpolationOfMetachars now allows sigils
360 in the arguments to "use vars". Contributed by Kevin Ryde, RT #47318.
6bacb99c
ES
361 * ValuesAndExpressions::RequireInterpolationOfMetachars now properly
362 ignores email addesses, if you have Email::Address installed. Inspired
363 by the Kevin Ryde contribution in RT #47318.
eb9e2217
ES
364 * Variables::ProhibitPunctuationVars gained the ability to look inside
365 interpolated strings. Doing this correctly is challenging and things
366 may not work out right; how the policy does this can be controlled via
367 the new "string_mode" option. Contributed by Edgar Whipple
368 <perlmonk at misterwhipple dot com>.
f5688dcb
ES
369 * Variables::ProhibitPunctuationVars now ignores $] by default since there
370 is no English.pm equivalent.
371
372 Other Bug Fixes:
373 * Perl::Critic::Utils::parse_arg_list() was slurping up the "or die ..."
374 portion of "open my $foo, 'somefile' or die ...", causing
375 InputOutput::ProhibitTwoArgOpen to not complain about this example.
376 Reported by Alexandr Ciornii, RT #44554.
377
378 Minor Changes
379 * The line count emitted by the --statistics option is further broken down
380 by line content.
e85ad595 381
f5688dcb 382 Minor Documentation Fixes:
34d83b96 383 * ValuesAndExpressions::ProhibitInterpolationOfLiterals. Reported by
f5688dcb 384 Debian in http://bugs.debian.org/542814, RT #48936
34d83b96 385
d7a56cc3
ES
386 Build Fixes:
387 * There wasn't a specific version given for the List::MoreUtils dependency
388 and we're using features that weren't avialable until 0.19. So, we now
f5688dcb
ES
389 require version 0.19. Noticed by John J. Trammell, RT #48917.
390 * Some tests were tied to the specific "true" and "false" values that some
391 functions were returning. Reported by Michael Schwern, RT #43910.
d7a56cc3 392
caf17549
ES
393 Other News:
394 * Komodo version 5.1.1 now has built-in support for Perl-Critic,
395 if you have the Perl::Critic and criticism modules installed.
396 Both should be available through the ActiveState Perl Package
397 Manager ppm(1).
398
a2a9a024
ES
399[1.103] Released on 2009-08-03
400
94f7eff2 401 Fix configure_requires prerequisite on Module::Build 0.34_02.
a2a9a024 402
cc8f1a88 403[1.102] Released on 2009-08-03
04c1c727
ES
404
405 Bug fixes:
cc8f1a88
ES
406 * Works with PPI 1.205. Yay for 5.10 support!
407 * Variables::RequireLexicalLoopIterators didn't work correctly on foreach
408 loops with labels.
04c1c727 409
cc8f1a88
ES
410[1.101_003] Released on 2009-07-22
411[1.101_002] Released on 2009-07-21
c42eada5
ES
412[1.101_001] Released on 2009-07-21
413
cc8f1a88
ES
414 Changes summarized into 1.102 above. For exact details, see Changes on
415 BackPAN.
c42eada5 416
199004d6
ES
417[1.100] Released on 2009-07-17
418
419 This is a POD fix release to deal with issues identified by Test::POD
420 1.40. There is no functional difference between this release and 1.098.
421 This is the last release of Perl::Critic that will be compatible with PPI
422 1.203. PPI's parsing of for(each)? loops is changing in its next release
423 in an incompatible manner and there will be a release in the near future
424 to make Perl::Critic compatible with that change.
425
43e5274f
ES
426[1.099_002] Released on 2009-06-27
427[1.099_001] Released on 2009-06-25
428
429 Experimental releases. For exact details, see Changes on BackPAN.
430
9a594004 431[1.098] Released on 2009-03-07
b20509b4 432
8b8e5bfa
JRT
433 Some Exciting News:
434 The Perl Development Kit (PDK 8.0) from ActiveState now includes a
435 very slick graphical interface to Perl-Critic. I highly recommend
436 that you check it out. Here's a link to screenshots and docs:
437
438 http://docs.activestate.com/pdk/8.0/PerlCritic_gui.html
439
0b96e145 440 New Features:
3f6c71d6 441 * Violation coloring is now configurable via command line or profile. The
0b96e145
TW
442 profile entries are color-severity-highest, -high, -medium, -low, or
443 -lowest. Numbers are accepted in lieu of named severities (e.g.
444 'color-severity-5' for 'color-severity-highest'), and 'colour' is
445 accepted in lieu of 'color'.
9be65cc3
TW
446 * Handling of unrecognized policy configuration items is now controlled by
447 the profile_strictness. The default is to warn about them. The previous
2560297d 448 default was that they were fatal.
74ab621f 449 * -p is now a synonym for --profile.
75713d33
ES
450 * The --verbose option for perlcritic now supports a %C format that will
451 displays the class of PPI::Element that caused the violation.
0b96e145 452
98ba1bfd 453 Policy Changes:
6ed44031
ES
454 * ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions
455 didn't include "pbp" in its default themes even though it is derived
456 from the book. Now it does. :]
00467844 457 * ErrorHandling::RequireCarping now allows a here document as the last
312a457a 458 element if the "allow_messages_ending_with_newlines" option is true.
d299b000
ES
459 * Fix Subroutines::ProhibitAmpersandSigils so it allows "defined(&x)" as
460 well as "defined &x". Patch from Kevin Ryde, RT #38855.
faca2eeb
TW
461 * Subroutines::ProtectPrivateSubs now has an "allow" option to specify
462 subroutines which are exempt from this policy. RT #38678.
312a457a
ES
463 Additionally, a "private_name_regex" option has been added that allows
464 you to specify what a private subrouting name looks like.
8b869893
TW
465 * Subroutines::RequireArgUnpacking now has an "allow_subscripts" option
466 to allow array slices and elements. RT #34009.
5ecfde16
TW
467 * Subroutines::RequireArgUnpacking now has an "allow_delegation_to" option
468 to allow the usual delegation idiom. Delegation to 'SUPER::' and
469 'NEXT::' are allowed by default. RT #33839.
bf1d8677
TW
470 * Subroutines::RequireArgUnpacking no longer generates a false positive
471 for '$$_[]', which is an obfuscated way of saying '$_->[]'. RT #37713.
fd90d21c
ES
472 * ValuesAndExpressions::ProhibitMagicNumbers now has an
473 allow_to_the_right_of_a_fat_comma option, which defaults to true. Note
474 that it currently only works /directly/ to the right of a fat comma.
413e030e
ES
475 * Variables::ProhibitMatchVars had its default themes changed to "core
476 performance pbp", instead of "core bugs pbp" because, while the match
477 variables make regular expressions slow, it doesn't cause them to not
478 work correctly.
c06b3f8e
ES
479 * Variables::ProhibitPackageVars has had FindBin and Log::Log4perl added
480 to the default exemptions.
98ba1bfd
ES
481 * Variables::ProhibitReusedNames now has an "allow" option to specify
482 names that can be reused. It defaults to enabling $self and $class. RT
483 #42767.
3f6c71d6
ES
484 * Variables::RequireLocalizedPunctuationVars has a customizable set of
485 exemptions via the "allow" option.
98ba1bfd 486
2560297d
ES
487 New Developer Features:
488 * The guts of perlcritic have been moved to Perl::Critic::Command. You
489 can invoke Perl::Critic::Command::run() to get the equivalent of running
490 the command. (Note, however, this interface WILL change, so don't count
491 on the current one.)
4444d94d
ES
492 * Modules have had a "INTERFACE SUPPORT" section added which states
493 whether the Perl::Critic developers consider the particular module is
494 public or not. Any removal of functionality from a public module will
495 go through a deprecation cycle. Non-public modules may have their
496 interfaces changed without notice.
75713d33
ES
497 * P::C::Policy now has an is_enabled() method.
498 * P::C::Violation now has an element_class() method.
2560297d 499
1360fcdf 500 Bug Fixes:
98ba1bfd
ES
501 * CodeLayout::ProhibitTrailingWhitespace didn't notice cases where PPI
502 would produce instances of PPI::Token::Whitespace that contained
503 multiple lines.
faca2eeb
TW
504 * Subroutines::ProtectPrivateSubs no longer regards the exportable POSIX
505 subroutines whose names begin with underscore as private. RT #38678.
ce0abbf1
ES
506 * Subroutines::RequireArgUnpacking mishandled a complicated sitation with
507 $_ being an array reference. RT #39601.
3f6c71d6
ES
508 * Variables::RequireLocalizedPunctuationVars now applies to subscripted
509 names. RT #29384.
1360fcdf 510
4444d94d
ES
511 Internals:
512 * The guts of Build.PL and Makefile.PL have been rearranged.
75713d33
ES
513
514[1.097_002] Released on 2009-03-01
515[1.097_001] Released on 2009-03-01
516
517 Changes summarized into 1.098 above. For exact details, see Changes on
518 BackPAN.
4444d94d 519
7972f710 520[1.096] Released on 2009-02-01
f0c86a28 521
a0d0101d
ES
522 New Policies:
523 * ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator
656ab15f 524
689f8d17
ES
525 Policy Changes:
526 * Documentation::PodSpelling now has a stop_words_file option.
da542cf2 527 * Modules::ProhibitEvilModules now has a modules_file option.
689f8d17 528
656ab15f 529 Bug Fixes:
9634d8bb
ES
530 * ErrorHandling::RequireCarping will now allow a literal newline
531 as well as "\n". Fixed by Kyle Hasselbacher, RT #25046
532 * Fix InputOutput::ProhibitTwoArgOpen so it allows '-|' or '|-' as the
533 second of two arguments. Patches from Kyle Hasselbacher and Leland
534 Johnson, RT #42384.
535 * InputOutput::RequireBracedFileHandleWithPrint applies to printf as well
536 as print. Fixed by Kyle Hasselbacher, RT #42537.
537 * TestingAndDebugging::RequireUseStrict and
538 TestingAndDebugging::RequireUseWarnings are no longer fooled by a
539 block-scoped pragma. RT #42310.
540 * ValuesAndExpressions::RequireInterpolationOfMetachars allows for escaped
541 backslashes. Fixed by Tom Wyant, RT #38530.
563dbceb
ES
542 * Fix for problem in P::C::Document in dealing with underscores in
543 expressions like "use 5.009_001". Patch by Kevin Ryde, RT #36570 and
544 #42089.
545 * Fix in extras/perlcritic.el for a radio button. Patch by Kevin Ryde, RT
546 #42190.
656ab15f
ES
547 * Fix distclean target in Makefile.PL. Patch by Richard Soderberg,
548 RT #42088.
e7df6986
ES
549 * Fix temporary files not being cleaned up after tests. Patch by Kyle
550 Hasselbacher, RT #41443.
9634d8bb 551 * Deal with changes in Pod::Parser v1.36 in test in t/05_utils_pod.t.
656ab15f 552
563dbceb
ES
553 Documentation improvements contributed by Mark Grimes in response to RT
554 #41942.
555
9634d8bb
ES
556[1.095_001] Released on 2009-01-18
557
558 Changes summarized into 1.096 above. For exact details, see Changes on
559 BackPAN.
560
6c292dd0
ES
561[1.094001] Released on 2009-01-01
562
563 Bug Fixes:
564 * Tests would fail on systems without Regexp::Parser installed.
565
d4bd4835 566[1.094] Released on 2009-01-01
e40d4359 567
d4bd4835
ES
568 Incompatible Changes:
569 * The way that "## no critic" markers was refactored. As
277b95f6
ES
570 a result, we discovered that the syntax for the markers was pretty
571 vague. If you didn't do it just right, it would disable all policies,
572 and not just the specific ones that you wanted. So we've tightened this
573 up a bit. If you followed the examples that have been in the docs for
574 the last couple years, then you should be fine. But if you've been
575 using certain other variations in your "## no critic" markers, then you
576 might suddenly find yourself violating the new
577 ProhibtUnrestrictedNoCritic policy. To fix this, just make sure your
578 Policy names appear in parentheses:
d5835ca8
JRT
579
580 ## no critic Foo, Bar, Baz # wrong!
581 ## no critic Foo Bar Baz # wrong!
1c31cb1f
ES
582
583
d5835ca8
JRT
584 ## no critic (Foo, Bar, Baz) # ok!
585 ## no critic qw(Foo Bar Baz) # also ok!
1c31cb1f 586
d4bd4835
ES
587 * The deprecated $FORMAT variables for Perl::Critic::Policy and
588 Perl::Critic::Violation no longer exist. Use the corresponding
589 get_format() and set_format() functions instead.
590
591 New Policies:
592 * Miscellanea::ProhibitUnrestrictedNoCritic
593 * Miscellanea::ProhibitUselessNoCritic
594 * NamingConventions::Capitalization
595 * Subroutines::ProhibitReturnSort
596 * Variables::ProhibitReusedNames
597
598 Removed Policies:
599 * NamingConventions::ProhibitMixedCaseSubs and
600 NamingConventions::ProhibitMixedCaseVars have been moved to a separate
601 Perl-Critic-Deprecated distribution. The
602 NamingConventions::Capitalization policy does everything they do, plus
603 more.
78afb6d4 604
a6539177 605 Policy Changes:
d4bd4835
ES
606 * BuiltinFunctions::ProhibitStringyEval now has an allow_includes option
607 that makes it behave (mostly) like Ricardo SIGNES'
608 Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire.
6386d95c
ES
609 * InputOutput::RequireCheckedClose, InputOutput::RequireCheckedOpen, and
610 InputOutput::RequireCheckedSyscalls now all support autodie.
b4f62a87
ES
611 Unfortunately, autodie is currently treated like a module and not a
612 pragma, which means that the lexical scoping is not taken into account.
d4bd4835
ES
613 * InputOutput::RequireCheckedSyscalls now has an exclude_functions
614 parameter.
5f629e32
ES
615 * Modules::ProhibitEvilModules now allows you to specify what the
616 description of a use of a bad module should be, to, say, suggest that
617 people use autodie instead of Fatal.
618 * Subroutine::ProhibitExcessComplexity violation descriptions now include
619 the name of the subroutine, thanks to Andreas Koenig, RT #40070.
d4bd4835
ES
620 * TestingAndDebugging::RequireUseStrict and
621 TestingAndDebugging::RequireUseWarnings now have equivalent_modules
622 parameters that allow you to designate other modules as being equivalent
623 to the strict and warnings pragmata. This one is for all you Moose fans
624 out there. :]
50759351
ES
625
626 Bug Fixes:
d4bd4835
ES
627 * ControlStructures::ProhibitUnreachableCode would treat package
628 statements as unreachable. Fixed by Kevin Ryde. RT #41734
629 * Fix warning from InputOutput::ProhibitOneArgSelect when select was
630 called with no arguments. RT #41926
50759351
ES
631 * Miscellanea::RequireRcsKeywords couldn't find keywords after __END__
632 that didn't look like part of POD.
3de28bcc
ES
633 * Modules::RequireFilenameMatchesPackage would incorrectly complain about
634 programs. Yet more greatness contributed by Schwern. RT #39024.
d4bd4835
ES
635 * If a perlcriticrc file referred to a policy that wasn't installed and
636 the profile-strictness option was set to "fatal",
637 Perl::Critic::PolicyFactory fell over instead of reporting the
638 problematic policy name.
639
640 Miscellanea:
641 * Perl::Critic::Violation will automatically strip trailing periods
642 from your Policy description and explanation strings. This ensures that
643 the punctuation is consistent with the format specified by the user via
644 the -verbose formatting options.
645
646 New Developer Features:
647 * Perl::Critic::Policy::prepare_to_scan_document() is now checked and a
648 Policy can disable itself for just a single document, which can speed
649 things up.
650
651[1.093_03] Released on 2008-12-11
652[1.093_02] Released on 2008-10-30
653[1.093_01] Released on 2008-09-07
654
655 Changes summarized into 1.094 above. For exact details, see Changes in
656 1.093_003 on BackPAN.
50759351 657
33e51b94
JRT
658[1.092] Released on 2008-09-02
659
660 Bug Fixes:
661 * Fixed POD errors that were causing build failures. Sorry
662 about that.
663
5f2b1108 664[1.091] Released on 2008-09-01
57aab077
JRT
665
666 New Policies:
75a4e4c6 667 * RegularExpressions::RequireDotMatchAnything
57aab077 668
385d181e
JRT
669 New Features:
670 * perlcritic now supports a -pager option, so you can more easily
671 send the output to your favorite pager. You can set this option
672 on the command-line or in your .perlcriticrc file. See the
673 perlcritic perldoc for more details. Credit to Michael Schwern.
674 * The output from "perlcritic -doc PATTERN" will be automatically
675 sent to your pager if you have set the -pager option.
1c31cb1f 676
8e999c4c 677 Policy Changes:
724b3cfb
ES
678 * CodeLayout::ProhibitQuotedWordLists no longer applies if the list
679 contains any non-words, by default. A non-word is anything that does
680 not match /[\w-]+/. You can restore the former behavior by setting the
681 "strict" option. RT #37886.
682 * CodeLayout::ProhibitQuotedWordLists also now applies to the import
683 arguments of a C<use> statement. RT #24467.
684 * ErrorHandling::RequireCheckingReturnValueOfEval now recognizes ternary
685 left-sides as valid checks.
5f2b1108
JRT
686 * RegularExpressions::RequireExtendedFormatting gains a
687 minimum_regex_length_to_complain_about option. Also, regexes that
4377d197
ES
688 contain only word and whitespace characters are now exempt from this
689 policy, by default; you can make it complain about them by turning on
690 the new strict option. Contributed by Michael Schwern. RT #38531.
724b3cfb 691 * TestingAndDebugging::ProhibitNoWarnings now supports a
950a9602
ES
692 allow_with_category_restriction option, thanks to Michael Schwern.
693 RT #38514.
1c31cb1f 694 * CodeLayout::ProhibitHardTabs now allows leading tabs in qw() word lists
b979ee62
JRT
695 and regexes with the /x modifier. You can still configure this
696 policy to forbid all hard tabs, if you like. RT #32440
1b6d3116
ES
697
698 Bug Fixes:
699 * perlcritic should now work under PAR. RT #38380.
1ffd2487 700 * URL for our repository in META.yml now works for anonymous
1c31cb1f
ES
701 checkout. The password is "" (empty). RT #38628.
702 * color for high-severity violations is now magenta because
385d181e 703 it is more redable than yellow on white backgrounds. RT #38511.
8e999c4c 704
8eb8a2e5
ES
705[1.090] Released on 2008-07-22
706
707 Bug Fixes:
708 * Test was incorrectly failing when Regexp::Parser wasn't installed.
709
e6bca1d1 710[1.089] Released on 2008-07-21
a1477a62 711
2849151b
ES
712 Minor Enhancements:
713 * -s is now a synonym for --single-policy.
714
57774e85 715 Policy Changes:
1c31cb1f 716 * Subroutines::ProhibitBuiltinHomonyms now also prohibits subroutines
e4c35446 717 with the same name as a Perl keyword (e.g. if, foreach, while).
57a6408c 718 Inspired by RT #37632.
89c76499
JRT
719 * Subroutines::ProtectPrivateSubs now allows expressions like
720 "shift->_some_private_method();". Note that this *only* applies
721 to the "shift" function -- a private method call on the right of any
722 other bareword still causes a violation. RT #34713.
57774e85
ES
723 * Subroutines::RequireFinalReturn now includes exec in the set of things
724 that mark a successful return. RT #37672
725 * ValuesAndExpressions::ProhibitInterpolationOfLiterals now takes a
726 allow_if_string_contains_single_quote option. Contributed by Ed
727 Avis <ed@membled.com>. RT #36125.
728 * ValuesAndExpressions::RequireInterpolationOfMetachars now supports a
729 rcs_keywords option to allow for the common case where those require
730 dollar signs.
dcfc3546 731
8eb8a2e5 732 Bug Fixes:
a1477a62
ES
733 * BuiltinFunctions::ProhibitSleepViaSelect would complain if there were
734 three undefs as arguments to select(), but one of them was the timeout.
735 RT #37416.
d095fae4
CD
736 * Reduced false positives in
737 RegularExpressions::ProhibitSingleCharAlternation. Thanks to
738 Andy Lester and Elliot Shank test cases.
e624a1c0
ES
739 * RegularExpressions::ProhibitUnusedCapture would complain if there were
740 multiple captures used in a substitution, e.g. s/(.)(.)/$2$1/.
741 * Subroutines::ProhibitAmpersandSigils no longer complains about
742 "sort &foo(...)".
deb58212
JRT
743 * Makefile.PL, Build.PL and other ".PL" scripts which typically do not
744 have a shebang are no longer mistaken as modules. This prevents
e6bca1d1
ES
745 spurious warnings from Modules::RequireEndWithOne. RT #20481.
746
747 Internals:
748 * Tests are now self compliant.
a1477a62 749
07eded00 750[1.088] Released on 2008-07-04
eb4540f0 751
dd813c73
ES
752 New Policies
753 * ErrorHandling::RequireCheckingReturnValueOfEval
754
c25eb228
ES
755 Policy Changes:
756 * ValuesAndExpressions::ProhibitLeadingZeros now accepts octal numbers
94ab9170
ES
757 for the Unix permissions argument to chmod, dbmopen, mkdir, sysopen, or
758 umask, by default. Use the "strict" option to get the old behavior.
759 RT #31977.
99ee70a0
ES
760 * Due to the consensus at YAPC::NA 2008,
761 Variables::ProhibitUnusedVariables default severity has been raised to
762 medium/3.
c25eb228 763
eb4540f0
ES
764 Minor Changes:
765 * The perlcritic "--Version" option is now "--version" in order to act
766 like the rest of the world.
767
449d852e 768[1.087] Released on 2008-06-21
fc97dc73
ES
769
770 Policy Changes:
771 * CodeLayout::ProhibitParensWithBuiltins no longer complains about
772 sort(foo(@x)).
b00c448e
ES
773 * TestingAndDebugging::RequireUseWarnings will not complain about files
774 that contain a "use 5.005" statement or similar for perls prior to 5.6.
775 Lesson of the day: computer conferences where you can meet in the real
776 world can clarify conversations greatly. Good to finally meet you Adam.
80f16a6a 777 * InputOutput::ProhibitTwoArgOpen similarly will not complain if there's
c25eb228 778 a "use/require 5.005" statement in the file. RT #34385.
fc97dc73 779
de2dc641
ES
780 Bug fixes:
781 * Perl::Critic can now critique a file named "0". However, PPI will give
782 a parse error until the next version comes out. Fixes RT #36127.
558488f7
ES
783 * Moved detection of the lack of any enabled Policies from P::C::Config
784 to Perl::Critic. This was causing the perlcritic.t in Parrot to fail.
785 Note, however, there are plans afoot to change how Perl::Critic is
786 configured and things that depend upon that may break. Please contact
787 users@perlcritic.tigris.org and tell us how you're using P::C::Config
788 directly so that we can take your needs into account.
de2dc641 789
809f2b1d 790[1.086] Released on 2008-06-12
e424327a 791
2fa231f5
ES
792 Policy Changes:
793 * NamingConventions::ProhibitAmbiguousNames now specifies the name that
794 it had problems with in its violation descriptions.
9898dfa4 795
2fa231f5
ES
796 Bug fixes:
797 * The color option wasn't being correctly set from a .perlcriticrc.
798 RT #36569.
e424327a 799
2fa231f5
ES
800 Minor changes:
801 * --colour is now a synonym for --color.
e424327a 802
09c724b8 803[1.085] Released on 2008-06-07
fc1fcfaf 804
2fa231f5
ES
805 New Policies:
806 * Documentation::RequirePackageMatchesPodName
fc1fcfaf 807
2fa231f5
ES
808 Policy Changes:
809 * Variables::ProhibitUnusedVariables detects a few more cases. It's
810 still very limited, though.
09c724b8 811
2fa231f5
ES
812 Bug fixes:
813 * ControlStructures::ProhibitUnreachableCode didn't notice "until" was an
814 conditional expression.
20cf6b86 815
2fa231f5 816 Minor documentation updates.
20cf6b86 817
8896dc87 818[1.084] Released on 2008-05-24
da5b6791 819
2fa231f5
ES
820 New Features:
821 * perlcritic now supports a --list-themes option.
822 * You can specify the maximum number of violations you want per Policy
823 per document. Developers can give a default value for this for a
824 Policy by overriding default_maximum_violations_per_document().
825 See RequireUseStrict and ProhibitMagicNumbers for examples.
826
827 Policy Moved:
828 * The ValuesAndExpressions::ProhibitMagicNumbers policy has been moved
829 from Perl::Critic::More into the primary Perl::Critic distribution.
830
831 New Policies:
832 * Variables::ProhibitUnusedVariables (very dumb, limited initial
833 implementation.)
834 * ControlStructures::ProhibitLabelsWithSpecialBlockNames
835 Contributed by Mike O'Regan. Kickin' ass, Mike.
836
837 Policy Changes:
838 * ControlStructures::ProhibitUnreachableCode now handles the perl 5.10
839 "//" and "err" operators. RT #36080
840 * InputOutput::RequireBriefOpen now ignores opens of STDIN, STDOUT,
841 and STDERR. You're generally trying to make long-lasting global
842 effects when manipulating these. (RT #35774)
843 * RegularExpressions::ProhibitUnusualDelimiters now supports an
844 "allow_all_brackets" option.
845 * RegularExpressions::RequireBracesForMultiline now supports an
846 "allow_all_brackets" option.
847 * TestingAndDebugging::RequireUseStrict now accepts "use Moose::Role"
848 as equivalent to "use strict". (RT #34838)
849 * TestingAndDebugging::RequireUseWarnings now accepts "use Moose::Role"
850 as equivalent to "use warnings". (RT #34838)
851 * ValuesAndExpressions::ProhibitMagicNumbers now accepts constant
852 subroutines.
853 * Variables::ProhibitMatchVars no longer detects "use English;".
854 This problem is detected in a more clear way by
855 Modules::RequireNoMatchVarsWithUseEnglish.
856 * Variables::ProhibitPerl4PackageNames no longer complains about
857 $'/$POSTMATCH. RT #36059
858 * Variables::RequireLocalizedPunctuationVars now allows the use of "my".
859 RT #33937
860
861 Bug Fixes:
862 * No longer falls over if a single file has a parse error.
863
864 New Developer Features:
865 * If a document specifies a minimum perl version, e.g. "use 5.008003",
866 P::C::Document::highest_explicit_perl_version() will tell you what it
867 is.
868 * The parameter to P::C::Policy::initialize_if_enabled is now a
869 P::C::PolicyConfig object instead of a hash reference.
870
871 Minor Changes:
872 * LOTS of documentation updates.
873 * A few more statistics are emitted by perlcritic with the --statistics
874 option.
875 * perlcritic --profile-proto now includes policy abstracts in its
876 output.
877
878 Prerequisites:
879 * Now depends upon PPI 1.203.
880 * New dependency upon version.
267b39b4 881
8896dc87
ES
882[1.083_006] Released on 2008-05-20
883[1.083_005] Released on 2008-05-19
884[1.083_004] Released on 2008-05-18
885[1.083_003] Released on 2008-05-17
886[1.083_002] Released on 2008-05-17
887[1.083_001] Released on 2008-04-13
888
2fa231f5
ES
889 Changes summarized into 1.084 above. For exact details, see Changes in
890 1.083_006 on BackPAN.
8896dc87 891
3c1084d4 892[1.082] Released on 2008-03-08
e95460bd 893
2fa231f5
ES
894 New Features:
895 * A new metadata system for defining policy parameters/options has been
896 added. This makes the life of policy authors easier because
897 configuration validation and parsing can be taken care of
898 automatically, in most cases. This allows greater integration with
899 IDEs and allows the perlcritic "--profile-proto" option to produce
900 better output.
901
902 Note: This change does NOT REQUIRE ANY CHANGES to policies outside of
903 this distribution; they should continue to work as is. However, use
904 of this facility can reduce the size of your code and provide the
905 means for tools to discover more about your policy. If this change
906 does break any of your policies, please let us know.
907
908 To learn how to take advantage of this facility, read
909 Perl::Critic::DEVELOPER and look at the source of any of the
910 configurable policies included in this distribution.
911
912 There is a discussion of the design considerations for this facility in
913 the source repository under doc/PolicyParameter_Notes.pod.
914
915 * Added support for "criticism-fatal" option in your perlcriticrc
916 file. This will be used by the criticism pragma to cause execution
917 to abort if the file contains any violations.
918
919 New Policy:
920 * Module::RequireNoMatchVarsWithUseEnglish
921
922 Policy Changes:
923 * Added an allow_last_statement_to_be_comma_separated_in_map_and_grep
924 option to ValuesAndExpressions::ProhibitCommaSeparatedStatements.
925 Partial response to http://rt.cpan.org/Public/Bug/Display.html?id=27654.
926 * ControlStructures::ProhibitPostfixControls gains the ability to have
927 the flow control statements allowed to be modified. This in response
928 to RT #29540.
929 * TestingAndDebugging::RequireUseStrict now accepts "use Moose" as
930 equivalent to "use strict".
931 * TestingAndDebugging::RequireUseWarnings now accepts "use Moose" as
932 equivalent to "use warnings".
933
934 Bug Fixes:
935 * RT #31281 perlcritic doesn't recognize "#!/bin/env perl" shebang
936 * Replace usage of Unicode property escapes with POSIX character classes
937 order to restore 5.6 compatability.
938 * RT #30388 ValuesAndExpressions::ProhibitVersionStrings complained
939 about numbered directories in "use lib".
940 * Fixed handling of badly behaved spelling programs in PodSpelling.
351a08b3 941
3c1084d4
ES
942[1.081_006] Released on 2008-03-02
943[1.081_005] Released on 2007-12-29
90c56584 944[1.081_004] Released on 2007-12-20
28b227a2 945[1.081_003] Released on 2007-12-16
2f3bba7c 946[1.081_002] Released on 2007-12-16
2f3bba7c 947[1.081_001] Released on 2007-12-15
247cca4d 948
2fa231f5
ES
949 Changes summarized into 1.082 above. For exact details, see Changes in
950 1.081_006 on BackPAN.
3d075ed6 951
da251890
ES
952[1.080] Released on 2007-11-11
953
2fa231f5
ES
954 New Features:
955 * Allow a "## no critic" statement after a shebang on line 1 of a
956 file. This allows users to block violations that apply to
957 whole files and still allow shebangs.
958
959 New Policies: (funded by a Perl Foundation grant)
960 * InputOutput::ProhibitExplicitStdin
961 * RegularExpressions::ProhibitFixedStringMatches
962 * RegularExpressions::RequireBracesForMultiline
963 * RegularExpressions::ProhibitUnusualDelimiters
964 * RegularExpressions::ProhibitUnusedCapture
965 * RegularExpressions::ProhibitComplexRegexes
966 * RegularExpressions::ProhibitSingleCharAlternation
967 * RegularExpressions::ProhibitEscapedMetacharacters
968 * RegularExpressions::ProhibitEnumeratedClasses
969 * InputOutput::RequireBriefOpen
970 * InputOutput::RequireCheckedSyscalls
971
972 Other New Policies
973 * ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions
974
975 Policy Changes:
976 * Variables::ProhibitConditionalDeclarations now permits you to local-ize
977 variables in conditional declarations. This makes sense, since
978 C<local> is actually a variable modifier, rather than a declaration.
979 Thanks to David Golden for reporting this.
980
981 New Developer Features:
982 * Perl::Critic::Utils::PPIRegexp encapsulates interaction with
983 the PPI Regexp token classes. Those classes have very sparse
984 APIs, so this package hides away the ugly fiddling with PPI
985 internals.
986 * Added a new optional_modules parameter for the .run syntax.
987
988 Bug fixes:
989 * PPI::Structure::List can now contain multiple children,
990 so P::C::Utils::parse_arg_list() needs to handle it.
991
992 This was done in the process of fixing
993 http://rt.cpan.org/Ticket/Display.html?id=24924, which was a problem
994 with TestingAndDebugging::RequireTestLabels.
995
996 * ValuesAndExpressions::ProhibitLongChainsOfMethodCalls wasn't resetting
997 chain length when it ran into the end of a sub-expression.
998
999 http://rt.cpan.org/Public/Bug/Display.html?id=30040
1000
1001 * ValuesAndExpressions::ProhibitCommaSeparatedStatements was reporting
1002 false positives when builtins which accept both no and multiple
1003 arguments were involved.
1004
1005 http://rt.cpan.org/Public/Bug/Display.html?id=27654
1006
1007 Internals:
1008 * Removed all use of Carp in favor of exceptions.
1009
1010 Prerequisites:
1011 * Now requires PPI 1.201. A number of workarounds for PPI bugs have been
1012 removed.
1013 * New dependency upon Exception::Class.
1014
1015 Installation:
1016 * Use Devel::CheckOS to see whether Perl::Critic is being installed on
1017 a Solaris system and warn about tar(1) chopping file names off if it
1018 is.
a2f58b24 1019
3c1084d4
ES
1020[1.079_003] Released on 2007-10-22
1021[1.079_002] Released on 2007-10-21
1022[1.079_001] Released on 2007-10-09
1023
2fa231f5
ES
1024 Changes summarized into 1.080 above. For exact details, see Changes in
1025 1.079_003 on BackPAN.
3c1084d4 1026
b4d9a58e
ES
1027[1.078] Released on 2007-09-19
1028
2fa231f5
ES
1029 Restore Perl::Critic::TestUtils::should_skip_author_tests() and
1030 get_author_test_skip_message(). Some Perl::Critic add-on distributions
1031 are using them.
b4d9a58e 1032
496afbe0
ES
1033[1.077] Released on 2007-09-15
1034
2fa231f5
ES
1035 Note: if you don't have any problems installing Perl::Critic 1.076, there
1036 is no need to upgrade to this version. There are no functionality
1037 changes. This release only contains changes related to installation that
1038 a few people were experiencing.
496afbe0 1039
2fa231f5
ES
1040 Minor changes:
1041 * Removed build-time use of Readonly, again, due to problems some people
1042 were having when trying to compile the code by hand, rather than using
1043 CPAN(PLUS)?.
1044 * Don't run author tests if there's a .svn directory present because
1045 users who grabbed the code from the source repository were executing
1046 them and getting failures.
1047 * Don't generate optional, module-hiding test wrappers if author tests
1048 are not enabled.
496afbe0
ES
1049
1050
bb9f1668
ES
1051[1.076] Released on 2007-09-07
1052
2fa231f5
ES
1053 It appears from reports on the 1.075_001 release that the subroutine
1054 sigils were indeed the problem. Release to the general populace.
bb9f1668
ES
1055
1056
70f3f307
ES
1057[1.075_001] Released on 2007-09-06
1058
2fa231f5
ES
1059 Bug Fixes:
1060 Undo the changes in 1.073 and 1.074. Instead, stop using the subroutine
1061 sigil in import and export lists. It is suspected that the problem lies
1062 with Exporter stripping off ampersands.
70f3f307 1063
a93bf8bd
ES
1064[1.074] Released on 2007-09-04
1065
2fa231f5
ES
1066 Bug Fixes:
1067 Repeat the Makefile.PL change on
1068 t/generate_without_optional_dependencies_wrappers.PL.
1069 I love CPAN Testers.
a93bf8bd 1070
fb768776
ES
1071[1.073] Released on 2007-09-04
1072
2fa231f5
ES
1073 Bug Fixes:
1074 Work around problems with the combination of Exporter & Readonly in
1075 Makefile.PL on some machines.
fb768776 1076
5d0abeb9 1077[1.072] Released on 2007-09-03
34cc6052 1078
2fa231f5
ES
1079 Bug Fixes:
1080 * The Makefile generated by Makefile.PL was not syntactically correct
1081 according to some versions of Solaris. Thanks to Diab Jerius
1082 (DJERIUS) for discovery and testing.
1083 * Fixed mis-definition of "quiet" value for the "--profile-strictness"
1084 option.
1085 * Enhanced testing with the absence of optional modules.
34cc6052 1086
6d4236fe 1087[1.071] Released on 2007-08-24
6a0a13da 1088
2fa231f5 1089 The "Brown Paper Bag" Release
caf00bc9 1090
2fa231f5
ES
1091 Bug Fixes:
1092 * Tests would not pass in environments that did not have all optional
1093 dependencies installed.
caf00bc9
ES
1094
1095[1.07] Released on 2007-08-21
1096
2fa231f5
ES
1097 New Policies: (funded by a Perl Foundation grant)
1098 * BuiltinFunctions::ProhibitBooleanGrep
1099 * BuiltinFunctions::ProhibitComplexMappings
1100 * Documentation::PodSpelling
1101 * InputOutput::ProhibitJoinedReadline
1102 * Subroutines::ProhibitManyArgs
1103 * Subroutines::RequireArgUnpacking
1104 * ValuesAndExpressions::ProhibitImplicitNewlines
1105 * Variables::RequireLocalizedPunctuationVars
1106
1107 Other New Policies
1108 * Subroutines::ProhibitNestedSubs
1109
1110 New Features:
1111 * The "perlcritic --profile-proto" output now includes the "add_themes"
1112 parameter for each policy.
1113 * The perlcritic "--strict-profile" option has been replaced with a
1114 "--profile-strictness" option. This new option takes values of "warn"
1115 (the default), "fatal", and "quiet", which controls what happens with
1116 ignorable problems in a .perlcriticrc file.
1117
1118 New Developer Features:
1119 * Perl::Critic::Policy now has an overridable initialize_if_enabled()
1120 method which allows a Policy to perform expensive initialization after
1121 it has been determined whether the user has it enabled or not. Also,
1122 this method allows a Policy to say that it should be disabled
1123 regardless of what the user says.
1124
1125 Actually, use of this method is now encouraged over using a
1126 constructor.
1127
1128 Other Stuff:
1129 * Now requires the Readonly module in order to be more self-compliant.
1852a12c 1130
7e4ad2a0 1131[1.061] Released on 2007-07-24
1852a12c 1132
2fa231f5
ES
1133 Bug Fixes:
1134 * Fix P::C::Theme-- Exporter in Perl 5.6 does not export import(), so you
1135 must subclass it. *sigh*
1136 * Fix P::C::Config::_validate_and_save_theme()-- eval of an empty string
1137 does not reset $@/$EVAL_ERROR in Perl 5.6.
839af03d 1138
2fa231f5
ES
1139 Big thanks to Anirvan Chatterjee for identifying and helping debug these
1140 issues.
6a0a13da 1141
a8552b47 1142[1.06] Released on 2007-06-27
2e0f1c94 1143
2fa231f5
ES
1144 New Features:
1145 * perlcritic now emits errors for all the problems it can find for the
1146 global options in the command-line parameters and .perlcriticrc file,
1147 rather than bailing on the first one it encounters.
2e0f1c94 1148
2fa231f5
ES
1149 * perlcritic now has a "--strict-profile" option which will make warnings
1150 about problems in a profile fatal.
66186ba3 1151
2fa231f5
ES
1152 * perlcritic now has a "--statistics-only" option which suppresses the
1153 display of individual violations and only shows the additional output
1154 produced by the "--statistics" option.
738830ba 1155
2fa231f5
ES
1156 Feature requests:
1157 * A value for "color" can now be specified in a .perlcriticrc.
1158 http://rt.cpan.org/Ticket/Display.html?id=24877
25792f52 1159
2fa231f5
ES
1160 New Policies:
1161 * ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters
1162 As suggested in http://rt.cpan.org/Ticket/Display.html?id=23290.
1163 * ValuesAndExpressions::ProhibitLongChainsOfMethodCalls
1164 * Modules::ProhibitExcessMainComplexity
1165 As suggested in http://rt.cpan.org/Ticket/Display.html?id=24699
68a933bc 1166
2fa231f5
ES
1167 Minor changes:
1168 * The perlcritic "--profile-proto" option now emits the short names for
1169 policies, rather than the full ones.
7b94eb6d 1170
2fa231f5
ES
1171 * The "-profileproto" and "-singlepolicy" options have been renamed to
1172 "-profile-proto" and "-single-policy" in order to make the growing
1173 number of command-line options comprehensible. The change of
1174 "singlepolicy" also affects your F<.perlcriticrc> file.
738830ba 1175
c5609030
JRT
1176[1.053] Released on 2007-06-02
1177
2fa231f5 1178 *DEVELOPMENT RELEASE*
c5609030 1179
2fa231f5
ES
1180 Bug Fixes:
1181 Fixed bug in 15_statustics.t test script, which caused the build
1182 to fail on machines that don't have Perl::Tidy installed.
c5609030 1183
8ff941e7 1184[1.052] Released on 2007-06-01
e1a212fa 1185
2fa231f5 1186 *DEVELOPMENT RELEASE*
c5609030 1187
2fa231f5
ES
1188 New Features:
1189 * perlcritic now emits a summary about the scanned code when enabled by
1190 the "-statistics" option.
576f6411 1191
2fa231f5
ES
1192 Policy Enhancements:
1193 * InputOutput::ProhibitBacktickOperators can now be configured to only
1194 check in void contexts.
464d4c66 1195
2fa231f5
ES
1196 Bug Fixes:
1197 * 27073: False positive in RequireUpperCaseHeredocTerminator
1198 * 27065: CodeLayout::ProhibitTrailingWhitespace breaks under Perl 5.6.1
1199 * 26462: ControlStructures::ProhibitCascadingIfElse pod typo
1200 * ValuesAndExpressions::ProhibitCommaSeparatedStatements was complaining
1201 about multiple values in the list to be iterated over by a foreach loop.
1202 * Corrected PBP page numbers for some policies (Quinn Weaver).
db5e49e8 1203
be3d6b0b
JRT
1204[1.051] Released on 2007-04-12
1205
2fa231f5 1206 *DEVELOPMENT RELEASE*
be3d6b0b 1207
2fa231f5
ES
1208 No new policies.
1209 No particular bug fixes.
f1a58c7c 1210
2fa231f5
ES
1211 Internals:
1212 * Added several new utility functions to support the StricterSubs distro.
1213 Also, some of the existing functions in Perl-Critic-Utils have
1214 changed in ways that might break your custom policies.
f1a58c7c 1215
2fa231f5
ES
1216 Miscellanea:
1217 * Updated Emacs plugin (Courtesy Josh ben Jore).
1218 See extras/perlcritic.el for details.
1219 * Added copy of BBEdit plugin (Courtesy of Josh Clark).
1220 See extras/perl_critic_for_bbedit-1_0.zip for details
f1a58c7c 1221
a65bc95d
JRT
1222[1.05] Released on 2007-03-19
1223
2fa231f5
ES
1224 Bug Fixes:
1225 * 25557: t/20_policy_prohibittrailingwhitespace.t fails on Perl 5.8.0
a65bc95d 1226
47415a5b 1227[1.04] Released on 2007-03-18
7e50c40d 1228
2fa231f5
ES
1229 Bug Fixes:
1230 * 25008: Subroutines::RequireFinalReturn should allow "throw"
1231 * 25085: False Positive - Heredoc terminator must be quoted
1232 * 18423: VERSION check does not notice Readonly::Scalar version
1233 * 25449: Proposal of $VERSION declaration (DUPLICATE)
7e50c40d 1234
2fa231f5
ES
1235 New Policies:
1236 * CodeLayout::ProhibitTrailingWhitespace
1237 * ValuesAndExpressions::ProhibitCommaSeparatedStatements
1238 * Variables::ProhibitPerl4PackageNames
74dfa143 1239
2fa231f5
ES
1240 Policy Enhancements:
1241 * Subroutines::RequireFinalReturn can now be configured to recognize
1242 your custom functions that behave like "die" or "exit".
1243 * Documentation::RequirePodSections can be configured to match
1244 Module::Starter:PBP or to really match the PBP book.
7e50c40d 1245
34883f65 1246[1.03] Released on 2007-02-13
7807e1bf 1247
2fa231f5
ES
1248 Bug Fixes:
1249 * Fixed a few more problems with the %f, %F, and %r format escapes.
1250 * I forgot to put Conway's perlcriticrc file in the MANIFEST. Sorry.
2d106991 1251
2fa231f5
ES
1252 Interface Changes:
1253 * Perl::Critic::Utils automatically exports everything. However,
1254 this is deprecated. In the future, you must request your exports.
2d106991 1255
2fa231f5
ES
1256 Policy Changes:
1257 * Duplicate violations of RequireExcplicitPackage are now squelched,
1258 in the same way as RequireUseStrict and RequireUseWarnings.
7807e1bf 1259
dd85a2e2 1260[1.02] Released on 2007-02-11
7580d822 1261
2fa231f5
ES
1262 Bug Fixes:
1263 * "undef" incorrectly triggered ProhibitMutatingListFunctions.
1264 * 24876: %f and %F escapes not working in custom "verbose" format strings.
1265 * 24875: Documentation bug in TestingAndDebugging::ProhibitNoStrict
7580d822 1266
2fa231f5
ES
1267 New Policies:
1268 * InputOutput::RequireCheckedOpen
1269 * InputOutput::RequireCheckedClose
9fb2d1dc 1270
2fa231f5
ES
1271 Other Cool Stuff:
1272 * Added Conway's own suggested Perl::Critic configuration as
1273 examples/perlcriticrc-conway.
dd85a2e2 1274
2fa231f5
ES
1275 * See the examples/ directory for some neat demonstrations of using
1276 the Perl::Critic API. Contributed by Elliot Shank.
dd85a2e2 1277
2fa231f5
ES
1278 Interface Changes:
1279 * Perl::Critic::Utils no longer exports anything by default. Policies
1280 outside the distribution will need to specify what exactly they need
1281 from this module. There are a number of tags that can be used in
1282 addition to individual imports.
bbf4108c 1283
839f3ee0
JRT
1284[1.01] Released on 2007-01-24
1285
2fa231f5
ES
1286 PRODUCTION RELEASE: You may now consider the public Perl::Critic
1287 API as "stable." Future minor releases will focus on bug fixes,
1288 new policies, and internal refactoring.
16cfe89e 1289
2fa231f5
ES
1290 Bug Fixes:
1291 * Fixed memory leak. This was reported by the Parrot team at
1292 http://rt.perl.org/rt3/Ticket/Display.html?id=41230
16cfe89e 1293
c10663c1 1294[0.23] Released on 2007-01-19
e2d4c0f0 1295
2fa231f5
ES
1296 Bug Fixes:
1297 * 23994: Test 56 in t/05_utils.t of Perl::Critic v0.22 fails
1298 * 24005: test 95 in t/13_bundled_policies fails in 0.22
9eb1fee5 1299
e2d4c0f0 1300
2fa231f5
ES
1301 Groovy New Features:
1302 * Added '%F' to the Violation format specifications. This will
1303 give you just the name of file where the violation occurred
1304 (i.e. without the path).
34510f7e 1305
2fa231f5
ES
1306 * Improved validation of .perlcriticrc file. An invalid
1307 default setting will now cause a fatal exception. A
1308 strange-looking policy name will cause a warning.
0d63e03a 1309
98768f5b 1310
2fa231f5
ES
1311 Interface Changes:
1312 * The syntax for theme expressions has changed. Instead of using
1313 mathematical operators qw(+ * -) you must now use the logical
1314 operators qw(|| && !). See the Perl::Critic docs for more info.
496afbe0 1315
2fa231f5
ES
1316 * The @GLOBALS and @BUILTINS variables are no longer exported by
1317 Perl::Critic::Utils. Use the is_perl_global() and is_perl_builtin()
1318 functions instead.
98768f5b 1319
2fa231f5
ES
1320 * Perl::Critic::Policy::policy_parameters() has bee renamed to
1321 Perl::Critic::Policy::supported_paramters(). This was an
1322 undocumented feature anyway, so it shouldn't affect anyone.
98768f5b
JRT
1323
1324
2fa231f5
ES
1325 Other Internal Changes:
1326 * Perl::Critic now requires B::Keywords v1.05 or newer.
98768f5b 1327
2fa231f5
ES
1328 * A few internal classes have been refactored. As a result,
1329 Set::Scalar is no longer a required dependency.
e2d4c0f0
JRT
1330
1331
59c20113 1332[0.22] Released on 2006-12-15
4994405b 1333
2fa231f5
ES
1334 New Features:
1335 * Introduced named severity levels: gentle, stern, harsh, cruel, brutal
1336 You can use these named levels instead of the numeric ones.
1337 For example: "perlcritic --severity=cruel MyModule.pm"
1338 Or just: "perlcritic --cruel MyModule.pm"
fd5bd7b5 1339
2fa231f5
ES
1340 * For perlcritic, the "-List" option has been renamed to
1341 "-profileproto". The output now includes the names of the
1342 parameters that each Policy supports, if any.
fd5bd7b5 1343
2fa231f5
ES
1344 * Improved validation of Policy parameters in your F<.perlcriticrc>
1345 Any invalid parameter now causes a fatal exception.
0bcb38c0 1346
2fa231f5
ES
1347 Major Changes:
1348 * Reassigned themes for most policies. Now there are fewer
1349 themes and they are organized around programming concepts
1350 instead of severity levels. If you have assigned your own
1351 themes to any Policies, they should still work as expected.
0bcb38c0 1352
2fa231f5
ES
1353 Policy Changes:
1354 * ErrorHandling::RequireCarping will not complain if it can figure
1355 out that the die or warn message will always end in a newline
1356 ("\n"). The idea is that, if you put the newline there, you
1357 don't indend for there to be any file/line/stack information
1358 emitted, in which case you really don't want carp/croak.
e2365912 1359
2fa231f5
ES
1360 You can restore the old strict behavior by giving the policy
1361 a false value for "allow_messages_ending_with_newlines" in your
1362 configuration.
e97e0a99 1363
2fa231f5 1364 Misc Changes:
fd5bd7b5 1365
2fa231f5 1366 Added single-letter uppercase alternatives for some perlcritic options.
4994405b 1367
82bdf993 1368[0.21_01] Released on 2006-12-03
3f5f950c 1369
2fa231f5
ES
1370 New Policies:
1371 * TestingAndDebugging::ProhibitProlongedStrictureOverride
1372 * ControlStructures::ProhibitMutatingListFunctions
1373
1374 New Features:
1375 * Say "perlcritic -List" to get an expanded listing of all Policies.
1376 The format is suitable for use as your .perlcriticrc file.
1377 * Say "perlcritic -doc PATTERN" to get the documentation for all
1378 Policies that match m/PATTERN/imx. This is a little easier than
1379 typing in the full name of the Policy module with "perldoc".
1380 * Say "perlcritic --singlepolicy PATTERN" to use one and only one
1381 policy.
1382 * Can now specify exceptions to Variables::ProhibitPackageVars,
1383 for packages like File::Find that only interface through
1384 package variables.
1385
1386 Bug Fixes:
1387 * 21713 false positive for parens used with substr and unpack.
1388 * 22890 allow Rcs keywords in POD.
1389
1390 Internals:
1391 * Testing system overhauled. Details on the Policy/subtest
1392 framework is in t/run.t.
1393 * Added Perl::Critic::Utils::words_from_string. This is safer
1394 than plain old C<split /\s+/>.
095ee6e3 1395
7f03b11b 1396[0.21] Released on 2006-11-05
1876bbe8 1397
2fa231f5
ES
1398 New Policies:
1399 * BuiltinFunctions::ProhibitReverseSortBlock
1400 * BuiltinFunctions::ProhibitVoidGrep
1401 * BuiltinFunctions::ProhibitVoidMap
1402 * CodeLayout::RequireConsistentNewlines
1403 * Modules::RequireFilenameMatchesPackage
1404 * TestingAndDebugging::RequireTestLabels
1405 * ValuesAndExpressions::ProhibitMismatchedOperators
1406
1407 New Features:
1408 * Introduced policy "themes." Themes are arbitrary names that can
1409 be used to identify a group of related Policies. You can select
1410 your favorite policies by combining themes in a mathematic expression
1411 such as "pbp * (danger + risky)". See POD for details.
1412 * perlcritic output is colorized if you have Term::ANSIColor. This
1413 only works on non-Win32 platforms. Use -nocolor switch to disable.
1414 * Say "perlcritic -count" to get just the the total number of
1415 violations per file. Use this feature to quickly identify hot-spots.
1416 * Use the -only switch to choose only from policies mentioned in your
1417 .perlcriticrc file. This is useful if you usually only want to
1418 work with a small subset of the policies.
1419 * Default values for most of the perlcritic and Perl::Critic options
1420 can now be defined in your .perlcriticrc file. See POD for details.
1421
1422 Bug Fixes:
1423 * 21236: wrong page number for "printing to filehandles"
1424 * 21916: File handle ... wrong page reference in PBP [DUPE]
1425 * 21714: false positive for capture var used in ternary condition
1426 * 21718: No skip for File::Slurp in includes.t
1427 * ProhibitBarewordFilehandles doesn't complain if you open
1428 STDIN, STDOUT or STDERR.
1429 * Parrot 40564: Subroutines::RequireFinalReturn should allow die,
1430 exit, etc.
1431 * Each "for" and "foreach" loop now adds one point to the McCabe
1432 complexity score.
1433
1434 Other Stuff:
1435 * The internals of Perl::Critic have been significantly refactored,
1436 but should still be compatible with existing third-party Policies.
1437 * Added author-only tests to the release, but disabled by default
1438 * New Perl::Critic::Utils::shebang_line() method
1439 * Support for filename-based policies
1440 * Additional prerequisite: Set::Scalar
1441 * Now requires PPI version 1.118
1876bbe8
CD
1442
1443[0.20] Released on 2006-09-10
9ee6a397 1444
2fa231f5
ES
1445 Perl::Critic now requires PPI version 1.117, which fixes
1446 several bugs that were introduced in version 1.116.
9ee6a397 1447
2fa231f5
ES
1448 Bug Fixes:
1449 * 21079: grep clears @SITE_POLICIES
1450 * 21352: Test failures with PPI 1.117
1451 * 11365: sub DESTROY detected as a builtin homonym
9ee6a397
JRT
1452
1453[0.19] Released on 2006-08-20
f7231315 1454
2fa231f5
ES
1455 New Policies:
1456 * BuiltinFunctions::ProhibitStringySplit
1457 * ControlStructures::ProhibitDeepNests
1458 * RegularExpressions::ProhibitCaptureWithoutTest
1459 * Variables::RequireLexicalLoopIterator
b22c8627 1460
2fa231f5
ES
1461 New Features:
1462 * "perlcritic -quiet" suppresses the "source OK" message.
1463 * Variables::ProhibitPunctuationVars is now configurable.
8b5892fc 1464
2fa231f5
ES
1465 Bug Fixes:
1466 * 20965: "Hard tabs used at" shouldn't check __DATA__
1467 * 21070: ProhibitNoisyQuotes hates overload
1468 * Punctuation variables are now exempt from ProhibitLocalVars
c4a2374c 1469
2fa231f5
ES
1470 Other Stuff:
1471 * Test coverage is now over 95%
876c81c6 1472
be8538d2 1473[0.18_01] Released on 2006-08-06
b22c8627 1474
2fa231f5
ES
1475 New Policies:
1476 * Variables::RequireNegativeIndices
1477 * InputOutput::ProhibitInteractiveTest
1478 * ErrorHandling::RequireCarping
1479
1480 Bug Fixes:
1481 * RequireTidyCode tests fail if user has custom .perltidyrc file
1482 * 20612: RequirePerlTidy was ignoring HEREDOCs
1483 * 20659: __END__ statement considered "unreachable"
1484 * Fix for PPI::XS (no C<use overload '""'> support)
1485 * Support for 'goto' in ProhibitAmpersandSigils and
1486 Subroutines::RequireFinalReturn
1487
1488 Performance Enhancements:
1489 * Introduced Perl::Critic::Document class. This is a facade for
1490 PPI::Document which internally caches search results. This
1491 reduces the running time by about 35%. The facade should be
1492 invisible, unless you are doing something really sneaky.
1493 * Extraction of the 'diagnostics' information is postponed
1494 until it is really needed. Speedup has not been measured.
1495 * Calls to helper-subs have been reordered for maximum efficiency.
1496
1497 Other Cool Stuff:
1498 * Includes updated version of perlcritic mode for emacs. See
1499 "extras/perlcritic.el" for details.
b22c8627 1500
be8538d2 1501[0.18] Released on 2006-07-16
0c43b2ce 1502
2fa231f5
ES
1503 Bug Fixes:
1504 * 14855: Home discovery is dangerously naive.
1505 * 20060: Incorrect page numbers in ProhibitLeadingZeros
1506 and RequireNumberSeparator policies.
1507 * 20068: .perlrc file - inconsistent documentation
1508 * 20254: "use vars qw(@EXPORT_OK)" not recognized
1509 * 20463: No-case heredoc terminator incorrectly detected as lower case.
1510 * ProhibitOneArgBless doesn't understand "bless {} => $class;"
1511 * ProhibitExcessComplexity doesn't count 'while' and 'until' stmnts
1512 * ProhibitLeadingZeros was falsely hits '.0456'
1513
1514 Enhancements:
1515 * If File::HomeDir is available, we use it to locate the
1516 .perlcriticrc file. This should help make Perl::Critic
1517 more portable to Win32 platforms. If File::HomeDir is
1518 not installed, we resort to looking at the usual
1519 environment variables.
1520
1521 Other Stuff:
1522 * Added "perlcritic.el", which is a super-cool emacs minor-mode
1523 that runs perl-critic on the current buffer and returns the
1524 results in a sexy hot-linked "compiler" window. You can run
1525 it on demand, or have it run automatically every time you
1526 save the buffer. You can find this in the extras/ directory.
1527 Thanks to Josh ben Jore for contributing this.
1528
1529 * Moved "Perl::Critic::TestUtils" into the installed build. This
1530 module is only used for unit-testing Perl::Critic, but we
1531 are putting it in the installation so folks who want to
1532 extend Perl::Critic can make use of it.
6a1cac48 1533
be8538d2 1534[0.17] Released on 2006-06-13
08624963 1535
2fa231f5
ES
1536 Bug Fixes:
1537 * 19836: Perl-Critic0.16 fails tests during install. This was
1538 caused by a bug in version 3.01 of Module::Pluggable. See
1539 http://rt.cpan.org/Ticket/Display.html?id=19857 for details.
1540 * Fixed bug in no-critic pragma parser.
08624963 1541
2fa231f5
ES
1542 New Policies:
1543 * ValuesAndExpressions::ProhibitEscapedCharacters
1544 * BuiltinFunctions::RequireSimpleSortBlock
9c9fbe13 1545
2fa231f5
ES
1546 Enhancements:
1547 * Perl::Critic can export critique() as a static function. This
1548 may appeal to folks who dislike the object-oriented interface.
491e8b78 1549
be8538d2 1550[0.16] Released on 2006-05-14
15bfb880 1551
2fa231f5
ES
1552 Enhancements:
1553 * Perl::Critic->critique() now accepts a PPI::Document as the
1554 argument. This feature creates an additional dependency on
1555 Scalar::Util, but that shouldn't be a problem because it is
1556 included with List::Util, which we already use.
15bfb880 1557
2fa231f5
ES
1558 Miscellanea:
1559 * Increased PPI dependency from v1.110 to v1.112
15bfb880 1560
be8538d2 1561[0.15_03] Released on 2006-05-07
4f7da5f8 1562
2fa231f5
ES
1563 Bug Fixes:
1564 * The "## no critic" feature is now implemented without eval-ing
1565 the code. This keeps Perl::Critic pure and safe :)
1566 * 19082: Page number for AUTOLOAD is incorrect
4f7da5f8 1567
2fa231f5
ES
1568 New Policies:
1569 * ControlStructures::ProhibitUnreachableCode (by Peter Guzis)
1570 * Modules::ProhibitAutomaticExportation
1571 * ValuesAndExpressions::ProhibitVersionStrings
4f7da5f8 1572
be8538d2 1573[0.15_02] Released on 2006-04-26
1bef6e21 1574
2fa231f5
ES
1575 Bug Fixes:
1576 * Reimplemented the '##no critic' pragmas to have effect on the
1577 line where the violation is reported, not on the line where
1578 the candidate element lives. This is because some policies
1579 may report violations that are nowhere near the element that
1580 is being evaluated.
1581 * RequireUseStrict, RequireUseWarnings, and RequireExplcitPackage
1582 all emit violations for _every_ statement that violates the
1583 Policy. This closes a loophole that allowed you to circumvent
1584 the Policy by using '## no critic' on just the first statement
1585 that violated the policy.
1586 * Fixed the workaround for the magic shebang that is inserted
1587 by EU::MM and M::B. This had stopped working around version 13.
1588 * Fixed -noprofile option on 'perlcritic'. This also had stopped
1589 working at some point.
350f4137 1590
be8538d2 1591[0.15_01] Released on 2006-04-16
520d94ce 1592
2fa231f5
ES
1593 Enhancements:
1594 * Added diagnostic messages if the .perlcriticrc contains entries
1595 for Policy modules that don't seem to exist.
1596 * Now you can specify which policies to disable with the
1597 "## no critic" pseudo-pragmas. This feature is still
1598 experimental. See docs for details.
1599 * perlcritic's directory searching now skips backup files, such
1600 as *.swp, *.bak and *~. It also ignores version control system
1601 directories, and the blib directory in module build directories.
9b32fc61 1602
2fa231f5
ES
1603 Bug Fixes:
1604 * 18386: Bad example in POD for Documentation::RequirePodSections
1605 * 18670: Test failure if Perl::Tidy is not installed
1606 * 18698: Policy idea ProhibitUniversalFunctions (see New Policies)
1607 * RequireInterpolationOfMetachars falsely hit strings like 'foo=s@'
1608 which are commonly used with Getopt::Long.
520d94ce 1609
2fa231f5
ES
1610 New Policies:
1611 * BuiltinFunctions::ProhibitUniversalCan (by Chris Dolan)
1612 * BuiltinFunctions::ProhibitUniversalIsa (by Chris Dolan)
520d94ce 1613
2fa231f5
ES
1614 Miscellanea:
1615 * All spurrious options for `perlcritic` are now fatal.
1616 * Changed several of the -verbose formats to be more readable.
1617 * Explicit -severity option now overrides -[12345] shortcuts instead
1618 of being the other way around.
55ae7242
JRT
1619
1620
a5eaeaa4 1621
be8538d2 1622[0.15] Released on 2006-03-26
df092b01 1623
2fa231f5
ES
1624 Bug Fixes:
1625 * 17964: Insists my code is not tidy (may not be fixed for all cases)
df092b01 1626
be8538d2 1627[0.14_02] Released on 2006-03-19
302ea648 1628
2fa231f5
ES
1629 Bug Fixes:
1630 * 15653: False positive in OneArgSelect (fixed for real this time)
b87b00dd 1631
2fa231f5
ES
1632 New Policies:
1633 * ClassHierarchies::ProhibitAutoloading
1634 * Documentation::RequirePodSections
1635 * InputOutput::RequireBracedFileHandleWithPrint
1636 * ValuesAndExpressions::ProhibitMixedBooleanOperators
1637 * Variables::RequireInitializationForLocalVars
5457cbc2 1638
be8538d2 1639[0.14_01] Released on 2006-03-05
fc1186f9 1640
2fa231f5
ES
1641 Bug Fixes:
1642 * 14731: False positive: Builtin function called with parens
1643 * 17554: False positive in CodeLayout::RequireTrailingCommas
20ceb4a0 1644
2fa231f5
ES
1645 New Policies:
1646 * ClassHierarchies::ProhibitExplicitISA
1647 * InputOutput::ProhibitReadlineInForLoop
1648 * Miscellanea::ProhibitFormats
1649 * Miscellanea::ProhibitTies
1650 * Variables::ProhibitConditionalDeclarations
fc1186f9 1651
be8538d2 1652[0.14] Released on 2006-01-29
f4814c30 1653
2fa231f5 1654 More documentation edits.
06d28f35 1655
2fa231f5
ES
1656 New Policies:
1657 * Documentation::RequirePodAtEnd
1658 * Subroutines::ProtectPrivateSubs
1659 * Variables::ProhibitMatchVars
1660 * Variables::ProtectPrivateVars
b672fd9e 1661
2fa231f5
ES
1662 Bug Fixes:
1663 * 15295: "## no critic" pragmas too aggresive on compound statements.
1664 * t/01_config.t failed in the presence of third-party policies
9ad4bbe8
JRT
1665
1666[0.13_05] Not released
1667
2fa231f5 1668 More documentation edits.
9ad4bbe8 1669
2fa231f5 1670 Implemented workaround for failing pod_coverage tests.
2e3c7424 1671
2fa231f5
ES
1672 Bug Fixes:
1673 * 16906: tr/// created false-postives with RegularExpression polices.
f4814c30 1674
be8538d2 1675[0.13_04] Released on 2005-12-31
a2969b87 1676
2fa231f5 1677 Moved DEVELOPER.pod file into the Perl/Critic dir.
a2969b87 1678
2fa231f5 1679 More documentation edits.
f4814c30 1680
e2ec15ae 1681[0.13_03] Released on 20051230
70d719da 1682
2fa231f5
ES
1683 perlcritic now prints 'source OK' if it doesn't find any
1684 violations. This gives folks a warm fuzzy feeling.
2d119dc9 1685
2fa231f5
ES
1686 Tweaked some test cases that were failing on my Solaris
1687 environment at work.
2d119dc9 1688
be8538d2 1689[0.13_02] Released on 2005-12-29
2d119dc9 1690
2fa231f5
ES
1691 Fixed Config to recognize fully-qualified module names in the
1692 .perlcriticrc file.
2d119dc9 1693
2fa231f5 1694 Various documentation edits.
70d719da 1695
be8538d2 1696[0.13_01] Released on 2005-12-28
5635926d 1697
2fa231f5
ES
1698 Replaced 'priority' concept with 'severity'. Now each Policy module
1699 has a predefined severity level ranging from 1 to 5. By default,
1700 perlcritic only reports the most severe violations. You can adjust
1701 the severity threshold at the command line, and you can change
1702 the severity for any Policy using the config file.
1703
1704 Chris implemented the applies_to() mechanism, which allows each Policy
1705 class to declare the types of PPI elements that it wants to examine.
1706 When traversing the document, Perl::Critic invokes the Policy only
1707 for elements that are of the correct type. This improves performance
1708 by about 33%.
1709
1710 Perl::Critic now uses a Plugin architecture to automatically
1711 discover Policy modules. So if you have custom Policies, all you
1712 have to do is install them in the Perl::Critic::Policy namespace --
1713 no need to add anything to your .perlcriticrc file. If you write
1714 policies in a different namespace, you can configure that too. See
1715 the Perl::Critic::Config docs for details.
1716
1717 New Policies:
1718 * Modules::RequireEndWithOne
1719 * NamingConventions::ProhibitAmbiguousNames
1720 * References::ProhibitDoubleSigils
1721 * Subroutines::RequireFinalReturn
1722 * Subroutines::ProhibitAmpersandSigils
1723 * Subroutines::ProhibitExcessComplexity
1724 * TestingAndDebugging::ProhibitNoStrict
1725 * TestingAndDebugging::ProhibitNoWarnings
1726
1727 Bug Fixes:
1728 * 15101: Plugin architecture improves support for 3rd-party code
1729 * 16319: Fixed incorrect PBP page number in ProhibitBarwordFilehandle
1730 * 16321: Lists of empty quotes are now allowed by ProhibitQuotedWordLists
1731 * 16288: Empty lists caused a fatal error RequireTrailingCommas
1732 * 15653: Fixed false positive in OneArgSelect.
496afbe0
ES
1733
1734[0.13] Released on 2005-10-31
59b05e08 1735
2fa231f5 1736 Official release of 0.12_03. No code major changes.
59b05e08
JRT
1737
1738[0.12_03] Not released
1739
2fa231f5
ES
1740 Renamed -Policy option to -include. Added -exclude to give the
1741 opposite effect.
59b05e08 1742
2fa231f5
ES
1743 Refactored constructor of Perl::Critic. Now, most of the work
1744 is delegated to Perl::Critic::Config. I'm not sure I like how
1745 this turned out, but we'll see how it goes.
59b05e08 1746
2fa231f5
ES
1747 Renamed some Policy modules to be a bit more comprehensible. Note
1748 that you may need to change your .perlcriticrc file accordingly.
1749 I also suggest removing your current Perl::Critic installation
1750 before installing this one.
59b05e08 1751
2fa231f5
ES
1752 Name Changes:
1753 * ProhibitUnpackagedCode => RequireExplicitPackage
1754 * RequireQuotedWords => ProhibitQuotedWordLists
59b05e08 1755
2fa231f5
ES
1756 Improved error message when Perl::Critic dies because PPI can't
1757 parsee the input code.
59b05e08 1758
2fa231f5 1759 Changed output of -help to be more terse.
59b05e08 1760
2fa231f5 1761 Edited POD.
59b05e08
JRT
1762
1763[0.12_02] Not released
1764
2fa231f5
ES
1765 Added -Policy option to perlcritic. The idea is to provide a
1766 compact interface for selecting Policy modules at the command-line.
1767 This feature is experimental and subject to change.
59b05e08 1768
2fa231f5
ES
1769 Added a warning message if -verbose value looks strange. In most
1770 applications, the -verbose option does not require a value, so people
1771 might be puzzled when they write 'perlcritic -verbose my_file.pm' and
1772 nothing seems to happen.
59b05e08 1773
2fa231f5
ES
1774 Command-line options to perlcritic are now case-sensitive. This
1775 makes it easier to abbreviate options that start with the same letters
1776 (e.g. 'Version' and 'verbose')
59b05e08 1777
2fa231f5
ES
1778 Fixed the new Policy modules that were misnamed and misplaced in the
1779 previous distribution.
59b05e08
JRT
1780
1781[0.12_01] Not released
1782
2fa231f5
ES
1783 Rewrote some of the ControlStructures and BuiltinFunction
1784 policies to be simpler (and probably a little faster).
1785
1786 Edited POD. Fixed some typos. Added PREREQUISITES section
1787 to Perl::Critic documentation.
1788
1789 Fixed the -verbose FORMAT option so that you can put metachars
1790 in the FORMAT specification. If using perlcritic, be careful to
1791 protect them from getting munged by the shell first.
1792
1793 Replaced ProhibitRequireStatements with RequireBarewordIncludes
1794 module. Courtesy of Chris Dolan <cdolan@cpan.org>
1795
1796 Added configuration to ProhibitInterpolationOfLiterals so that
1797 certain flavors of quotes can be exempt. This is for folks who
1798 have configured their editor to use special syntax highlighting
1799 for certain kinds of strings (SQL, for example).
1800
1801 perlcritic now accepts multiple file arguments, so now you can
1802 critique your entire distribution in one shot. As a result, the
1803 output-formats have changed slightly.
1804
1805 New Policy modules:
1806 * BuiltinFunctions::ProhibitLvalueSubstr
1807 * BuiltinFunctions::ProhibitSleepViaSelect
1808 * ClassHierarchies::ProhibitOneArgBless
1809 * CodeLayout::RequireTrailingCommas
1810 * CodeLayout::RequireQuotedWordLists
1811 * InputOutput::ProhibitTwoArgOpen
1812 * InputOutput::ProhibitOneArgSelect
1813 * InputOutput::ProhibitBarewordFileHandles
1814 * Miscellanea::RequireRcsKeywords
1815 * Modules::RequireVersionVar
1816 * RegularExpressions::RequireExtendedFormatting
1817 * RegularExpressions::RequireLineBoundaryMatching
1818
1819
1820 Bug fixes:
1821 14923: 'require' is now permitted. See RequireBarewordIncludes.
1822 15022: Fixed false-positives when keywords are used as hash keys.
1823 15023: Fixed spurious Violations by removing magic shebang.
1824 15031: Fixed spelling mistakes (and probably added some new ones).
1825 15233: Postfix 'if' is now allowed with 'die', 'croak', etc.
59b05e08 1826
be8538d2 1827[0.12] Released 2005-10-10
59b05e08 1828
2fa231f5
ES
1829 Redesigned the 'verbose' feature. Now the output format
1830 can be user-defined using a sprintf-like specification.
1831 perlciritc also has a predefined output format that is
1832 compatible with grep mode in editors like vim and emacs.
59b05e08 1833
2fa231f5
ES
1834 'return' is now exempt from ProhibitParensWithBuiltins. I may
1835 extend this exemption to all unary functions.
59b05e08 1836
2fa231f5
ES
1837 Edited POD. Added a super brief description of each policy
1838 in the main Perl::Critic documentation. Added details about
1839 editor integration.
59b05e08 1840
2fa231f5
ES
1841 Additional Prerequisites:
1842 * String::Format
59b05e08
JRT
1843
1844[0.11] Not released
1845
2fa231f5
ES
1846 The internal dynamics and API of Perl::Critic have changed
1847 considerably. The result is a 300% increase in performance.
1848 See the POD in Perl::Critic::Policy for details.
59b05e08 1849
2fa231f5
ES
1850 New Features:
1851 * Added -verbose option to put more stuff in the output. In the
1852 extreme, you can get the POD from Policy attached to each
1853 and every violation.
59b05e08 1854
2fa231f5
ES
1855 Additional Prerequisites:
1856 * IO::String
1857 * Pod::PlainText
59b05e08 1858
be8538d2 1859[0.10] Released 2005-10-05
59b05e08 1860
2fa231f5
ES
1861 Fixed stupid bug in newest Policy modules. They were returning
1862 PPI objects instead of Perl::Critic::Violation objects. Doh!
59b05e08 1863
2fa231f5
ES
1864 Fixed test scripts to prevent failures if the user already has a
1865 .perlcriticrc file.
59b05e08 1866
2fa231f5 1867 'ProhibitHardTabs' now allows leading tabs by default.
59b05e08 1868
2fa231f5
ES
1869 Put the Changes file in reverse-chronological order, so the most
1870 recent stuff is easy to find at the top of the file
59b05e08 1871
be8538d2 1872[0.09] Released 2005-10-04
59b05e08 1873
2fa231f5
ES
1874 Fixed several bugs:
1875 * 14810: Now you are allowed to create your own 'import' function,
1876 since this is frequently done with fancy modules.
1877 * 14817: Parens, brackets, and braces are now excluded from
1878 'ProhibitNoisyQuotes' since they look better in quotes anyway.
1879 * 14787: $1..$9 and '_' are exempt from ProhibitPunctuationVars
1880 * 14899: Object methods with the same name as a built-in can
1881 be called with parens (ProhibitParensWithBuiltins).
1882 * 14901: Normalized the exit status of perlcritic to 0, 1, or 2.
1883 See documentation for explanation.
1884 * 14855: Partially fixed home directory discovery. Still not
1885 completely portable, but at least doesn't create warnings.
1886
1887 New features:
1888 * 14734: Limit for number separators is now configurable
1889
1890 New Policy modules:
1891 * CodeLayout::ProhibitHardTabs
1892 * ControlStructures::ProhibitUnlessBlocks
1893 * ControlStructures::ProhibitUntilBlocks
1894 * ControlStructures::ProhibitCStyleForLoops
1895
1896 Changed the syntax for the magic comments. Adam had the
1897 idea of using a pragma-like notation. I liked it.
59b05e08 1898
be8538d2 1899[0.08_2] Released 2005-09-27
59b05e08 1900
2fa231f5
ES
1901 Fixed problems with Perl::Critic::Config that caused File::Spec
1902 to emit 'uninitialized value' warnings during the build.
59b05e08 1903
2fa231f5 1904 Added 1 Policy module contributed by Graham TerMarsch
59b05e08 1905
2fa231f5
ES
1906 Switched from File::Spec::Functions to plain File::Spec because
1907 I think its usage is more common.
59b05e08 1908
2fa231f5
ES
1909 Removed 'FindBin' from the test files so I can be sure that the
1910 right libraries are getting loaded. This means I'll have to
1911 use the -l option with C<prove>.
59b05e08 1912
2fa231f5 1913 Edited more POD.
59b05e08
JRT
1914
1915[0.08_01] Not released
1916
2fa231f5
ES
1917 Fixed "ProhibitParensWithBuiltins" to allow parens to be used with
1918 object method calls that have the same name as a builtin functions.
59b05e08 1919
2fa231f5
ES
1920 Introduced magical comments that allow developers to configure
1921 Perl::Critic on-the-fly from within their code.
59b05e08 1922
2fa231f5
ES
1923 Added META.yml files and POD tests to the build. I did this
1924 mostly just to boost the Kwalitee score on CPANTS.
59b05e08 1925
2fa231f5
ES
1926 Switched from "Config::Std" to "Config::Tiny" because it doesn't
1927 require those fancy Damian modules that don't seem to work on
1928 some older versions of Perl.
59b05e08 1929
be8538d2 1930[0.07] Released on 2005-09-21
59b05e08 1931
2fa231f5 1932 Fixed bugs in the ProhibitCascadingIfElse policy.
59b05e08 1933
2fa231f5 1934 Added ProhibitExplicitReturnUndef policy
59b05e08 1935
2fa231f5
ES
1936 Made ProhibitUnpackagedCode configurable so you can exempt scripts,
1937 which typically don't have an explicit 'package' statement.
59b05e08 1938
2fa231f5
ES
1939 ProhibitPackageVars policy now exempts vars in ALL_CAPS. This
1940 is to permit common package variables like @EXPORT and $VERSION.
59b05e08 1941
2fa231f5
ES
1942 Renamed "ProhibitStringyGrep and "ProhibitStringyMap" because
1943 the so-called string form doesn't really exist. Now called
1944 "RequireBlockGrep" and "RequireBlockMap"
59b05e08 1945
2fa231f5
ES
1946 Corrected documentation on defining Policy names within the
1947 configuration file. This still isn't very clear and needs
1948 to be rewritten.
59b05e08 1949
2fa231f5
ES
1950 Perl::Critic now requires PPI version 1.003, which has a few bug
1951 fixes of its own.
59b05e08 1952
2fa231f5 1953 Rewrite some code just to make Perl::Critic more self-compliant.
59b05e08 1954
2fa231f5
ES
1955 Added test cases to verify the configuration functionality. These
1956 are not completely thorough and need more work.
59b05e08 1957
be8538d2 1958[0.06] Released on 2005-09-17
59b05e08 1959
2fa231f5 1960 Now called 'Perl::Critic'.
496afbe0 1961
2fa231f5 1962 Added 4 new policy modules.
59b05e08 1963
2fa231f5 1964 Fixed bugs in build process.
59b05e08 1965
2fa231f5 1966 Added support for Module::Build.
59b05e08 1967
be8538d2 1968[0.05] Released on 2005-09-17
59b05e08 1969
2fa231f5
ES
1970 End of 'Perl::Review' releases. I have changed the name to
1971 'Perl::Critic' to avoid possible confusion with "The Perl Review"
1972 magazine.
59b05e08 1973
be8538d2 1974[0.04] Released on 2005-09-14
59b05e08 1975
2fa231f5 1976 Version 0.03 was a bust because I uploaded the wrong tarball to PAUSE.
59b05e08 1977
be8538d2 1978[0.03] Released on 2005-09-13.
59b05e08 1979
2fa231f5 1980 Fixed some POD links.
59b05e08 1981
2fa231f5 1982 Removed test cases for missing policy module.
59b05e08 1983
be8538d2 1984[0.02] Released on 2005-09-13.
59b05e08 1985
2fa231f5 1986 Major overhaul based on feedback from Perl community.
59b05e08 1987
2fa231f5
ES
1988 Factored coding standards into separate modules (known as
1989 Policies). The idea here is to allow other developers to easily
1990 contribute additional coding standards.
59b05e08 1991
2fa231f5
ES
1992 Reworked Perl::Review into a simple engine for loading and running
1993 Policy modules.
59b05e08 1994
2fa231f5
ES
1995 Gave perlreview a command-line interface and configuration file
1996 for selecting which Policy modules to use.
59b05e08 1997
be8538d2 1998[0.01] Released on 2005-08-16.
59b05e08 1999
2fa231f5 2000 Initial version.
a69e1617
ES
2001
2002##############################################################################
2003# $URL$
2004# $Date$
2005# $Author$
2006# $Revision$
2007##############################################################################
c25eb228
ES
2008
2009# ex: set ts=8 sts=4 sw=4 tw=78 ft= expandtab shiftround :