Login
75e175da3a0aeb4e85454a78b480d7bea4b41265
[gknop/Perl-Critic.git] / Changes
1 [1.???] Released on 2008-??-??
2
3     New Policies:
4     * ValuesAndExpressions::RequireConstantOnLeftSideOfEquality -- In
5       case you accidentally say "if ($foo = 42) {...}"
6
7     Policy Changes:
8     * CodeLayout::ProhibitQuotedWordLists no longer applies if the
9       list contains any non-words.  A non-word is anything that
10       does not match /[\w-]+/.  RT #37886.
11     * CodeLayout::ProhibitQuotedWordLists also now applies to the
12       import arguments of a C<use> statement.  RT #24467.
13     * ErrorHandling::RequireCheckingReturnValueOfEval now recognizes
14       ternary left-sides as valid checks.
15     * TestingAndDebugging/ProhibitNoWarnings now supports a
16       allow_with_category_restriction option, thanks to Michael Schwern.
17       RT #38514.
18
19     Bug Fixes:
20     * perlcritic should now work under PAR.  RT #38380.
21
22 [1.090] Released on 2008-07-22
23
24     Bug Fixes:
25     * Test was incorrectly failing when Regexp::Parser wasn't installed.
26
27 [1.089] Released on 2008-07-21
28
29     Minor Enhancements:
30     * -s is now a synonym for --single-policy.
31
32     Policy Changes:
33     * Subroutines::ProhibitBuiltinHomonyms now also prohibits subroutines 
34       with the same name as a Perl keyword (e.g. if, foreach, while).
35       Inspired by RT #37632.
36     * Subroutines::ProtectPrivateSubs now allows expressions like
37       "shift->_some_private_method();".  Note that this *only* applies
38       to the "shift" function -- a private method call on the right of any
39       other bareword still causes a violation.  RT #34713.
40     * Subroutines::RequireFinalReturn now includes exec in the set of things
41       that mark a successful return.  RT #37672
42     * ValuesAndExpressions::ProhibitInterpolationOfLiterals now takes a
43       allow_if_string_contains_single_quote option.  Contributed by Ed
44       Avis <ed@membled.com>.  RT #36125.
45     * ValuesAndExpressions::RequireInterpolationOfMetachars now supports a
46       rcs_keywords option to allow for the common case where those require
47       dollar signs.
48
49     Bug Fixes:
50     * BuiltinFunctions::ProhibitSleepViaSelect would complain if there were
51       three undefs as arguments to select(), but one of them was the timeout.
52       RT #37416.
53     * Reduced false positives in
54       RegularExpressions::ProhibitSingleCharAlternation.  Thanks to
55       Andy Lester and Elliot Shank test cases.
56     * RegularExpressions::ProhibitUnusedCapture would complain if there were
57       multiple captures used in a substitution, e.g. s/(.)(.)/$2$1/.
58     * Subroutines::ProhibitAmpersandSigils no longer complains about
59       "sort &foo(...)".
60     * Makefile.PL, Build.PL and other ".PL" scripts which typically do not
61       have a shebang are no longer mistaken as modules.  This prevents
62       spurious warnings from Modules::RequireEndWithOne.  RT #20481.
63
64     Internals:
65     * Tests are now self compliant.
66
67 [1.088] Released on 2008-07-04
68
69     New Policies
70     * ErrorHandling::RequireCheckingReturnValueOfEval
71
72     Policy Changes:
73     * ValuesAndExpressions::ProhibitLeadingZeros now accepts octal numbers
74       for the Unix permissions argument to chmod, dbmopen, mkdir, sysopen, or
75       umask, by default.  Use the "strict" option to get the old behavior.
76       RT #31977.
77     * Due to the consensus at YAPC::NA 2008,
78       Variables::ProhibitUnusedVariables default severity has been raised to
79       medium/3.
80
81     Minor Changes:
82     * The perlcritic "--Version" option is now "--version" in order to act
83       like the rest of the world.
84
85 [1.087] Released on 2008-06-21
86
87     Policy Changes:
88     * CodeLayout::ProhibitParensWithBuiltins no longer complains about
89       sort(foo(@x)).
90     * TestingAndDebugging::RequireUseWarnings will not complain about files
91       that contain a "use 5.005" statement or similar for perls prior to 5.6.
92       Lesson of the day: computer conferences where you can meet in the real
93       world can clarify conversations greatly.  Good to finally meet you Adam.
94     * InputOutput::ProhibitTwoArgOpen similarly will not complain if there's
95       a "use/require 5.005" statement in the file.  RT #34385.
96
97     Bug fixes:
98     * Perl::Critic can now critique a file named "0".  However, PPI will give
99       a parse error until the next version comes out.  Fixes RT #36127.
100     * Moved detection of the lack of any enabled Policies from P::C::Config
101       to Perl::Critic.  This was causing the perlcritic.t in Parrot to fail.
102       Note, however, there are plans afoot to change how Perl::Critic is
103       configured and things that depend upon that may break.  Please contact
104       users@perlcritic.tigris.org and tell us how you're using P::C::Config
105       directly so that we can take your needs into account.
106
107 [1.086] Released on 2008-06-12
108
109     Policy Changes:
110     * NamingConventions::ProhibitAmbiguousNames now specifies the name that
111       it had problems with in its violation descriptions.
112
113     Bug fixes:
114     * The color option wasn't being correctly set from a .perlcriticrc.
115       RT #36569.
116
117     Minor changes:
118     * --colour is now a synonym for --color.
119
120 [1.085] Released on 2008-06-07
121
122     New Policies:
123     * Documentation::RequirePackageMatchesPodName
124
125     Policy Changes:
126     * Variables::ProhibitUnusedVariables detects a few more cases.  It's
127       still very limited, though.
128
129     Bug fixes:
130     * ControlStructures::ProhibitUnreachableCode didn't notice "until" was an
131       conditional expression.
132
133     Minor documentation updates.
134
135 [1.084] Released on 2008-05-24
136
137     New Features:
138     * perlcritic now supports a --list-themes option.
139     * You can specify the maximum number of violations you want per Policy
140       per document.  Developers can give a default value for this for a
141       Policy by overriding default_maximum_violations_per_document().
142       See RequireUseStrict and ProhibitMagicNumbers for examples.
143
144     Policy Moved:
145     * The ValuesAndExpressions::ProhibitMagicNumbers policy has been moved
146       from Perl::Critic::More into the primary Perl::Critic distribution.
147
148     New Policies:
149     * Variables::ProhibitUnusedVariables (very dumb, limited initial
150       implementation.)
151     * ControlStructures::ProhibitLabelsWithSpecialBlockNames
152       Contributed by Mike O'Regan.  Kickin' ass, Mike.
153
154     Policy Changes:
155     * ControlStructures::ProhibitUnreachableCode now handles the perl 5.10
156       "//" and "err" operators.  RT #36080
157     * InputOutput::RequireBriefOpen now ignores opens of STDIN, STDOUT,
158       and STDERR.  You're generally trying to make long-lasting global
159       effects when manipulating these.  (RT #35774)
160     * RegularExpressions::ProhibitUnusualDelimiters now supports an
161       "allow_all_brackets" option.
162     * RegularExpressions::RequireBracesForMultiline now supports an
163       "allow_all_brackets" option.
164     * TestingAndDebugging::RequireUseStrict now accepts "use Moose::Role"
165       as equivalent to "use strict".  (RT #34838)
166     * TestingAndDebugging::RequireUseWarnings now accepts "use Moose::Role"
167       as equivalent to "use warnings".  (RT #34838)
168     * ValuesAndExpressions::ProhibitMagicNumbers now accepts constant
169       subroutines.
170     * Variables::ProhibitMatchVars no longer detects "use English;".
171       This problem is detected in a more clear way by
172       Modules::RequireNoMatchVarsWithUseEnglish.
173     * Variables::ProhibitPerl4PackageNames no longer complains about
174       $'/$POSTMATCH.  RT #36059
175     * Variables::RequireLocalizedPunctuationVars now allows the use of "my".
176       RT #33937
177
178     Bug Fixes:
179     * No longer falls over if a single file has a parse error.
180
181     New Developer Features:
182     * If a document specifies a minimum perl version, e.g. "use 5.008003",
183       P::C::Document::highest_explicit_perl_version() will tell you what it
184       is.
185     * The parameter to P::C::Policy::initialize_if_enabled is now a
186       P::C::PolicyConfig object instead of a hash reference.
187
188     Minor Changes:
189     * LOTS of documentation updates.
190     * A few more statistics are emitted by perlcritic with the --statistics
191       option.
192     * perlcritic --profile-proto now includes policy abstracts in its
193       output.
194
195     Prerequisites:
196     * Now depends upon PPI 1.203.
197     * New dependency upon version.
198
199 [1.083_006] Released on 2008-05-20
200 [1.083_005] Released on 2008-05-19
201 [1.083_004] Released on 2008-05-18
202 [1.083_003] Released on 2008-05-17
203 [1.083_002] Released on 2008-05-17
204 [1.083_001] Released on 2008-04-13
205
206     Changes summarized into 1.084 above.  For exact details, see Changes in
207     1.083_006 on BackPAN.
208
209 [1.082] Released on 2008-03-08
210
211     New Features:
212     * A new metadata system for defining policy parameters/options has been
213       added.  This makes the life of policy authors easier because
214       configuration validation and parsing can be taken care of
215       automatically, in most cases.  This allows greater integration with
216       IDEs and allows the perlcritic "--profile-proto" option to produce
217       better output.
218
219       Note: This change does NOT REQUIRE ANY CHANGES to policies outside of
220       this distribution; they should continue to work as is.  However, use
221       of this facility can reduce the size of your code and provide the
222       means for tools to discover more about your policy.  If this change
223       does break any of your policies, please let us know.
224
225       To learn how to take advantage of this facility, read
226       Perl::Critic::DEVELOPER and look at the source of any of the
227       configurable policies included in this distribution.
228
229       There is a discussion of the design considerations for this facility in
230       the source repository under doc/PolicyParameter_Notes.pod.
231
232     * Added support for "criticism-fatal" option in your perlcriticrc
233       file.  This will be used by the criticism pragma to cause execution
234       to abort if the file contains any violations.
235
236     New Policy:
237     * Module::RequireNoMatchVarsWithUseEnglish
238
239     Policy Changes:
240     * Added an allow_last_statement_to_be_comma_separated_in_map_and_grep
241       option to ValuesAndExpressions::ProhibitCommaSeparatedStatements.
242       Partial response to http://rt.cpan.org/Public/Bug/Display.html?id=27654.
243     * ControlStructures::ProhibitPostfixControls gains the ability to have
244       the flow control statements allowed to be modified.  This in response
245       to RT #29540.
246     * TestingAndDebugging::RequireUseStrict now accepts "use Moose" as
247       equivalent to "use strict".
248     * TestingAndDebugging::RequireUseWarnings now accepts "use Moose" as
249       equivalent to "use warnings".
250
251     Bug Fixes:
252     * RT #31281 perlcritic doesn't recognize "#!/bin/env perl" shebang
253     * Replace usage of Unicode property escapes with POSIX character classes
254       order to restore 5.6 compatability.
255     * RT #30388 ValuesAndExpressions::ProhibitVersionStrings complained
256       about numbered directories in "use lib".
257     * Fixed handling of badly behaved spelling programs in PodSpelling.
258
259 [1.081_006] Released on 2008-03-02
260 [1.081_005] Released on 2007-12-29
261 [1.081_004] Released on 2007-12-20
262 [1.081_003] Released on 2007-12-16
263 [1.081_002] Released on 2007-12-16
264 [1.081_001] Released on 2007-12-15
265
266     Changes summarized into 1.082 above.  For exact details, see Changes in
267     1.081_006 on BackPAN.
268
269 [1.080] Released on 2007-11-11
270
271     New Features:
272     * Allow a "## no critic" statement after a shebang on line 1 of a
273       file.  This allows users to block violations that apply to
274       whole files and still allow shebangs.
275
276     New Policies: (funded by a Perl Foundation grant)
277     * InputOutput::ProhibitExplicitStdin
278     * RegularExpressions::ProhibitFixedStringMatches
279     * RegularExpressions::RequireBracesForMultiline
280     * RegularExpressions::ProhibitUnusualDelimiters
281     * RegularExpressions::ProhibitUnusedCapture
282     * RegularExpressions::ProhibitComplexRegexes
283     * RegularExpressions::ProhibitSingleCharAlternation
284     * RegularExpressions::ProhibitEscapedMetacharacters
285     * RegularExpressions::ProhibitEnumeratedClasses
286     * InputOutput::RequireBriefOpen
287     * InputOutput::RequireCheckedSyscalls
288
289     Other New Policies
290     * ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions
291
292     Policy Changes:
293     * Variables::ProhibitConditionalDeclarations now permits you to local-ize
294       variables in conditional declarations.  This makes sense, since
295       C<local> is actually a variable modifier, rather than a declaration.
296       Thanks to David Golden for reporting this.
297
298     New Developer Features:
299     * Perl::Critic::Utils::PPIRegexp encapsulates interaction with
300       the PPI Regexp token classes.  Those classes have very sparse
301       APIs, so this package hides away the ugly fiddling with PPI
302       internals.
303     * Added a new optional_modules parameter for the .run syntax.
304
305     Bug fixes:
306     * PPI::Structure::List can now contain multiple children,
307       so P::C::Utils::parse_arg_list() needs to handle it.
308
309       This was done in the process of fixing
310       http://rt.cpan.org/Ticket/Display.html?id=24924, which was a problem
311       with TestingAndDebugging::RequireTestLabels.
312
313     * ValuesAndExpressions::ProhibitLongChainsOfMethodCalls wasn't resetting
314       chain length when it ran into the end of a sub-expression.
315
316       http://rt.cpan.org/Public/Bug/Display.html?id=30040
317
318     * ValuesAndExpressions::ProhibitCommaSeparatedStatements was reporting
319       false positives when builtins which accept both no and multiple
320       arguments were involved.
321
322       http://rt.cpan.org/Public/Bug/Display.html?id=27654
323
324     Internals:
325     * Removed all use of Carp in favor of exceptions.
326
327     Prerequisites:
328     * Now requires PPI 1.201.  A number of workarounds for PPI bugs have been
329       removed.
330     * New dependency upon Exception::Class.
331
332     Installation:
333     * Use Devel::CheckOS to see whether Perl::Critic is being installed on
334       a Solaris system and warn about tar(1) chopping file names off if it
335       is.
336
337 [1.079_003]  Released on 2007-10-22
338 [1.079_002]  Released on 2007-10-21
339 [1.079_001]  Released on 2007-10-09
340
341     Changes summarized into 1.080 above.  For exact details, see Changes in
342     1.079_003 on BackPAN.
343
344 [1.078]  Released on 2007-09-19
345
346     Restore Perl::Critic::TestUtils::should_skip_author_tests() and
347     get_author_test_skip_message().  Some Perl::Critic add-on distributions
348     are using them.
349
350 [1.077]  Released on 2007-09-15
351
352     Note: if you don't have any problems installing Perl::Critic 1.076, there
353     is no need to upgrade to this version.  There are no functionality
354     changes.  This release only contains changes related to installation that
355     a few people were experiencing.
356
357     Minor changes:
358     * Removed build-time use of Readonly, again, due to problems some people
359       were having when trying to compile the code by hand, rather than using
360       CPAN(PLUS)?.
361     * Don't run author tests if there's a .svn directory present because
362       users who grabbed the code from the source repository were executing
363       them and getting failures.
364     * Don't generate optional, module-hiding test wrappers if author tests
365       are not enabled.
366
367
368 [1.076]  Released on 2007-09-07
369
370     It appears from reports on the 1.075_001 release that the subroutine
371     sigils were indeed the problem.  Release to the general populace.
372
373
374 [1.075_001]  Released on 2007-09-06
375
376     Bug Fixes:
377     Undo the changes in 1.073 and 1.074.  Instead, stop using the subroutine
378     sigil in import and export lists.  It is suspected that the problem lies
379     with Exporter stripping off ampersands.
380
381 [1.074]  Released on 2007-09-04
382
383     Bug Fixes:
384     Repeat the Makefile.PL change on
385     t/generate_without_optional_dependencies_wrappers.PL.
386     I love CPAN Testers.
387
388 [1.073]  Released on 2007-09-04
389
390     Bug Fixes:
391     Work around problems with the combination of Exporter & Readonly in
392     Makefile.PL on some machines.
393
394 [1.072]  Released on 2007-09-03
395
396     Bug Fixes:
397     * The Makefile generated by Makefile.PL was not syntactically correct
398       according to some versions of Solaris.  Thanks to Diab Jerius
399       (DJERIUS) for discovery and testing.
400     * Fixed mis-definition of "quiet" value for the "--profile-strictness"
401       option.
402     * Enhanced testing with the absence of optional modules.
403
404 [1.071]  Released on 2007-08-24
405
406     The "Brown Paper Bag" Release
407
408     Bug Fixes:
409     * Tests would not pass in environments that did not have all optional
410       dependencies installed.
411
412 [1.07]  Released on 2007-08-21
413
414     New Policies: (funded by a Perl Foundation grant)
415     * BuiltinFunctions::ProhibitBooleanGrep
416     * BuiltinFunctions::ProhibitComplexMappings
417     * Documentation::PodSpelling
418     * InputOutput::ProhibitJoinedReadline
419     * Subroutines::ProhibitManyArgs
420     * Subroutines::RequireArgUnpacking
421     * ValuesAndExpressions::ProhibitImplicitNewlines
422     * Variables::RequireLocalizedPunctuationVars
423
424     Other New Policies
425     * Subroutines::ProhibitNestedSubs
426
427     New Features:
428     * The "perlcritic --profile-proto" output now includes the "add_themes"
429       parameter for each policy.
430     * The perlcritic "--strict-profile" option has been replaced with a
431       "--profile-strictness" option.  This new option takes values of "warn"
432       (the default), "fatal", and "quiet", which controls what happens with
433       ignorable problems in a .perlcriticrc file.
434
435     New Developer Features:
436     * Perl::Critic::Policy now has an overridable initialize_if_enabled()
437       method which allows a Policy to perform expensive initialization after
438       it has been determined whether the user has it enabled or not.  Also,
439       this method allows a Policy to say that it should be disabled
440       regardless of what the user says.
441
442       Actually, use of this method is now encouraged over using a
443       constructor.
444
445     Other Stuff:
446     * Now requires the Readonly module in order to be more self-compliant.
447
448 [1.061]  Released on 2007-07-24
449
450     Bug Fixes:
451     * Fix P::C::Theme-- Exporter in Perl 5.6 does not export import(), so you
452       must subclass it.  *sigh*
453     * Fix P::C::Config::_validate_and_save_theme()-- eval of an empty string
454       does not reset $@/$EVAL_ERROR in Perl 5.6.
455
456     Big thanks to Anirvan Chatterjee for identifying and helping debug these
457     issues.
458
459 [1.06]  Released on 2007-06-27
460
461     New Features:
462     * perlcritic now emits errors for all the problems it can find for the
463       global options in the command-line parameters and .perlcriticrc file,
464       rather than bailing on the first one it encounters.
465
466     * perlcritic now has a "--strict-profile" option which will make warnings
467       about problems in a profile fatal.
468
469     * perlcritic now has a "--statistics-only" option which suppresses the
470       display of individual violations and only shows the additional output
471       produced by the "--statistics" option.
472
473     Feature requests:
474     * A value for "color" can now be specified in a .perlcriticrc.
475       http://rt.cpan.org/Ticket/Display.html?id=24877
476
477     New Policies:
478     * ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters
479       As suggested in http://rt.cpan.org/Ticket/Display.html?id=23290.
480     * ValuesAndExpressions::ProhibitLongChainsOfMethodCalls
481     * Modules::ProhibitExcessMainComplexity
482       As suggested in http://rt.cpan.org/Ticket/Display.html?id=24699
483
484     Minor changes:
485     * The perlcritic "--profile-proto" option now emits the short names for
486       policies, rather than the full ones.
487
488     * The "-profileproto" and "-singlepolicy" options have been renamed to
489       "-profile-proto" and "-single-policy" in order to make the growing
490       number of command-line options comprehensible.  The change of
491       "singlepolicy" also affects your F<.perlcriticrc> file.
492
493 [1.053]  Released on 2007-06-02
494
495     *DEVELOPMENT RELEASE*
496
497     Bug Fixes:
498     Fixed bug in 15_statustics.t test script, which caused the build
499     to fail on machines that don't have Perl::Tidy installed.
500
501 [1.052]  Released on 2007-06-01
502
503     *DEVELOPMENT RELEASE*
504
505     New Features:
506     * perlcritic now emits a summary about the scanned code when enabled by
507       the "-statistics" option.
508
509     Policy Enhancements:
510     * InputOutput::ProhibitBacktickOperators can now be configured to only
511       check in void contexts.
512
513     Bug Fixes:
514     * 27073: False positive in RequireUpperCaseHeredocTerminator
515     * 27065: CodeLayout::ProhibitTrailingWhitespace breaks under Perl 5.6.1
516     * 26462: ControlStructures::ProhibitCascadingIfElse pod typo
517     * ValuesAndExpressions::ProhibitCommaSeparatedStatements was complaining
518       about multiple values in the list to be iterated over by a foreach loop.
519     * Corrected PBP page numbers for some policies (Quinn Weaver).
520
521 [1.051]  Released on 2007-04-12
522
523     *DEVELOPMENT RELEASE*
524
525     No new policies.
526     No particular bug fixes.
527
528     Internals:
529     * Added several new utility functions to support the StricterSubs distro.
530       Also, some of the existing functions in Perl-Critic-Utils have
531       changed in ways that might break your custom policies.
532
533     Miscellanea:
534     * Updated Emacs plugin (Courtesy Josh ben Jore).
535       See extras/perlcritic.el for details.
536     * Added copy of BBEdit plugin (Courtesy of Josh Clark).
537       See extras/perl_critic_for_bbedit-1_0.zip for details
538
539 [1.05]  Released on 2007-03-19
540
541     Bug Fixes:
542     * 25557: t/20_policy_prohibittrailingwhitespace.t fails on Perl 5.8.0
543
544 [1.04]  Released on 2007-03-18
545
546     Bug Fixes:
547     * 25008: Subroutines::RequireFinalReturn should allow "throw"
548     * 25085: False Positive - Heredoc terminator must be quoted
549     * 18423: VERSION check does not notice Readonly::Scalar version
550     * 25449: Proposal of $VERSION declaration (DUPLICATE)
551
552     New Policies:
553     * CodeLayout::ProhibitTrailingWhitespace
554     * ValuesAndExpressions::ProhibitCommaSeparatedStatements
555     * Variables::ProhibitPerl4PackageNames
556
557     Policy Enhancements:
558     * Subroutines::RequireFinalReturn can now be configured to recognize
559       your custom functions that behave like "die" or "exit".
560     * Documentation::RequirePodSections can be configured to match
561       Module::Starter:PBP or to really match the PBP book.
562
563 [1.03]  Released on 2007-02-13
564
565     Bug Fixes:
566     * Fixed a few more problems with the %f, %F, and %r format escapes.
567     * I forgot to put Conway's perlcriticrc file in the MANIFEST. Sorry.
568
569     Interface Changes:
570     * Perl::Critic::Utils automatically exports everything.  However,
571       this is deprecated.  In the future, you must request your exports.
572
573     Policy Changes:
574     * Duplicate violations of RequireExcplicitPackage are now squelched,
575       in the same way as RequireUseStrict and RequireUseWarnings.
576
577 [1.02]  Released on 2007-02-11
578
579     Bug Fixes:
580     * "undef" incorrectly triggered ProhibitMutatingListFunctions.
581     * 24876: %f and %F escapes not working in custom "verbose" format strings.
582     * 24875: Documentation bug in TestingAndDebugging::ProhibitNoStrict
583
584     New Policies:
585     * InputOutput::RequireCheckedOpen
586     * InputOutput::RequireCheckedClose
587
588     Other Cool Stuff:
589     * Added Conway's own suggested Perl::Critic configuration as
590       examples/perlcriticrc-conway.
591
592     * See the examples/ directory for some neat demonstrations of using
593       the Perl::Critic API. Contributed by Elliot Shank.
594
595     Interface Changes:
596     * Perl::Critic::Utils no longer exports anything by default.  Policies
597       outside the distribution will need to specify what exactly they need
598       from this module.  There are a number of tags that can be used in
599       addition to individual imports.
600
601 [1.01]  Released on 2007-01-24
602
603     PRODUCTION RELEASE:  You may now consider the public Perl::Critic
604     API as "stable."  Future minor releases will focus on bug fixes,
605     new policies, and internal refactoring.
606
607     Bug Fixes:
608     * Fixed memory leak.  This was reported by the Parrot team at
609       http://rt.perl.org/rt3/Ticket/Display.html?id=41230
610
611 [0.23]  Released on 2007-01-19
612
613     Bug Fixes:
614     * 23994: Test 56 in t/05_utils.t of Perl::Critic v0.22 fails
615     * 24005: test 95 in t/13_bundled_policies fails in 0.22
616
617
618     Groovy New Features:
619     * Added '%F' to the Violation format specifications.  This will
620       give you just the name of file where the violation occurred
621       (i.e. without the path).
622
623     * Improved validation of .perlcriticrc file.  An invalid
624       default setting will now cause a fatal exception. A
625       strange-looking policy name will cause a warning.
626
627
628     Interface Changes:
629     * The syntax for theme expressions has changed.  Instead of using
630       mathematical operators qw(+ * -) you must now use the logical
631       operators qw(|| && !).  See the Perl::Critic docs for more info.
632
633     * The @GLOBALS and @BUILTINS variables are no longer exported by
634       Perl::Critic::Utils.  Use the is_perl_global() and is_perl_builtin()
635       functions instead.
636
637     * Perl::Critic::Policy::policy_parameters() has bee renamed to
638       Perl::Critic::Policy::supported_paramters().  This was an
639       undocumented feature anyway, so it shouldn't affect anyone.
640
641
642     Other Internal Changes:
643     * Perl::Critic now requires B::Keywords v1.05 or newer.
644
645     * A few internal classes have been refactored.  As a result,
646       Set::Scalar is no longer a required dependency.
647
648
649 [0.22]  Released on 2006-12-15
650
651     New Features:
652     * Introduced named severity levels: gentle, stern, harsh, cruel, brutal
653       You can use these named levels instead of the numeric ones.
654       For example: "perlcritic --severity=cruel MyModule.pm"
655       Or just:     "perlcritic --cruel MyModule.pm"
656
657     * For perlcritic, the "-List" option has been renamed to
658       "-profileproto".  The output now includes the names of the
659       parameters that each Policy supports, if any.
660
661     * Improved validation of Policy parameters in your F<.perlcriticrc>
662       Any invalid parameter now causes a fatal exception.
663
664     Major Changes:
665     * Reassigned themes for most policies.  Now there are fewer
666       themes and they are organized around programming concepts
667       instead of severity levels.  If you have assigned your own
668       themes to any Policies, they should still work as expected.
669
670     Policy Changes:
671     * ErrorHandling::RequireCarping will not complain if it can figure
672       out that the die or warn message will always end in a newline
673       ("\n").  The idea is that, if you put the newline there, you
674       don't indend for there to be any file/line/stack information
675       emitted, in which case you really don't want carp/croak.
676
677       You can restore the old strict behavior by giving the policy
678       a false value for "allow_messages_ending_with_newlines" in your
679       configuration.
680
681     Misc Changes:
682
683     Added single-letter uppercase alternatives for some perlcritic options.
684
685 [0.21_01] Released on 2006-12-03
686
687     New Policies:
688     * TestingAndDebugging::ProhibitProlongedStrictureOverride
689     * ControlStructures::ProhibitMutatingListFunctions
690
691     New Features:
692     * Say "perlcritic -List" to get an expanded listing of all Policies.
693       The format is suitable for use as your .perlcriticrc file.
694     * Say "perlcritic -doc PATTERN" to get the documentation for all
695       Policies that match m/PATTERN/imx.  This is a little easier than
696       typing in the full name of the Policy module with "perldoc".
697     * Say "perlcritic --singlepolicy PATTERN" to use one and only one
698       policy.
699     * Can now specify exceptions to Variables::ProhibitPackageVars,
700       for packages like File::Find that only interface through
701       package variables.
702
703     Bug Fixes:
704     * 21713 false positive for parens used with substr and unpack.
705     * 22890 allow Rcs keywords in POD.
706
707     Internals:
708     * Testing system overhauled.  Details on the Policy/subtest
709       framework is in t/run.t.
710     * Added Perl::Critic::Utils::words_from_string.  This is safer
711       than plain old C<split /\s+/>.
712
713 [0.21]  Released on 2006-11-05
714
715     New Policies:
716     * BuiltinFunctions::ProhibitReverseSortBlock
717     * BuiltinFunctions::ProhibitVoidGrep
718     * BuiltinFunctions::ProhibitVoidMap
719     * CodeLayout::RequireConsistentNewlines
720     * Modules::RequireFilenameMatchesPackage
721     * TestingAndDebugging::RequireTestLabels
722     * ValuesAndExpressions::ProhibitMismatchedOperators
723
724     New Features:
725     * Introduced policy "themes."  Themes are arbitrary names that can
726       be used to identify a group of related Policies.  You can select
727       your favorite policies by combining themes in a mathematic expression
728       such as "pbp * (danger + risky)".  See POD for details.
729     * perlcritic output is colorized if you have Term::ANSIColor.  This
730       only works on non-Win32 platforms.  Use -nocolor switch to disable.
731     * Say "perlcritic -count" to get just the the total number of
732       violations per file.  Use this feature to quickly identify hot-spots.
733     * Use the -only switch to choose only from policies mentioned in your
734       .perlcriticrc file.  This is useful if you usually only want to
735       work with a small subset of the policies.
736     * Default values for most of the perlcritic and Perl::Critic options
737       can now be defined in your .perlcriticrc file.  See POD for details.
738
739     Bug Fixes:
740     * 21236: wrong page number for "printing to filehandles"
741     * 21916: File handle ... wrong page reference in PBP [DUPE]
742     * 21714: false positive for capture var used in ternary condition
743     * 21718: No skip for File::Slurp in includes.t
744     * ProhibitBarewordFilehandles doesn't complain if you open
745       STDIN, STDOUT or STDERR.
746     * Parrot 40564: Subroutines::RequireFinalReturn should allow die,
747       exit, etc.
748     * Each "for" and "foreach" loop now adds one point to the McCabe
749       complexity score.
750
751     Other Stuff:
752     * The internals of Perl::Critic have been significantly refactored,
753       but should still be compatible with existing third-party Policies.
754     * Added author-only tests to the release, but disabled by default
755     * New Perl::Critic::Utils::shebang_line() method
756     * Support for filename-based policies
757     * Additional prerequisite: Set::Scalar
758     * Now requires PPI version 1.118
759
760 [0.20]  Released on 2006-09-10
761
762     Perl::Critic now requires PPI version 1.117, which fixes
763     several bugs that were introduced in version 1.116.
764
765     Bug Fixes:
766     * 21079: grep clears @SITE_POLICIES
767     * 21352: Test failures with PPI 1.117
768     * 11365: sub DESTROY detected as a builtin homonym
769
770 [0.19]  Released on 2006-08-20
771
772     New Policies:
773     * BuiltinFunctions::ProhibitStringySplit
774     * ControlStructures::ProhibitDeepNests
775     * RegularExpressions::ProhibitCaptureWithoutTest
776     * Variables::RequireLexicalLoopIterator
777
778     New Features:
779     * "perlcritic -quiet" suppresses the "source OK" message.
780     * Variables::ProhibitPunctuationVars is now configurable.
781
782     Bug Fixes:
783     * 20965: "Hard tabs used at" shouldn't check __DATA__
784     * 21070: ProhibitNoisyQuotes hates overload
785     * Punctuation variables are now exempt from ProhibitLocalVars
786
787     Other Stuff:
788     * Test coverage is now over 95%
789
790 [0.18_01]  Released on 2006-08-06
791
792     New Policies:
793     * Variables::RequireNegativeIndices
794     * InputOutput::ProhibitInteractiveTest
795     * ErrorHandling::RequireCarping
796
797     Bug Fixes:
798     * RequireTidyCode tests fail if user has custom .perltidyrc file
799     * 20612: RequirePerlTidy was ignoring HEREDOCs
800     * 20659: __END__ statement considered "unreachable"
801     * Fix for PPI::XS (no C<use overload '""'> support)
802     * Support for 'goto' in ProhibitAmpersandSigils and
803       Subroutines::RequireFinalReturn
804
805     Performance Enhancements:
806     * Introduced Perl::Critic::Document class.  This is a facade for
807       PPI::Document which internally caches search results.  This
808       reduces the running time by about 35%.  The facade should be
809       invisible, unless you are doing something really sneaky.
810     * Extraction of the 'diagnostics' information is postponed
811       until it is really needed.  Speedup has not been measured.
812     * Calls to helper-subs have been reordered for maximum efficiency.
813
814     Other Cool Stuff:
815     * Includes updated version of perlcritic mode for emacs.  See
816       "extras/perlcritic.el" for details.
817
818 [0.18]  Released on 2006-07-16
819
820     Bug Fixes:
821     * 14855: Home discovery is dangerously naive.
822     * 20060: Incorrect page numbers in ProhibitLeadingZeros
823       and RequireNumberSeparator policies.
824     * 20068: .perlrc file - inconsistent documentation
825     * 20254: "use vars qw(@EXPORT_OK)" not recognized
826     * 20463: No-case heredoc terminator incorrectly detected as lower case.
827     * ProhibitOneArgBless doesn't understand "bless {} => $class;"
828     * ProhibitExcessComplexity doesn't count 'while' and 'until' stmnts
829     * ProhibitLeadingZeros was falsely hits '.0456'
830
831     Enhancements:
832     * If File::HomeDir is available, we use it to locate the
833       .perlcriticrc file.  This should help make Perl::Critic
834       more portable to Win32 platforms.  If File::HomeDir is
835       not installed, we resort to looking at the usual
836       environment variables.
837
838     Other Stuff:
839     * Added "perlcritic.el", which is a super-cool emacs minor-mode
840       that runs perl-critic on the current buffer and returns the
841       results in a sexy hot-linked "compiler" window.  You can run
842       it on demand, or have it run automatically every time you
843       save the buffer.  You can find this in the extras/ directory.
844       Thanks to Josh ben Jore for contributing this.
845
846     * Moved "Perl::Critic::TestUtils" into the installed build.  This
847       module is only used for unit-testing Perl::Critic, but we
848       are putting it in the installation so folks who want to
849       extend Perl::Critic can make use of it.
850
851 [0.17]  Released on 2006-06-13
852
853     Bug Fixes:
854     * 19836: Perl-Critic0.16 fails tests during install.  This was
855       caused by a bug in version 3.01 of Module::Pluggable.  See
856       http://rt.cpan.org/Ticket/Display.html?id=19857 for details.
857     * Fixed bug in no-critic pragma parser.
858
859     New Policies:
860     * ValuesAndExpressions::ProhibitEscapedCharacters
861     * BuiltinFunctions::RequireSimpleSortBlock
862
863     Enhancements:
864     * Perl::Critic can export critique() as a static function.  This
865       may appeal to folks who dislike the object-oriented interface.
866
867 [0.16]  Released on 2006-05-14
868
869     Enhancements:
870     * Perl::Critic->critique() now accepts a PPI::Document as the
871       argument.  This feature creates an additional dependency on
872       Scalar::Util, but that shouldn't be a problem because it is
873       included with List::Util, which we already use.
874
875     Miscellanea:
876     * Increased PPI dependency from v1.110 to v1.112
877
878 [0.15_03] Released on 2006-05-07
879
880     Bug Fixes:
881     * The "## no critic" feature is now implemented without eval-ing
882       the code.  This keeps Perl::Critic pure and safe :)
883     * 19082: Page number for AUTOLOAD is incorrect
884
885     New Policies:
886     * ControlStructures::ProhibitUnreachableCode (by Peter Guzis)
887     * Modules::ProhibitAutomaticExportation
888     * ValuesAndExpressions::ProhibitVersionStrings
889
890 [0.15_02] Released on 2006-04-26
891
892     Bug Fixes:
893     * Reimplemented the '##no critic' pragmas to have effect on the
894       line where the violation is reported, not on the line where
895       the candidate element lives.  This is because some policies
896       may report violations that are nowhere near the element that
897       is being evaluated.
898     * RequireUseStrict, RequireUseWarnings, and RequireExplcitPackage
899       all emit violations for _every_ statement that violates the
900       Policy.  This closes a loophole that allowed you to circumvent
901       the Policy by using '## no critic' on just the first statement
902       that violated the policy.
903     * Fixed the workaround for the magic shebang that is inserted
904       by EU::MM and M::B.  This had stopped working around version 13.
905     * Fixed -noprofile option on 'perlcritic'.  This also had stopped
906       working at some point.
907
908 [0.15_01] Released on 2006-04-16
909
910     Enhancements:
911     * Added diagnostic messages if the .perlcriticrc contains entries
912       for Policy modules that don't seem to exist.
913     * Now you can specify which policies to disable with the
914       "## no critic" pseudo-pragmas.  This feature is still
915       experimental.  See docs for details.
916     * perlcritic's directory searching now skips backup files, such
917       as *.swp, *.bak and *~.  It also ignores version control system
918       directories, and the blib directory in module build directories.
919
920     Bug Fixes:
921     * 18386: Bad example in POD for Documentation::RequirePodSections
922     * 18670: Test failure if Perl::Tidy is not installed
923     * 18698: Policy idea ProhibitUniversalFunctions (see New Policies)
924     * RequireInterpolationOfMetachars falsely hit strings like 'foo=s@'
925       which are commonly used with Getopt::Long.
926
927     New Policies:
928     * BuiltinFunctions::ProhibitUniversalCan (by Chris Dolan)
929     * BuiltinFunctions::ProhibitUniversalIsa (by Chris Dolan)
930
931     Miscellanea:
932     * All spurrious options for `perlcritic` are now fatal.
933     * Changed several of the -verbose formats to be more readable.
934     * Explicit -severity option now overrides -[12345] shortcuts instead
935       of being the other way around.
936
937
938
939 [0.15] Released on 2006-03-26
940
941     Bug Fixes:
942     * 17964: Insists my code is not tidy (may not be fixed for all cases)
943
944 [0.14_02] Released on 2006-03-19
945
946     Bug Fixes:
947     * 15653: False positive in OneArgSelect (fixed for real this time)
948
949     New Policies:
950     * ClassHierarchies::ProhibitAutoloading
951     * Documentation::RequirePodSections
952     * InputOutput::RequireBracedFileHandleWithPrint
953     * ValuesAndExpressions::ProhibitMixedBooleanOperators
954     * Variables::RequireInitializationForLocalVars
955
956 [0.14_01] Released on 2006-03-05
957
958     Bug Fixes:
959     * 14731: False positive: Builtin function called with parens
960     * 17554: False positive in CodeLayout::RequireTrailingCommas
961
962     New Policies:
963     * ClassHierarchies::ProhibitExplicitISA
964     * InputOutput::ProhibitReadlineInForLoop
965     * Miscellanea::ProhibitFormats
966     * Miscellanea::ProhibitTies
967     * Variables::ProhibitConditionalDeclarations
968
969 [0.14] Released on 2006-01-29
970
971     More documentation edits.
972
973     New Policies:
974     * Documentation::RequirePodAtEnd
975     * Subroutines::ProtectPrivateSubs
976     * Variables::ProhibitMatchVars
977     * Variables::ProtectPrivateVars
978
979     Bug Fixes:
980     * 15295: "## no critic" pragmas too aggresive on compound statements.
981     * t/01_config.t failed in the presence of third-party policies
982
983 [0.13_05] Not released
984
985     More documentation edits.
986
987     Implemented workaround for failing pod_coverage tests.
988
989     Bug Fixes:
990     * 16906:  tr/// created false-postives with RegularExpression polices.
991
992 [0.13_04] Released on 2005-12-31
993
994     Moved DEVELOPER.pod file into the Perl/Critic dir.
995
996     More documentation edits.
997
998 [0.13_03] Released on 20051230
999
1000     perlcritic now prints 'source OK' if it doesn't find any
1001     violations.  This gives folks a warm fuzzy feeling.
1002
1003     Tweaked some test cases that were failing on my Solaris
1004     environment at work.
1005
1006 [0.13_02] Released on 2005-12-29
1007
1008     Fixed Config to recognize fully-qualified module names in the
1009     .perlcriticrc file.
1010
1011     Various documentation edits.
1012
1013 [0.13_01] Released on 2005-12-28
1014
1015     Replaced 'priority' concept with 'severity'.  Now each Policy module
1016     has a predefined severity level ranging from 1 to 5.  By default,
1017     perlcritic only reports the most severe violations.  You can adjust
1018     the severity threshold at the command line, and you can change
1019     the severity for any Policy using the config file.
1020
1021     Chris implemented the applies_to() mechanism, which allows each Policy
1022     class to declare the types of PPI elements that it wants to examine.
1023     When traversing the document, Perl::Critic invokes the Policy only
1024     for elements that are of the correct type.  This improves performance
1025     by about 33%.
1026
1027     Perl::Critic now uses a Plugin architecture to automatically
1028     discover Policy modules.  So if you have custom Policies, all you
1029     have to do is install them in the Perl::Critic::Policy namespace --
1030     no need to add anything to your .perlcriticrc file.  If you write
1031     policies in a different namespace, you can configure that too.  See
1032     the Perl::Critic::Config docs for details.
1033
1034     New Policies:
1035     * Modules::RequireEndWithOne
1036     * NamingConventions::ProhibitAmbiguousNames
1037     * References::ProhibitDoubleSigils
1038     * Subroutines::RequireFinalReturn
1039     * Subroutines::ProhibitAmpersandSigils
1040     * Subroutines::ProhibitExcessComplexity
1041     * TestingAndDebugging::ProhibitNoStrict
1042     * TestingAndDebugging::ProhibitNoWarnings
1043
1044     Bug Fixes:
1045     * 15101: Plugin architecture improves support for 3rd-party code
1046     * 16319: Fixed incorrect PBP page number in ProhibitBarwordFilehandle
1047     * 16321: Lists of empty quotes are now allowed by ProhibitQuotedWordLists
1048     * 16288: Empty lists caused a fatal error RequireTrailingCommas
1049     * 15653: Fixed false positive in OneArgSelect.
1050
1051 [0.13] Released on 2005-10-31
1052
1053     Official release of 0.12_03.  No code major changes.
1054
1055 [0.12_03] Not released
1056
1057     Renamed -Policy option to -include.  Added -exclude to give the
1058     opposite effect.
1059
1060     Refactored constructor of Perl::Critic.  Now, most of the work
1061     is delegated to Perl::Critic::Config.  I'm not sure I like how
1062     this turned out, but we'll see how it goes.
1063
1064     Renamed some Policy modules to be a bit more comprehensible.  Note
1065     that you may need to change your .perlcriticrc file accordingly.
1066     I also suggest removing your current Perl::Critic installation
1067     before installing this one.
1068
1069     Name Changes:
1070     * ProhibitUnpackagedCode => RequireExplicitPackage
1071     * RequireQuotedWords     => ProhibitQuotedWordLists
1072
1073     Improved error message when Perl::Critic dies because PPI can't
1074     parsee the input code.
1075
1076     Changed output of -help to be more terse.
1077
1078     Edited POD.
1079
1080 [0.12_02] Not released
1081
1082     Added -Policy option to perlcritic.  The idea is to provide a
1083     compact interface for selecting Policy modules at the command-line.
1084     This feature is experimental and subject to change.
1085
1086     Added a warning message if -verbose value looks strange.  In most
1087     applications, the -verbose option does not require a value, so people
1088     might be puzzled when they write 'perlcritic -verbose my_file.pm' and
1089     nothing seems to happen.
1090
1091     Command-line options to perlcritic are now case-sensitive.  This
1092     makes it easier to abbreviate options that start with the same letters
1093     (e.g. 'Version' and 'verbose')
1094
1095     Fixed the new Policy modules that were misnamed and misplaced in the
1096     previous distribution.
1097
1098 [0.12_01] Not released
1099
1100     Rewrote some of the ControlStructures and BuiltinFunction
1101     policies to be simpler (and probably a little faster).
1102
1103     Edited POD.  Fixed some typos.  Added PREREQUISITES section
1104     to Perl::Critic documentation.
1105
1106     Fixed the -verbose FORMAT option so that you can put metachars
1107     in the FORMAT specification.  If using perlcritic, be careful to
1108     protect them from getting munged by the shell first.
1109
1110     Replaced ProhibitRequireStatements with RequireBarewordIncludes
1111     module. Courtesy of Chris Dolan <cdolan@cpan.org>
1112
1113     Added configuration to ProhibitInterpolationOfLiterals so that
1114     certain flavors of quotes can be exempt.  This is for folks who
1115     have configured their editor to use special syntax highlighting
1116     for certain kinds of strings (SQL, for example).
1117
1118     perlcritic now accepts multiple file arguments, so now you can
1119     critique your entire distribution in one shot.  As a result, the
1120     output-formats have changed slightly.
1121
1122     New Policy modules:
1123     * BuiltinFunctions::ProhibitLvalueSubstr
1124     * BuiltinFunctions::ProhibitSleepViaSelect
1125     * ClassHierarchies::ProhibitOneArgBless
1126     * CodeLayout::RequireTrailingCommas
1127     * CodeLayout::RequireQuotedWordLists
1128     * InputOutput::ProhibitTwoArgOpen
1129     * InputOutput::ProhibitOneArgSelect
1130     * InputOutput::ProhibitBarewordFileHandles
1131     * Miscellanea::RequireRcsKeywords
1132     * Modules::RequireVersionVar
1133     * RegularExpressions::RequireExtendedFormatting
1134     * RegularExpressions::RequireLineBoundaryMatching
1135
1136
1137     Bug fixes:
1138     14923: 'require' is now permitted. See RequireBarewordIncludes.
1139     15022: Fixed false-positives when keywords are used as hash keys.
1140     15023: Fixed spurious Violations by removing magic shebang.
1141     15031: Fixed spelling mistakes (and probably added some new ones).
1142     15233: Postfix 'if' is now allowed with 'die', 'croak', etc.
1143
1144 [0.12] Released 2005-10-10
1145
1146     Redesigned the 'verbose' feature.  Now the output format
1147     can be user-defined using a sprintf-like specification.
1148     perlciritc also has a predefined output format that is
1149     compatible with grep mode in editors like vim and emacs.
1150
1151     'return' is now exempt from ProhibitParensWithBuiltins.  I may
1152     extend this exemption to all unary functions.
1153
1154     Edited POD. Added a super brief description of each policy
1155     in the main Perl::Critic documentation.  Added details about
1156     editor integration.
1157
1158     Additional Prerequisites:
1159     * String::Format
1160
1161 [0.11] Not released
1162
1163     The internal dynamics and API of Perl::Critic have changed
1164     considerably.  The result is a 300% increase in performance.
1165     See the POD in Perl::Critic::Policy for details.
1166
1167     New Features:
1168     * Added -verbose option to put more stuff in the output.  In the
1169       extreme, you can get the POD from Policy attached to each
1170       and every violation.
1171
1172     Additional Prerequisites:
1173     * IO::String
1174     * Pod::PlainText
1175
1176 [0.10] Released 2005-10-05
1177
1178     Fixed stupid bug in newest Policy modules.  They were returning
1179     PPI objects instead of Perl::Critic::Violation objects.  Doh!
1180
1181     Fixed test scripts to prevent failures if the user already has a
1182     .perlcriticrc file.
1183
1184     'ProhibitHardTabs' now allows leading tabs by default.
1185
1186     Put the Changes file in reverse-chronological order, so the most
1187     recent stuff is easy to find at the top of the file
1188
1189 [0.09] Released 2005-10-04
1190
1191     Fixed several bugs:
1192     * 14810: Now you are allowed to create your own 'import' function,
1193              since this is frequently done with fancy modules.
1194     * 14817: Parens, brackets, and braces are now excluded from
1195              'ProhibitNoisyQuotes' since they look better in quotes anyway.
1196     * 14787: $1..$9 and '_' are exempt from ProhibitPunctuationVars
1197     * 14899: Object methods with the same name as a built-in can
1198              be called with parens (ProhibitParensWithBuiltins).
1199     * 14901: Normalized the exit status of perlcritic to 0, 1, or 2.
1200              See documentation for explanation.
1201     * 14855: Partially fixed home directory discovery.  Still not
1202              completely portable, but at least doesn't create warnings.
1203
1204     New features:
1205     * 14734: Limit for number separators is now configurable
1206
1207     New Policy modules:
1208     * CodeLayout::ProhibitHardTabs
1209     * ControlStructures::ProhibitUnlessBlocks
1210     * ControlStructures::ProhibitUntilBlocks
1211     * ControlStructures::ProhibitCStyleForLoops
1212
1213     Changed the syntax for the magic comments.  Adam had the
1214     idea of using a pragma-like notation.  I liked it.
1215
1216 [0.08_2] Released 2005-09-27
1217
1218     Fixed problems with Perl::Critic::Config that caused File::Spec
1219     to emit 'uninitialized value' warnings during the build.
1220
1221     Added 1 Policy module contributed by Graham TerMarsch
1222
1223     Switched from File::Spec::Functions to plain File::Spec because
1224     I think its usage is more common.
1225
1226     Removed 'FindBin' from the test files so I can be sure that the
1227     right libraries are getting loaded.  This means I'll have to
1228     use the -l option with C<prove>.
1229
1230     Edited more POD.
1231
1232 [0.08_01] Not released
1233
1234     Fixed "ProhibitParensWithBuiltins" to allow parens to be used with
1235     object method calls that have the same name as a builtin functions.
1236
1237     Introduced magical comments that allow developers to configure
1238     Perl::Critic on-the-fly from within their code.
1239
1240     Added META.yml files and POD tests to the build.  I did this
1241     mostly just to boost the Kwalitee score on CPANTS.
1242
1243     Switched from "Config::Std" to "Config::Tiny" because it doesn't
1244     require those fancy Damian modules that don't seem to work on
1245     some older versions of Perl.
1246
1247 [0.07] Released on 2005-09-21
1248
1249     Fixed bugs in the ProhibitCascadingIfElse policy.
1250
1251     Added ProhibitExplicitReturnUndef policy
1252
1253     Made ProhibitUnpackagedCode configurable so you can exempt scripts,
1254     which typically don't have an explicit 'package' statement.
1255
1256     ProhibitPackageVars policy now exempts vars in ALL_CAPS.  This
1257     is to permit common package variables like @EXPORT and $VERSION.
1258
1259     Renamed "ProhibitStringyGrep and "ProhibitStringyMap" because
1260     the so-called string form doesn't really exist.  Now called
1261     "RequireBlockGrep" and "RequireBlockMap"
1262
1263     Corrected documentation on defining Policy names within the
1264     configuration file.  This still isn't very clear and needs
1265     to be rewritten.
1266
1267     Perl::Critic now requires PPI version 1.003, which has a few bug
1268     fixes of its own.
1269
1270     Rewrite some code just to make Perl::Critic more self-compliant.
1271
1272     Added test cases to verify the configuration functionality.  These
1273     are not completely thorough and need more work.
1274
1275 [0.06] Released on 2005-09-17
1276
1277     Now called 'Perl::Critic'.
1278
1279     Added 4 new policy modules.
1280
1281     Fixed bugs in build process.
1282
1283     Added support for Module::Build.
1284
1285 [0.05] Released on 2005-09-17
1286
1287     End of 'Perl::Review' releases.  I have changed the name to
1288     'Perl::Critic' to avoid possible confusion with "The Perl Review"
1289     magazine.
1290
1291 [0.04] Released on 2005-09-14
1292
1293     Version 0.03 was a bust because I uploaded the wrong tarball to PAUSE.
1294
1295 [0.03] Released on 2005-09-13.
1296
1297     Fixed some POD links.
1298
1299     Removed test cases for missing policy module.
1300
1301 [0.02] Released on 2005-09-13.
1302
1303     Major overhaul based on feedback from Perl community.
1304
1305     Factored coding standards into separate modules (known as
1306     Policies).  The idea here is to allow other developers to easily
1307     contribute additional coding standards.
1308
1309     Reworked Perl::Review into a simple engine for loading and running
1310     Policy modules.
1311
1312     Gave perlreview a command-line interface and configuration file
1313     for selecting which Policy modules to use.
1314
1315 [0.01] Released on 2005-08-16.
1316
1317     Initial version.
1318
1319 ##############################################################################
1320 #      $URL$
1321 #     $Date$
1322 #   $Author$
1323 # $Revision$
1324 ##############################################################################
1325
1326 # ex: set ts=8 sts=4 sw=4 tw=78 ft= expandtab shiftround :