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