Login
Decided to release to CPAN now
[gknop/Perl-Critic.git] / Changes
1 ##############################################################################
2 #      $URL$
3 #     $Date$
4 #   $Author$
5 # $Revision$
6 ##############################################################################
7
8 [1.051]  Released on 2007-04-12
9
10      *DEVELOPMENT RELEASE*
11
12      No new policies.
13      No particular bug fixes.
14
15      Internals:
16      * Added several new utility functions to support the StricterSubs distro.
17        Also, some of the existing functions in Perl-Critic-Utils have
18        changed in ways that might break your custom policies.
19
20      Miscellanea:
21      * Updated Emacs plugin (Courtesy Josh ben Jore).
22        See extras/perlcritic.el for details.
23      * Added copy of BBEdit plugin (Courtesy of Josh Clark).
24        See extras/perl_critic_for_bbedit-1_0.zip for details
25
26 [1.05]  Released on 2007-03-19
27
28      Bug Fixes:
29      * 25557: t/20_policy_prohibittrailingwhitespace.t fails on Perl 5.8.0
30
31 [1.04]  Released on 2007-03-18
32
33      Bug Fixes:
34      * 25008: Subroutines::RequireFinalReturn should allow "throw"
35      * 25085: False Positive - Heredoc terminator must be quoted
36      * 18423: VERSION check does not notice Readonly::Scalar version 
37      * 25449: Proposal of $VERSION declaration (DUPLICATE)
38
39      New Policies:
40      * CodeLayout::ProhibitTrailingWhitespace
41      * ValuesAndExpressions::ProhibitCommaSeparatedStatements
42      * Variables::ProhibitPerl4PackageNames
43
44      Policy Enhancements:
45      * Subroutines::RequireFinalReturn can now be configured to recognize
46        your custom functions that behave like "die" or "exit".
47      * Documentation::RequirePodSections can be configured to match
48        Module::Starter:PBP or to really match the PBP book.
49
50 [1.03]  Released on 2007-02-13
51
52      Bug Fixes:
53      * Fixed a few more problems with the %f, %F, and %r format escapes.
54      * I forgot to put Conway's perlcriticrc file in the MANIFEST. Sorry.
55
56      Interface Changes:
57      * Perl::Critic::Utils automatically exports everything.  However,
58        this is deprecated.  In the future, you must request your exports.
59
60      Policy Changes:
61      * Duplicate violations of RequireExcplicitPackage are now squelched,
62        in the same way as RequireUseStrict and RequireUseWarnings.
63
64 [1.02]  Released on 2007-02-11
65
66      Bug Fixes:
67      * "undef" incorrectly triggered ProhibitMutatingListFunctions.
68      * 24876: %f and %F escapes not working in custom "verbose" format strings.
69      * 24875: Documentation bug in TestingAndDebugging::ProhibitNoStrict
70
71      New Policies:
72      * InputOutput::RequireCheckedOpen
73      * InputOutput::RequireCheckedClose
74
75      Other Cool Stuff:
76      * Added Conway's own suggested Perl::Critic configuration as
77        examples/perlcriticrc-conway.
78
79      * See the examples/ directory for some neat demonstrations of using 
80        the Perl::Critic API. Contributed by Elliot Shank.
81
82      Interface Changes:
83      * Perl::Critic::Utils no longer exports anything by default.  Policies
84        outside the distribution will need to specify what exactly they need
85        from this module.  There are a number of tags that can be used in
86        addition to individual imports.
87
88 [1.01]  Released on 2007-01-24
89
90      PRODUCTION RELEASE:  You may now consider the public Perl::Critic
91      API as "stable."  Future minor releases will focus on bug fixes,
92      new policies, and internal refactoring.
93
94      Bug Fixes:
95      * Fixed memory leak.  This was reported by the Parrot team at
96        http://rt.perl.org/rt3/Ticket/Display.html?id=41230
97
98 [0.23]  Released on 2007-01-19
99
100      Bug Fixes:
101      * 23994: Test 56 in t/05_utils.t of Perl::Critic v0.22 fails
102      * 24005: test 95 in t/13_bundled_policies fails in 0.22
103
104
105      Groovy New Features:
106      * Added '%F' to the Violation format specifications.  This will
107        give you just the name of file where the violation occurred
108        (i.e. without the path).
109
110      * Improved validation of .perlcriticrc file.  An invalid
111        default setting will now cause a fatal exception. A
112        strange-looking policy name will cause a warning.
113
114
115      Interface Changes:
116      * The syntax for theme expressions has changed.  Instead of using
117        mathematical operators qw(+ * -) you must now use the logical
118        operators qw(|| && !).  See the Perl::Critic docs for more info.
119      
120      * The @GLOBALS and @BUILTINS variables are no longer exported by
121        Perl::Critic::Utils.  Use the is_perl_global() and is_perl_builtin()
122        functions instead.
123
124      * Perl::Critic::Policy::policy_parameters() has bee renamed to
125        Perl::Critic::Policy::supported_paramters().  This was an
126        undocumented feature anyway, so it shouldn't affect anyone.
127
128
129      Other Internal Changes:
130      * Perl::Critic now requires B::Keywords v1.05 or newer.
131
132      * A few internal classes have been refactored.  As a result,
133        Set::Scalar is no longer a required dependency.
134
135
136 [0.22]  Released on 2006-12-15
137
138      New Features:
139      * Introduced named severity levels: gentle, stern, harsh, cruel, brutal
140        You can use these named levels instead of the numeric ones.
141        For example: "perlcritic --severity=cruel MyModule.pm"
142        Or just:     "perlcritic --cruel MyModule.pm"
143
144      * For perlcritic, the "-List" option has been renamed to
145        "-profileproto".  The output now includes the names of the
146        parameters that each Policy supports, if any.
147
148      * Improved validation of Policy parameters in your F<.perlcriticrc>
149        Any invalid parameter now causes a fatal exception.
150
151      Major Changes:
152      * Reassigned themes for most policies.  Now there are fewer
153        themes and they are organized around programming concepts
154        instead of severity levels.  If you have assigned your own
155        themes to any Policies, they should still work as expected.
156
157      Policy Changes:
158      * ErrorHandling::RequireCarping will not complain if it can figure
159        out that the die or warn message will always end in a newline
160        ("\n").  The idea is that, if you put the newline there, you
161        don't indend for there to be any file/line/stack information
162        emitted, in which case you really don't want carp/croak.
163
164        You can restore the old strict behavior by giving the policy
165        a false value for "allow_messages_ending_with_newlines" in your
166        configuration.
167
168      Misc Changes:
169
170      Added single-letter uppercase alternatives for some perlcritic options.
171
172 [0.21_01] Released on 2006-12-03
173
174      New Policies:
175      * TestingAndDebugging::ProhibitProlongedStrictureOverride
176      * ControlStructures::ProhibitMutatingListFunctions
177
178      New Features:
179      * Say "perlcritic -List" to get an expanded listing of all Policies.
180        The format is suitable for use as your .perlcriticrc file.
181      * Say "perlcritic -doc PATTERN" to get the documentation for all
182        Policies that match m/PATTERN/imx.  This is a little easier than
183        typing in the full name of the Policy module with "perldoc".
184      * Say "perlcritic --singlepolicy PATTERN" to use one and only one
185        policy.
186      * Can now specify exceptions to Variables::ProhibitPackageVars,
187        for packages like File::Find that only interface through
188        package variables.
189
190      Bug Fixes:
191      * 21713 false positive for parens used with substr and unpack.
192      * 22890 allow Rcs keywords in POD.
193
194      Internals:
195      * Testing system overhauled.  Details on the Policy/subtest
196        framework is in t/run.t.
197      * Added Perl::Critic::Utils::words_from_string.  This is safer
198        than plain old C<split /\s+/>.
199
200 [0.21]  Released on 2006-11-05
201
202      New Policies:
203      * BuiltinFunctions::ProhibitReverseSortBlock
204      * BuiltinFunctions::ProhibitVoidGrep
205      * BuiltinFunctions::ProhibitVoidMap
206      * CodeLayout::RequireConsistentNewlines
207      * Modules::RequireFilenameMatchesPackage
208      * TestingAndDebugging::RequireTestLabels
209      * ValuesAndExpressions::ProhibitMismatchedOperators
210
211      New Features:
212      * Introduced policy "themes."  Themes are arbitrary names that can
213        be used to identify a group of related Policies.  You can select
214        your favorite policies by combining themes in a mathematic expression
215        such as "pbp * (danger + risky)".  See POD for details. 
216      * perlcritic output is colorized if you have Term::ANSIColor.  This
217        only works on non-Win32 platforms.  Use -nocolor switch to disable.
218      * Say "perlcritic -count" to get just the the total number of
219        violations per file.  Use this feature to quickly identify hot-spots.
220      * Use the -only switch to choose only from policies mentioned in your
221        .perlcriticrc file.  This is useful if you usually only want to
222        work with a small subset of the policies.
223      * Default values for most of the perlcritic and Perl::Critic options
224        can now be defined in your .perlcriticrc file.  See POD for details.
225
226      Bug Fixes:
227      * 21236: wrong page number for "printing to filehandles"
228      * 21916: File handle ... wrong page reference in PBP [DUPE]
229      * 21714: false positive for capture var used in ternary condition
230      * 21718: No skip for File::Slurp in includes.t
231      * ProhibitBarewordFilehandles doesn't complain if you open
232        STDIN, STDOUT or STDERR.
233      * Parrot 40564: Subroutines::RequireFinalReturn should allow die,
234        exit, etc.
235      * Each "for" and "foreach" loop now adds one point to the McCabe
236        complexity score.
237
238      Other Stuff:
239      * The internals of Perl::Critic have been significantly refactored,
240        but should still be compatible with existing third-party Policies.
241      * Added author-only tests to the release, but disabled by default
242      * New Perl::Critic::Utils::shebang_line() method
243      * Support for filename-based policies
244      * Additional prerequisite: Set::Scalar
245      * Now requires PPI version 1.118
246
247 [0.20]  Released on 2006-09-10
248
249      Perl::Critic now requires PPI version 1.117, which fixes
250      several bugs that were introduced in version 1.116.
251
252      Bug Fixes:
253      * 21079: grep clears @SITE_POLICIES
254      * 21352: Test failures with PPI 1.117
255      * 11365: sub DESTROY detected as a builtin homonym
256
257 [0.19]  Released on 2006-08-20
258
259      New Policies:
260      * BuiltinFunctions::ProhibitStringySplit
261      * ControlStructures::ProhibitDeepNests
262      * RegularExpressions::ProhibitCaptureWithoutTest
263      * Variables::RequireLexicalLoopIterator
264
265      New Features:
266      * "perlcritic -quiet" suppresses the "source OK" message.
267      * Variables::ProhibitPunctuationVars is now configurable.
268
269      Bug Fixes:
270      * 20965: "Hard tabs used at" shouldn't check __DATA__
271      * 21070: ProhibitNoisyQuotes hates overload
272      * Punctuation variables are now exempt from ProhibitLocalVars
273
274      Other Stuff:
275      * Test coverage is now over 95%
276
277 [0.18_01]  Released on 2006-08-06
278
279      New Policies:
280      * Variables::RequireNegativeIndices
281      * InputOutput::ProhibitInteractiveTest
282      * ErrorHandling::RequireCarping
283
284      Bug Fixes:
285      * RequireTidyCode tests fail if user has custom .perltidyrc file
286      * 20612: RequirePerlTidy was ignoring HEREDOCs
287      * 20659: __END__ statement considered "unreachable"
288      * Fix for PPI::XS (no C<use overload '""'> support)
289      * Support for 'goto' in ProhibitAmpersandSigils and
290        Subroutines::RequireFinalReturn
291
292      Performance Enhancements:
293      * Introduced Perl::Critic::Document class.  This is a facade for
294        PPI::Document which internally caches search results.  This
295        reduces the running time by about 35%.  The facade should be
296        invisible, unless you are doing something really sneaky.
297      * Extraction of the 'diagnostics' information is postponed
298        until it is really needed.  Speedup has not been measured.
299      * Calls to helper-subs have been reordered for maximum efficiency.
300
301      Other Cool Stuff:
302      * Includes updated version of perlcritic mode for emacs.  See
303        "extras/perlcritic.el" for details.
304
305 [0.18]  Released on 2006-07-16
306
307      Bug Fixes:
308      * 14855: Home discovery is dangerously naive.
309      * 20060: Incorrect page numbers in ProhibitLeadingZeros
310        and RequireNumberSeparator policies.
311      * 20068: .perlrc file - inconsistent documentation
312      * 20254: "use vars qw(@EXPORT_OK)" not recognized
313      * 20463: No-case heredoc terminator incorrectly detected as lower case.
314      * ProhibitOneArgBless doesn't understand "bless {} => $class;"
315      * ProhibitExcessComplexity doesn't count 'while' and 'until' stmnts
316      * ProhibitLeadingZeros was falsely hits '.0456'
317
318      Enhancements:
319      * If File::HomeDir is available, we use it to locate the
320        .perlcriticrc file.  This should help make Perl::Critic
321        more portable to Win32 platforms.  If File::HomeDir is
322        not installed, we resort to looking at the usual
323        environment variables.
324
325      Other Stuff:
326      * Added "perlcritic.el", which is a super-cool emacs minor-mode
327        that runs perl-critic on the current buffer and returns the
328        results in a sexy hot-linked "compiler" window.  You can run
329        it on demand, or have it run automatically every time you
330        save the buffer.  You can find this in the extras/ directory.
331        Thanks to Josh ben Jore for contributing this.
332
333      * Moved "Perl::Critic::TestUtils" into the installed build.  This
334        module is only used for unit-testing Perl::Critic, but we
335        are putting it in the installation so folks who want to
336        extend Perl::Critic can make use of it.
337
338 [0.17]  Released on 2006-06-13
339
340      Bug Fixes:
341      * 19836: Perl-Critic0.16 fails tests during install.  This was
342        caused by a bug in version 3.01 of Module::Pluggable.  See
343        http://rt.cpan.org/Ticket/Display.html?id=19857 for details.
344      * Fixed bug in no-critic pragma parser.
345
346      New Policies:
347      * ValuesAndExpressions::ProhibitEscapedCharacters
348      * BuiltinFunctions::RequireSimpleSortBlock
349
350      Enhancements:
351      * Perl::Critic can export critique() as a static function.  This
352        may appeal to folks who dislike the object-oriented interface.
353
354 [0.16]  Released on 2006-05-14
355
356      Enhancements:
357      * Perl::Critic->critique() now accepts a PPI::Document as the
358        argument.  This feature creates an additional dependency on
359        Scalar::Util, but that shouldn't be a problem because it is
360        included with List::Util, which we already use.
361
362      Miscellanea:
363      * Increased PPI dependency from v1.110 to v1.112
364
365 [0.15_03] Released on 2006-05-07
366
367      Bug Fixes:
368      * The "## no critic" feature is now implemented without eval-ing
369        the code.  This keeps Perl::Critic pure and safe :)
370      * 19082: Page number for AUTOLOAD is incorrect
371
372      New Policies:
373      * ControlStructures::ProhibitUnreachableCode (by Peter Guzis)
374      * Modules::ProhibitAutomaticExportation
375      * ValuesAndExpressions::ProhibitVersionStrings
376
377 [0.15_02] Released on 2006-04-26
378
379      Bug Fixes:
380      * Reimplemented the '##no critic' pragmas to have effect on the
381        line where the violation is reported, not on the line where
382        the candidate element lives.  This is because some policies
383        may report violations that are nowhere near the element that
384        is being evaluated.
385      * RequireUseStrict, RequireUseWarnings, and RequireExplcitPackage
386        all emit violations for _every_ statement that violates the
387        Policy.  This closes a loophole that allowed you to circumvent
388        the Policy by using '## no critic' on just the first statement
389        that violated the policy.
390      * Fixed the workaround for the magic shebang that is inserted
391        by EU::MM and M::B.  This had stopped working around version 13.
392      * Fixed -noprofile option on 'perlcritic'.  This also had stopped
393        working at some point.
394
395 [0.15_01] Released on 2006-04-16
396
397      Enhancements:
398      * Added diagnostic messages if the .perlcriticrc contains entries
399        for Policy modules that don't seem to exist.
400      * Now you can specify which policies to disable with the
401        "## no critic" pseudo-pragmas.  This feature is still
402        experimental.  See docs for details.
403      * perlcritic's directory searching now skips backup files, such
404        as *.swp, *.bak and *~.  It also ignores version control system
405        directories, and the blib directory in module build directories.
406
407      Bug Fixes:
408      * 18386: Bad example in POD for Documentation::RequirePodSections
409      * 18670: Test failure if Perl::Tidy is not installed 
410      * 18698: Policy idea ProhibitUniversalFunctions (see New Policies)
411      * RequireInterpolationOfMetachars falsely hit strings like 'foo=s@'
412        which are commonly used with Getopt::Long.
413
414      New Policies:
415      * BuiltinFunctions::ProhibitUniversalCan (by Chris Dolan)
416      * BuiltinFunctions::ProhibitUniversalIsa (by Chris Dolan)
417
418      Miscellanea:
419      * All spurrious options for `perlcritic` are now fatal.
420      * Changed several of the -verbose formats to be more readable.
421      * Explicit -severity option now overrides -[12345] shortcuts instead
422        of being the other way around.
423
424
425
426 [0.15] Released on 2006-03-26
427
428      Bug Fixes:
429      * 17964: Insists my code is not tidy (may not be fixed for all cases)
430
431 [0.14_02] Released on 2006-03-19
432
433      Bug Fixes:
434      * 15653: False positive in OneArgSelect (fixed for real this time)
435
436      New Policies:
437      * ClassHierarchies::ProhibitAutoloading
438      * Documentation::RequirePodSections
439      * InputOutput::RequireBracedFileHandleWithPrint
440      * ValuesAndExpressions::ProhibitMixedBooleanOperators
441      * Variables::RequireInitializationForLocalVars
442
443 [0.14_01] Released on 2006-03-05
444
445      Bug Fixes:
446      * 14731: False positive: Builtin function called with parens
447      * 17554: False positive in CodeLayout::RequireTrailingCommas
448
449      New Policies:
450      * ClassHierarchies::ProhibitExplicitISA
451      * InputOutput::ProhibitReadlineInForLoop
452      * Miscellanea::ProhibitFormats
453      * Miscellanea::ProhibitTies
454      * Variables::ProhibitConditionalDeclarations
455
456 [0.14] Released on 2006-01-29
457
458      More documentation edits.
459
460      New Policies:
461      * Documentation::RequirePodAtEnd
462      * Subroutines::ProtectPrivateSubs
463      * Variables::ProhibitMatchVars
464      * Variables::ProtectPrivateVars
465
466      Bug Fixes:
467      * 15295: "## no critic" pragmas too aggresive on compound statements.
468      * t/01_config.t failed in the presence of third-party policies
469
470 [0.13_05] Not released
471
472      More documentation edits.
473
474      Implemented workaround for failing pod_coverage tests.
475
476      Bug Fixes:
477      * 16906:  tr/// created false-postives with RegularExpression polices.
478
479 [0.13_04] Released on 2005-12-31
480
481      Moved DEVELOPER.pod file into the Perl/Critic dir.
482
483      More documentation edits.
484
485 [0.13_03] Released on 20051230
486
487      perlcritic now prints 'source OK' if it doesn't find any
488      violations.  This gives folks a warm fuzzy feeling.
489
490      Tweaked some test cases that were failing on my Solaris
491      environment at work.
492
493 [0.13_02] Released on 2005-12-29
494
495      Fixed Config to recognize fully-qualified module names in the
496      .perlcriticrc file.
497
498      Various documentation edits.
499
500 [0.13_01] Released on 2005-12-28
501
502      Replaced 'priority' concept with 'severity'.  Now each Policy module
503      has a predefined severity level ranging from 1 to 5.  By default,
504      perlcritic only reports the most severe violations.  You can adjust
505      the severity threshold at the command line, and you can change
506      the severity for any Policy using the config file.
507
508      Chris implemented the applies_to() mechanism, which allows each Policy
509      class to declare the types of PPI elements that it wants to examine.
510      When traversing the document, Perl::Critic invokes the Policy only
511      for elements that are of the correct type.  This improves performance
512      by about 33%.
513
514      Perl::Critic now uses a Plugin architecture to automatically
515      discover Policy modules.  So if you have custom Policies, all you
516      have to do is install them in the Perl::Critic::Policy namespace --
517      no need to add anything to your .perlcriticrc file.  If you write
518      policies in a different namespace, you can configure that too.  See
519      the Perl::Critic::Config docs for details.
520
521      New Policies:
522      * Modules::RequireEndWithOne
523      * NamingConventions::ProhibitAmbiguousNames
524      * References::ProhibitDoubleSigils
525      * Subroutines::RequireFinalReturn
526      * Subroutines::ProhibitAmpersandSigils
527      * Subroutines::ProhibitExcessComplexity
528      * TestingAndDebugging::ProhibitNoStrict
529      * TestingAndDebugging::ProhibitNoWarnings
530
531      Bug Fixes:
532      * 15101: Plugin architecture improves support for 3rd-party code
533      * 16319: Fixed incorrect PBP page number in ProhibitBarwordFilehandle
534      * 16321: Lists of empty quotes are now allowed by ProhibitQuotedWordLists
535      * 16288: Empty lists caused a fatal error RequireTrailingCommas
536      * 15653: Fixed false positive in OneArgSelect.
537      
538 [0.13] Released on 2005-10-31 
539
540      Official release of 0.12_03.  No code major changes.
541
542 [0.12_03] Not released
543
544      Renamed -Policy option to -include.  Added -exclude to give the
545      opposite effect.
546
547      Refactored constructor of Perl::Critic.  Now, most of the work
548      is delegated to Perl::Critic::Config.  I'm not sure I like how
549      this turned out, but we'll see how it goes.
550
551      Renamed some Policy modules to be a bit more comprehensible.  Note
552      that you may need to change your .perlcriticrc file accordingly. 
553      I also suggest removing your current Perl::Critic installation 
554      before installing this one.
555
556      Name Changes:
557      * ProhibitUnpackagedCode => RequireExplicitPackage
558      * RequireQuotedWords     => ProhibitQuotedWordLists
559
560      Improved error message when Perl::Critic dies because PPI can't
561      parsee the input code.
562
563      Changed output of -help to be more terse.
564
565      Edited POD.
566
567 [0.12_02] Not released
568
569      Added -Policy option to perlcritic.  The idea is to provide a 
570      compact interface for selecting Policy modules at the command-line.
571      This feature is experimental and subject to change.
572
573      Added a warning message if -verbose value looks strange.  In most 
574      applications, the -verbose option does not require a value, so people
575      might be puzzled when they write 'perlcritic -verbose my_file.pm' and
576      nothing seems to happen.
577
578      Command-line options to perlcritic are now case-sensitive.  This
579      makes it easier to abbreviate options that start with the same letters
580      (e.g. 'Version' and 'verbose')
581
582      Fixed the new Policy modules that were misnamed and misplaced in the 
583      previous distribution.
584
585 [0.12_01] Not released
586
587      Rewrote some of the ControlStructures and BuiltinFunction 
588      policies to be simpler (and probably a little faster).
589
590      Edited POD.  Fixed some typos.  Added PREREQUISITES section
591      to Perl::Critic documentation.
592
593      Fixed the -verbose FORMAT option so that you can put metachars
594      in the FORMAT specification.  If using perlcritic, be careful to
595      protect them from getting munged by the shell first.
596
597      Replaced ProhibitRequireStatements with RequireBarewordIncludes
598      module. Courtesy of Chris Dolan <cdolan@cpan.org>
599
600      Added configuration to ProhibitInterpolationOfLiterals so that
601      certain flavors of quotes can be exempt.  This is for folks who
602      have configured their editor to use special syntax highlighting
603      for certain kinds of strings (SQL, for example).
604
605      perlcritic now accepts multiple file arguments, so now you can 
606      critique your entire distribution in one shot.  As a result, the 
607      output-formats have changed slightly.
608
609      New Policy modules:
610      * BuiltinFunctions::ProhibitLvalueSubstr
611      * BuiltinFunctions::ProhibitSleepViaSelect
612      * ClassHierarchies::ProhibitOneArgBless
613      * CodeLayout::RequireTrailingCommas
614      * CodeLayout::RequireQuotedWordLists
615      * InputOutput::ProhibitTwoArgOpen
616      * InputOutput::ProhibitOneArgSelect
617      * InputOutput::ProhibitBarewordFileHandles
618      * Miscellanea::RequireRcsKeywords
619      * Modules::RequireVersionVar
620      * RegularExpressions::RequireExtendedFormatting
621      * RegularExpressions::RequireLineBoundaryMatching
622
623      
624      Bug fixes:
625      14923: 'require' is now permitted. See RequireBarewordIncludes.
626      15022: Fixed false-positives when keywords are used as hash keys.
627      15023: Fixed spurious Violations by removing magic shebang.
628      15031: Fixed spelling mistakes (and probably added some new ones).
629      15233: Postfix 'if' is now allowed with 'die', 'croak', etc.
630
631 [0.12] Released 2005-10-10
632
633      Redesigned the 'verbose' feature.  Now the output format 
634      can be user-defined using a sprintf-like specification.
635      perlciritc also has a predefined output format that is 
636      compatible with grep mode in editors like vim and emacs.
637
638      'return' is now exempt from ProhibitParensWithBuiltins.  I may
639      extend this exemption to all unary functions.
640
641      Edited POD. Added a super brief description of each policy 
642      in the main Perl::Critic documentation.  Added details about
643      editor integration.
644
645      Additional Prerequisites:
646      * String::Format
647
648 [0.11] Not released
649
650      The internal dynamics and API of Perl::Critic have changed
651      considerably.  The result is a 300% increase in performance.
652      See the POD in Perl::Critic::Policy for details.
653
654      New Features:
655      * Added -verbose option to put more stuff in the output.  In the
656        extreme, you can get the POD from Policy attached to each
657        and every violation.
658
659      Additional Prerequisites:
660      * IO::String
661      * Pod::PlainText
662
663 [0.10] Released 2005-10-05
664
665      Fixed stupid bug in newest Policy modules.  They were returning
666      PPI objects instead of Perl::Critic::Violation objects.  Doh!
667
668      Fixed test scripts to prevent failures if the user already has a
669      .perlcriticrc file.
670
671      'ProhibitHardTabs' now allows leading tabs by default.
672
673      Put the Changes file in reverse-chronological order, so the most
674      recent stuff is easy to find at the top of the file
675
676 [0.09] Released 2005-10-04
677
678      Fixed several bugs:
679      * 14810: Now you are allowed to create your own 'import' function,
680               since this is frequently done with fancy modules.
681      * 14817: Parens, brackets, and braces are now excluded from
682               'ProhibitNoisyQuotes' since they look better in quotes anyway.
683      * 14787: $1..$9 and '_' are exempt from ProhibitPunctuationVars
684      * 14899: Object methods with the same name as a built-in can
685               be called with parens (ProhibitParensWithBuiltins).
686      * 14901: Normalized the exit status of perlcritic to 0, 1, or 2.
687               See documentation for explanation.
688      * 14855: Partially fixed home directory discovery.  Still not
689               completely portable, but at least doesn't create warnings.
690
691      New features:
692      * 14734: Limit for number separators is now configurable
693
694      New Policy modules:
695      * CodeLayout::ProhibitHardTabs
696      * ControlStructures::ProhibitUnlessBlocks
697      * ControlStructures::ProhibitUntilBlocks
698      * ControlStructures::ProhibitCStyleForLoops
699
700      Changed the syntax for the magic comments.  Adam had the
701      idea of using a pragma-like notation.  I liked it.
702
703 [0.08_2] Released 2005-09-27
704
705      Fixed problems with Perl::Critic::Config that caused File::Spec
706      to emit 'uninitialized value' warnings during the build.
707
708      Added 1 Policy module contributed by Graham TerMarsch
709
710      Switched from File::Spec::Functions to plain File::Spec because
711      I think its usage is more common.
712
713      Removed 'FindBin' from the test files so I can be sure that the
714      right libraries are getting loaded.  This means I'll have to
715      use the -l option with C<prove>.
716
717      Edited more POD.
718
719 [0.08_01] Not released
720
721      Fixed "ProhibitParensWithBuiltins" to allow parens to be used with
722      object method calls that have the same name as a builtin functions.
723
724      Introduced magical comments that allow developers to configure 
725      Perl::Critic on-the-fly from within their code.
726
727      Added META.yml files and POD tests to the build.  I did this
728      mostly just to boost the Kwalitee score on CPANTS.
729
730      Switched from "Config::Std" to "Config::Tiny" because it doesn't
731      require those fancy Damian modules that don't seem to work on
732      some older versions of Perl.
733
734 [0.07] Released on 2005-09-21
735
736      Fixed bugs in the ProhibitCascadingIfElse policy.  
737
738      Added ProhibitExplicitReturnUndef policy
739
740      Made ProhibitUnpackagedCode configurable so you can exempt scripts,
741      which typically don't have an explicit 'package' statement.
742
743      ProhibitPackageVars policy now exempts vars in ALL_CAPS.  This
744      is to permit common package variables like @EXPORT and $VERSION.
745
746      Renamed "ProhibitStringyGrep and "ProhibitStringyMap" because 
747      the so-called string form doesn't really exist.  Now called
748      "RequireBlockGrep" and "RequireBlockMap" 
749
750      Corrected documentation on defining Policy names within the 
751      configuration file.  This still isn't very clear and needs
752      to be rewritten.
753
754      Perl::Critic now requires PPI version 1.003, which has a few bug 
755      fixes of its own.
756
757      Rewrite some code just to make Perl::Critic more self-compliant.
758
759      Added test cases to verify the configuration functionality.  These
760      are not completely thorough and need more work.
761
762 [0.06] Released on 2005-09-17
763
764      Now called 'Perl::Critic'.  
765
766      Added 4 new policy modules.  
767      
768      Fixed bugs in build process.  
769
770      Added support for Module::Build.
771
772 [0.05] Released on 2005-09-17
773
774      End of 'Perl::Review' releases.  I have changed the name to
775      'Perl::Critic' to avoid possible confusion with "The Perl Review"
776      magazine.
777
778 [0.04] Released on 2005-09-14
779
780      Version 0.03 was a bust because I uploaded the wrong tarball to PAUSE.
781
782 [0.03] Released on 2005-09-13.
783
784      Fixed some POD links.  
785
786      Removed test cases for missing policy module.
787
788 [0.02] Released on 2005-09-13.
789
790      Major overhaul based on feedback from Perl community.
791
792      Factored coding standards into separate modules (known as
793      Policies).  The idea here is to allow other developers to easily
794      contribute additional coding standards.
795
796      Reworked Perl::Review into a simple engine for loading and running
797      Policy modules.
798
799      Gave perlreview a command-line interface and configuration file
800      for selecting which Policy modules to use.
801
802 [0.01] Released on 2005-08-16.
803
804      Initial version.
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824