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