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