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