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