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