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