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