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