Commit | Line | Data |
---|---|---|
dfd2d7e3 | 1 | [1.107_001] Released on 2010-06-20 |
9d1ba1a8 TW |
2 | |
3 | Bug Fixes: | |
acb6e9d6 TW |
4 | * RT #57818: DEVELOPER.pod typo in link to |
5 | ValuesAndExpressions::ProhibitConstantPragma policy | |
ebc4fcb1 TW |
6 | * Policy BuiltInFunctions::ProhibitLvalueSubstr no longer complains |
7 | when there is a low-precedence operator between the substr() and | |
8 | the assignment operator. | |
0eaf93b5 TW |
9 | * Policy TestingAndDebugging::RequireUseStrict now accepts 'use 5.011' |
10 | or greater as equivalent to 'use strict'. | |
391fe02c | 11 | * RT #57375: Spelling errors in documentation. |
5c564ec8 | 12 | * RT #56619: "die" used instead of "croak" |
508b61b2 TW |
13 | Add option allow_in_main_if_not_in_subroutine to |
14 | ErrorHandling::RequireCarping, to allow "die" in namespace 'main', | |
631b14a5 | 15 | if not in a subroutine. |
9d1ba1a8 | 16 | * RT #56627: Too many arguments (sub prototype, false positive) |
5c356def TW |
17 | Revise Subroutines::ProhibitManyArgs to count only characters in the |
18 | prototype that represent arguments. | |
262acf3d | 19 | * RT #56667: No "$VERSION" variable found (false positive) |
5c356def TW |
20 | Wordsmithed the $DESC and the POD in Modules::RequireVersionVar to make |
21 | explicit that lexical variables are not acceptable. | |
9d1ba1a8 | 22 | |
631b14a5 ES |
23 | Policy Changes |
24 | * Modules::ProhibitEvilModules now complains about the modules deprecated | |
25 | by the Perl 5 Porters in 5.12. | |
26 | * Subroutines::RequireFinalReturn should now understand a final given/when | |
27 | statement, and declare an error if there is no 'default' block or if any | |
28 | branch does not return. | |
29 | ||
24196707 ES |
30 | Other Changes: |
31 | * Perl::Critic::Utils::is_unchecked_call() updated to include chmod in the | |
32 | set of things covered by autodie (this happened in autodie v2.08). The | |
33 | primary effect of this is on InputOutput::RequireCheckedSyscalls. | |
68e1379b ES |
34 | * Now depends upon Task::Weaken to ensure that we only install with perls |
35 | where Scalar::Util::weaken() works. | |
24196707 | 36 | |
380712ca ES |
37 | [1.106] Released on 2010-05-10 |
38 | ||
39 | Bug Fixes: | |
40 | * NamingConventions::Capitalization fix for PPI 1.212. RT #57348 | |
41 | ||
08baee8f JRT |
42 | [1.105_03] Released on 2010-03-21 |
43 | ||
44 | !! THIS IS A DEVELOPER RELEASE !! | |
45 | ||
46 | Bug Fixes: | |
47 | * Fixed regex test that caused test failures on every Perl 5.11 | |
48 | (credit Tom Wyant). | |
49 | * RT #54524: False Positive: ValuesAndExpressions::ProhibitMismatchedOperators | |
50 | with 'foo' x 15 . 'bar' | |
51 | * RT #55604: Variables::ProhibitPunctuationVars gives false-positive | |
52 | on qr// regexp's ending in '$' | |
53 | * RT #33935 and #49679 were fixed by upgrading to PPI 1.208 | |
54 | ||
55 | Other Changes: | |
56 | * Email::Address was optional, but is now required. So everyone | |
57 | gets the optimal behavior from RequireInterpolationOfMetachars. | |
58 | * Some infrastructure has been extracted to the new PPIx-Utilities | |
59 | distro. It is also a required dependency here. | |
60 | ||
71eeeb16 | 61 | [1.105_02] Released on 2010-01-23 |
fab47f2e | 62 | |
67ce4fcf JRT |
63 | !! THIS IS A DEVELOPER RELEASE !! |
64 | ||
292aabb4 | 65 | Bug Fixes: |
ffaa6c0f ES |
66 | * 'state ($foo)' is now allowed by CodeLayout::ProhibitParensWithBuiltins. |
67 | RT #52029. | |
e9569764 TW |
68 | * Capture variables inside when(){} are now allowed by |
69 | RegularExpressions::ProhibitCaptureWithoutTest. RT #36081. | |
7d58de3c TW |
70 | * t/20_policy_pod_spelling.t now works (or at least no longer fails) |
71 | in non-English locales. RT #43291 and RT #48986. | |
598a8858 | 72 | * RT #53219 perldoc has broken link for McCabe score definition |
292aabb4 | 73 | |
fab47f2e TW |
74 | Other Changes: |
75 | * Removed all uses of Perl::Critic::Utils::PPIRegep. Since the | |
76 | PPIx::Regexp update, Perl::Critic only used get_match_string() and | |
77 | friends, which were superseded by the corresponding PPI methods. | |
ce792fef ES |
78 | Perl::Critic now depends on PPI-1.208 or newer. |
79 | * Moved Perl::Critic::Utils::PPIRegep to the Perl-Critic-Deprecated | |
80 | distribution. | |
fab47f2e | 81 | |
71eeeb16 | 82 | [1.105_01] Released on 2010-01-16 |
d533eee5 | 83 | |
30dfd344 JRT |
84 | !! THIS IS A DEVELOPER RELEASE !! |
85 | ||
76d741ca ES |
86 | New Features: |
87 | * There is a new global configuration item, 'program-extensions', which | |
88 | configures Perl::Critic's idea of which file name extensions represent | |
89 | programs. The desired extensions are specified as a space-separated list, | |
90 | with leading '.' on each if that is desired. Files whose names end in | |
91 | '.PL' will always be considered programs. This can be overridden by | |
92 | command option --programs-extensions, which can be specified multiple | |
93 | times. | |
94 | * The framework that we use to test Perl::Critic has been packaged into | |
95 | a convenient module that you can use to test your own Policies. See | |
96 | Test::Perl::Critic::Policy for details. | |
8d392dd5 JRT |
97 | * Added the --unsafe switch. Without this switch, Perl::Critic will |
98 | silently refuse to load any Policy that is marked unsafe. Unsafe | |
99 | Policies are usually ones that may compile or execute untrusted | |
100 | code (see Perl::Critic::DynamicPolicy for an example). | |
d533eee5 | 101 | |
fc297a58 TW |
102 | New Policies: |
103 | * Subroutines::ProhibitUnusedPrivateSubroutines | |
104 | * Documentation::RequirePodLinksIncludeText | |
105 | ||
410ba6b3 ES |
106 | Policy Changes: |
107 | * Subroutines::ProhibitNestedSubs no longer complains about scheduled | |
108 | blocks (BEGIN, etc.) inside subroutines and vice versa. | |
fc297a58 TW |
109 | * The RegularExpressions:: policies have been converted from using |
110 | Regexp::Parser to using PPIx::Regexp to do their heavy lifting. | |
111 | Regexp::Parser is still an optional module due to the need to put | |
112 | Perl::Critic::Utils::PPIRegexp's parse_regexp() and ppiify() through a | |
113 | deprecation cycle. | |
114 | * RegularExpressions::ProhibitUnusedCapture now checks for unused named | |
115 | captures. | |
410ba6b3 | 116 | |
d44f140e ES |
117 | Bug Fixes: |
118 | * The "## no critic" annotations now respect the #line directives. | |
ae766e5c TW |
119 | * Annotations on statements spanning more than one line (e.g. |
120 | my $foo = | |
121 | '$bar'; ## no critic (RequireInterpolationOfMetachars) | |
122 | ) are now handled as single-line annotations, not block annotations. | |
fc297a58 TW |
123 | * All instances of L<Foo> in the POD have been changed to L<Foo|Foo>. |
124 | L</bar> and L<Foo/bar> were allowed to stand. RT #37485 | |
125 | * InputOutput::RequireBriefOpen now recognizes CORE::open, CORE::close, | |
126 | CORE::GLOBAL::open, and CORE::GLOBAL::close. RT #52391 | |
127 | * Spaces are now allowed immediately inside the enclosing parentheses in | |
128 | "## no critic ( Foo )". RT #52038 | |
72189be0 TW |
129 | * With the introduction of PPIx::Regexp, Perl::Critic no longer dies |
130 | when it encounters a Perl 5.010 regexp. RT #49442. | |
d44f140e | 131 | |
b005b12c ES |
132 | Other Changes: |
133 | * The PolicySummary.pod file is now generated when the distribution | |
134 | is created, rather than when you install it. This ensures the file | |
135 | will be available on http://search.cpan.org. Thanks to Bear Longyear | |
6422d13a | 136 | for bringing this to our attention. |
b005b12c | 137 | |
380712ca | 138 | [1.105] Released on 2009-09-07 |
d2306f22 ES |
139 | |
140 | Bug Fixes: | |
141 | * Variables::ProhibitPunctuationVars would complain about "%-" appearing | |
142 | anywhere in a string. RT #49016 | |
143 | ||
1704f0ee ES |
144 | Policy Changes: |
145 | * InputOutput::RequireCheckedSyscalls now complains about unchecked "say" | |
146 | by default. RT #37487 | |
147 | ||
3c7cf947 | 148 | [1.104] Released on 2009-08-23 |
46f91981 ES |
149 | |
150 | This release is dedicated to Tom Wyant in appreciation of the amount of | |
151 | effort he put into the enhancements and bug fixes in this release, for | |
152 | having the patience to wait for the amount of time that it took to get | |
153 | them out, and for overall awesomeness. Thank you, Tom. | |
04dbda14 | 154 | |
4e2f0cd0 ES |
155 | New Policies: |
156 | Objects::ProhibitIndirectSyntax | |
157 | ValuesAndExpressions::ProhibitComplexVersion | |
158 | ValuesAndExpressions::RequireConstantVersion | |
159 | ||
f5688dcb ES |
160 | New Optional Requirement: |
161 | * Email::Address, if you want | |
162 | ValuesAndExpressions::ProhibitInterpolationOfLiterals to properly ignore | |
023a8de4 | 163 | email addresses. |
f5688dcb | 164 | |
94f7eff2 ES |
165 | New Features: |
166 | * Perlcritic will list the names of files with violations if given the | |
167 | --files-with-violations option, or the names of files without | |
168 | violations if given the --files-without-violations options. These | |
169 | have synonyms -l and -L respectively. | |
a3e30f41 | 170 | * Perlcritic has a new --list-enabled option, which lists the Policies |
e85ad595 ES |
171 | that will be enforced, given the current configuration. This is |
172 | useful if you've written a complex command-line or modified your | |
173 | .perlcriticrc file and you want to see which Policies *would* | |
174 | be used with the current configuration, if you were actually going | |
175 | to critque a file with it. | |
f5688dcb ES |
176 | * Perl::Critic::Violation now takes #line directives into account in the |
177 | %F, %f, and %l formats. You can get the old values via the new %G, %g, | |
178 | and %L formats. | |
94f7eff2 | 179 | |
e85ad595 | 180 | Policy Changes: |
f5688dcb ES |
181 | * CodeLayout::ProhibitParensWithBuiltins was complaining in certain cases |
182 | where parentheses are required due to operator precedence. RT #46862. | |
183 | * ControlStructures::ProhibitMutatingListFunctions no longer complains | |
184 | about uses of tr/// that don't modify the operand. Reported by EDAVIS, | |
185 | RT #44515. | |
186 | * Miscellanea::RequireRcsKeywords now accepts "qw$Keyword: ...$". RT | |
187 | #45196. | |
188 | * Modules::RequireFilenameMatchesPackage now respects logical filenames | |
189 | defined by the "#line" directives. This allows the Policy to work | |
190 | properly with IDEs and code generators. | |
e85ad595 ES |
191 | * NamingConventions::Capitalization now allows fully qualified subroutine |
192 | declarations ( e.g. "sub Foo::Bar::baz {...}" ). However, the | |
193 | non-package part of the subroutine name must still conform to whatever | |
194 | capitalization rule you have chosen. | |
f5688dcb ES |
195 | * RegularExpressions::ProhibitCaptureWithoutTest no longer complains if |
196 | the regex is followed by an "or die" or similar. Reported by EDAVIS, | |
197 | RT #36081. | |
198 | * RegularExpressions::ProhibitComplexRegexes no longer counts variable | |
199 | substitutions in the length. Reported by EDAVIS, RT #36098. | |
200 | * RegularExpressions::ProhibitUnusedCapture now considers the body of | |
201 | while loops and not just their condition. Reported by EDAVIS, RT | |
202 | #38942. | |
f5688dcb ES |
203 | * ValuesAndExpressions::ProhibitVersionStrings was getting confused by |
204 | comments. Reported by Kevin Ryde, RT #44986. | |
8c476a52 ES |
205 | * ValuesAndExpressions::RequireInterpolationOfMetachars now allows sigils |
206 | in the arguments to "use vars". Contributed by Kevin Ryde, RT #47318. | |
6bacb99c ES |
207 | * ValuesAndExpressions::RequireInterpolationOfMetachars now properly |
208 | ignores email addesses, if you have Email::Address installed. Inspired | |
209 | by the Kevin Ryde contribution in RT #47318. | |
eb9e2217 ES |
210 | * Variables::ProhibitPunctuationVars gained the ability to look inside |
211 | interpolated strings. Doing this correctly is challenging and things | |
212 | may not work out right; how the policy does this can be controlled via | |
213 | the new "string_mode" option. Contributed by Edgar Whipple | |
214 | <perlmonk at misterwhipple dot com>. | |
f5688dcb ES |
215 | * Variables::ProhibitPunctuationVars now ignores $] by default since there |
216 | is no English.pm equivalent. | |
217 | ||
218 | Other Bug Fixes: | |
219 | * Perl::Critic::Utils::parse_arg_list() was slurping up the "or die ..." | |
220 | portion of "open my $foo, 'somefile' or die ...", causing | |
221 | InputOutput::ProhibitTwoArgOpen to not complain about this example. | |
222 | Reported by Alexandr Ciornii, RT #44554. | |
223 | ||
224 | Minor Changes | |
225 | * The line count emitted by the --statistics option is further broken down | |
226 | by line content. | |
e85ad595 | 227 | |
f5688dcb | 228 | Minor Documentation Fixes: |
34d83b96 | 229 | * ValuesAndExpressions::ProhibitInterpolationOfLiterals. Reported by |
f5688dcb | 230 | Debian in http://bugs.debian.org/542814, RT #48936 |
34d83b96 | 231 | |
d7a56cc3 ES |
232 | Build Fixes: |
233 | * There wasn't a specific version given for the List::MoreUtils dependency | |
234 | and we're using features that weren't avialable until 0.19. So, we now | |
f5688dcb ES |
235 | require version 0.19. Noticed by John J. Trammell, RT #48917. |
236 | * Some tests were tied to the specific "true" and "false" values that some | |
237 | functions were returning. Reported by Michael Schwern, RT #43910. | |
d7a56cc3 | 238 | |
caf17549 ES |
239 | Other News: |
240 | * Komodo version 5.1.1 now has built-in support for Perl-Critic, | |
241 | if you have the Perl::Critic and criticism modules installed. | |
242 | Both should be available through the ActiveState Perl Package | |
243 | Manager ppm(1). | |
244 | ||
a2a9a024 ES |
245 | [1.103] Released on 2009-08-03 |
246 | ||
94f7eff2 | 247 | Fix configure_requires prerequisite on Module::Build 0.34_02. |
a2a9a024 | 248 | |
cc8f1a88 | 249 | [1.102] Released on 2009-08-03 |
04c1c727 ES |
250 | |
251 | Bug fixes: | |
cc8f1a88 ES |
252 | * Works with PPI 1.205. Yay for 5.10 support! |
253 | * Variables::RequireLexicalLoopIterators didn't work correctly on foreach | |
254 | loops with labels. | |
04c1c727 | 255 | |
cc8f1a88 ES |
256 | [1.101_003] Released on 2009-07-22 |
257 | [1.101_002] Released on 2009-07-21 | |
c42eada5 ES |
258 | [1.101_001] Released on 2009-07-21 |
259 | ||
cc8f1a88 ES |
260 | Changes summarized into 1.102 above. For exact details, see Changes on |
261 | BackPAN. | |
c42eada5 | 262 | |
199004d6 ES |
263 | [1.100] Released on 2009-07-17 |
264 | ||
265 | This is a POD fix release to deal with issues identified by Test::POD | |
266 | 1.40. There is no functional difference between this release and 1.098. | |
267 | This is the last release of Perl::Critic that will be compatible with PPI | |
268 | 1.203. PPI's parsing of for(each)? loops is changing in its next release | |
269 | in an incompatible manner and there will be a release in the near future | |
270 | to make Perl::Critic compatible with that change. | |
271 | ||
43e5274f ES |
272 | [1.099_002] Released on 2009-06-27 |
273 | [1.099_001] Released on 2009-06-25 | |
274 | ||
275 | Experimental releases. For exact details, see Changes on BackPAN. | |
276 | ||
9a594004 | 277 | [1.098] Released on 2009-03-07 |
b20509b4 | 278 | |
8b8e5bfa JRT |
279 | Some Exciting News: |
280 | The Perl Development Kit (PDK 8.0) from ActiveState now includes a | |
281 | very slick graphical interface to Perl-Critic. I highly recommend | |
282 | that you check it out. Here's a link to screenshots and docs: | |
283 | ||
284 | http://docs.activestate.com/pdk/8.0/PerlCritic_gui.html | |
285 | ||
0b96e145 | 286 | New Features: |
3f6c71d6 | 287 | * Violation coloring is now configurable via command line or profile. The |
0b96e145 TW |
288 | profile entries are color-severity-highest, -high, -medium, -low, or |
289 | -lowest. Numbers are accepted in lieu of named severities (e.g. | |
290 | 'color-severity-5' for 'color-severity-highest'), and 'colour' is | |
291 | accepted in lieu of 'color'. | |
9be65cc3 TW |
292 | * Handling of unrecognized policy configuration items is now controlled by |
293 | the profile_strictness. The default is to warn about them. The previous | |
2560297d | 294 | default was that they were fatal. |
74ab621f | 295 | * -p is now a synonym for --profile. |
75713d33 ES |
296 | * The --verbose option for perlcritic now supports a %C format that will |
297 | displays the class of PPI::Element that caused the violation. | |
0b96e145 | 298 | |
98ba1bfd | 299 | Policy Changes: |
6ed44031 ES |
300 | * ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions |
301 | didn't include "pbp" in its default themes even though it is derived | |
302 | from the book. Now it does. :] | |
00467844 | 303 | * ErrorHandling::RequireCarping now allows a here document as the last |
312a457a | 304 | element if the "allow_messages_ending_with_newlines" option is true. |
d299b000 ES |
305 | * Fix Subroutines::ProhibitAmpersandSigils so it allows "defined(&x)" as |
306 | well as "defined &x". Patch from Kevin Ryde, RT #38855. | |
faca2eeb TW |
307 | * Subroutines::ProtectPrivateSubs now has an "allow" option to specify |
308 | subroutines which are exempt from this policy. RT #38678. | |
312a457a ES |
309 | Additionally, a "private_name_regex" option has been added that allows |
310 | you to specify what a private subrouting name looks like. | |
8b869893 TW |
311 | * Subroutines::RequireArgUnpacking now has an "allow_subscripts" option |
312 | to allow array slices and elements. RT #34009. | |
5ecfde16 TW |
313 | * Subroutines::RequireArgUnpacking now has an "allow_delegation_to" option |
314 | to allow the usual delegation idiom. Delegation to 'SUPER::' and | |
315 | 'NEXT::' are allowed by default. RT #33839. | |
bf1d8677 TW |
316 | * Subroutines::RequireArgUnpacking no longer generates a false positive |
317 | for '$$_[]', which is an obfuscated way of saying '$_->[]'. RT #37713. | |
fd90d21c ES |
318 | * ValuesAndExpressions::ProhibitMagicNumbers now has an |
319 | allow_to_the_right_of_a_fat_comma option, which defaults to true. Note | |
320 | that it currently only works /directly/ to the right of a fat comma. | |
413e030e ES |
321 | * Variables::ProhibitMatchVars had its default themes changed to "core |
322 | performance pbp", instead of "core bugs pbp" because, while the match | |
323 | variables make regular expressions slow, it doesn't cause them to not | |
324 | work correctly. | |
c06b3f8e ES |
325 | * Variables::ProhibitPackageVars has had FindBin and Log::Log4perl added |
326 | to the default exemptions. | |
98ba1bfd ES |
327 | * Variables::ProhibitReusedNames now has an "allow" option to specify |
328 | names that can be reused. It defaults to enabling $self and $class. RT | |
329 | #42767. | |
3f6c71d6 ES |
330 | * Variables::RequireLocalizedPunctuationVars has a customizable set of |
331 | exemptions via the "allow" option. | |
98ba1bfd | 332 | |
2560297d ES |
333 | New Developer Features: |
334 | * The guts of perlcritic have been moved to Perl::Critic::Command. You | |
335 | can invoke Perl::Critic::Command::run() to get the equivalent of running | |
336 | the command. (Note, however, this interface WILL change, so don't count | |
337 | on the current one.) | |
4444d94d ES |
338 | * Modules have had a "INTERFACE SUPPORT" section added which states |
339 | whether the Perl::Critic developers consider the particular module is | |
340 | public or not. Any removal of functionality from a public module will | |
341 | go through a deprecation cycle. Non-public modules may have their | |
342 | interfaces changed without notice. | |
75713d33 ES |
343 | * P::C::Policy now has an is_enabled() method. |
344 | * P::C::Violation now has an element_class() method. | |
2560297d | 345 | |
1360fcdf | 346 | Bug Fixes: |
98ba1bfd ES |
347 | * CodeLayout::ProhibitTrailingWhitespace didn't notice cases where PPI |
348 | would produce instances of PPI::Token::Whitespace that contained | |
349 | multiple lines. | |
faca2eeb TW |
350 | * Subroutines::ProtectPrivateSubs no longer regards the exportable POSIX |
351 | subroutines whose names begin with underscore as private. RT #38678. | |
ce0abbf1 ES |
352 | * Subroutines::RequireArgUnpacking mishandled a complicated sitation with |
353 | $_ being an array reference. RT #39601. | |
3f6c71d6 ES |
354 | * Variables::RequireLocalizedPunctuationVars now applies to subscripted |
355 | names. RT #29384. | |
1360fcdf | 356 | |
4444d94d ES |
357 | Internals: |
358 | * The guts of Build.PL and Makefile.PL have been rearranged. | |
75713d33 ES |
359 | |
360 | [1.097_002] Released on 2009-03-01 | |
361 | [1.097_001] Released on 2009-03-01 | |
362 | ||
363 | Changes summarized into 1.098 above. For exact details, see Changes on | |
364 | BackPAN. | |
4444d94d | 365 | |
7972f710 | 366 | [1.096] Released on 2009-02-01 |
f0c86a28 | 367 | |
a0d0101d ES |
368 | New Policies: |
369 | * ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator | |
656ab15f | 370 | |
689f8d17 ES |
371 | Policy Changes: |
372 | * Documentation::PodSpelling now has a stop_words_file option. | |
da542cf2 | 373 | * Modules::ProhibitEvilModules now has a modules_file option. |
689f8d17 | 374 | |
656ab15f | 375 | Bug Fixes: |
9634d8bb ES |
376 | * ErrorHandling::RequireCarping will now allow a literal newline |
377 | as well as "\n". Fixed by Kyle Hasselbacher, RT #25046 | |
378 | * Fix InputOutput::ProhibitTwoArgOpen so it allows '-|' or '|-' as the | |
379 | second of two arguments. Patches from Kyle Hasselbacher and Leland | |
380 | Johnson, RT #42384. | |
381 | * InputOutput::RequireBracedFileHandleWithPrint applies to printf as well | |
382 | as print. Fixed by Kyle Hasselbacher, RT #42537. | |
383 | * TestingAndDebugging::RequireUseStrict and | |
384 | TestingAndDebugging::RequireUseWarnings are no longer fooled by a | |
385 | block-scoped pragma. RT #42310. | |
386 | * ValuesAndExpressions::RequireInterpolationOfMetachars allows for escaped | |
387 | backslashes. Fixed by Tom Wyant, RT #38530. | |
563dbceb ES |
388 | * Fix for problem in P::C::Document in dealing with underscores in |
389 | expressions like "use 5.009_001". Patch by Kevin Ryde, RT #36570 and | |
390 | #42089. | |
391 | * Fix in extras/perlcritic.el for a radio button. Patch by Kevin Ryde, RT | |
392 | #42190. | |
656ab15f ES |
393 | * Fix distclean target in Makefile.PL. Patch by Richard Soderberg, |
394 | RT #42088. | |
e7df6986 ES |
395 | * Fix temporary files not being cleaned up after tests. Patch by Kyle |
396 | Hasselbacher, RT #41443. | |
9634d8bb | 397 | * Deal with changes in Pod::Parser v1.36 in test in t/05_utils_pod.t. |
656ab15f | 398 | |
563dbceb ES |
399 | Documentation improvements contributed by Mark Grimes in response to RT |
400 | #41942. | |
401 | ||
9634d8bb ES |
402 | [1.095_001] Released on 2009-01-18 |
403 | ||
404 | Changes summarized into 1.096 above. For exact details, see Changes on | |
405 | BackPAN. | |
406 | ||
6c292dd0 ES |
407 | [1.094001] Released on 2009-01-01 |
408 | ||
409 | Bug Fixes: | |
410 | * Tests would fail on systems without Regexp::Parser installed. | |
411 | ||
d4bd4835 | 412 | [1.094] Released on 2009-01-01 |
e40d4359 | 413 | |
d4bd4835 ES |
414 | Incompatible Changes: |
415 | * The way that "## no critic" markers was refactored. As | |
277b95f6 ES |
416 | a result, we discovered that the syntax for the markers was pretty |
417 | vague. If you didn't do it just right, it would disable all policies, | |
418 | and not just the specific ones that you wanted. So we've tightened this | |
419 | up a bit. If you followed the examples that have been in the docs for | |
420 | the last couple years, then you should be fine. But if you've been | |
421 | using certain other variations in your "## no critic" markers, then you | |
422 | might suddenly find yourself violating the new | |
423 | ProhibtUnrestrictedNoCritic policy. To fix this, just make sure your | |
424 | Policy names appear in parentheses: | |
d5835ca8 JRT |
425 | |
426 | ## no critic Foo, Bar, Baz # wrong! | |
427 | ## no critic Foo Bar Baz # wrong! | |
1c31cb1f ES |
428 | |
429 | ||
d5835ca8 JRT |
430 | ## no critic (Foo, Bar, Baz) # ok! |
431 | ## no critic qw(Foo Bar Baz) # also ok! | |
1c31cb1f | 432 | |
d4bd4835 ES |
433 | * The deprecated $FORMAT variables for Perl::Critic::Policy and |
434 | Perl::Critic::Violation no longer exist. Use the corresponding | |
435 | get_format() and set_format() functions instead. | |
436 | ||
437 | New Policies: | |
438 | * Miscellanea::ProhibitUnrestrictedNoCritic | |
439 | * Miscellanea::ProhibitUselessNoCritic | |
440 | * NamingConventions::Capitalization | |
441 | * Subroutines::ProhibitReturnSort | |
442 | * Variables::ProhibitReusedNames | |
443 | ||
444 | Removed Policies: | |
445 | * NamingConventions::ProhibitMixedCaseSubs and | |
446 | NamingConventions::ProhibitMixedCaseVars have been moved to a separate | |
447 | Perl-Critic-Deprecated distribution. The | |
448 | NamingConventions::Capitalization policy does everything they do, plus | |
449 | more. | |
78afb6d4 | 450 | |
a6539177 | 451 | Policy Changes: |
d4bd4835 ES |
452 | * BuiltinFunctions::ProhibitStringyEval now has an allow_includes option |
453 | that makes it behave (mostly) like Ricardo SIGNES' | |
454 | Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire. | |
6386d95c ES |
455 | * InputOutput::RequireCheckedClose, InputOutput::RequireCheckedOpen, and |
456 | InputOutput::RequireCheckedSyscalls now all support autodie. | |
b4f62a87 ES |
457 | Unfortunately, autodie is currently treated like a module and not a |
458 | pragma, which means that the lexical scoping is not taken into account. | |
d4bd4835 ES |
459 | * InputOutput::RequireCheckedSyscalls now has an exclude_functions |
460 | parameter. | |
5f629e32 ES |
461 | * Modules::ProhibitEvilModules now allows you to specify what the |
462 | description of a use of a bad module should be, to, say, suggest that | |
463 | people use autodie instead of Fatal. | |
464 | * Subroutine::ProhibitExcessComplexity violation descriptions now include | |
465 | the name of the subroutine, thanks to Andreas Koenig, RT #40070. | |
d4bd4835 ES |
466 | * TestingAndDebugging::RequireUseStrict and |
467 | TestingAndDebugging::RequireUseWarnings now have equivalent_modules | |
468 | parameters that allow you to designate other modules as being equivalent | |
469 | to the strict and warnings pragmata. This one is for all you Moose fans | |
470 | out there. :] | |
50759351 ES |
471 | |
472 | Bug Fixes: | |
d4bd4835 ES |
473 | * ControlStructures::ProhibitUnreachableCode would treat package |
474 | statements as unreachable. Fixed by Kevin Ryde. RT #41734 | |
475 | * Fix warning from InputOutput::ProhibitOneArgSelect when select was | |
476 | called with no arguments. RT #41926 | |
50759351 ES |
477 | * Miscellanea::RequireRcsKeywords couldn't find keywords after __END__ |
478 | that didn't look like part of POD. | |
3de28bcc ES |
479 | * Modules::RequireFilenameMatchesPackage would incorrectly complain about |
480 | programs. Yet more greatness contributed by Schwern. RT #39024. | |
d4bd4835 ES |
481 | * If a perlcriticrc file referred to a policy that wasn't installed and |
482 | the profile-strictness option was set to "fatal", | |
483 | Perl::Critic::PolicyFactory fell over instead of reporting the | |
484 | problematic policy name. | |
485 | ||
486 | Miscellanea: | |
487 | * Perl::Critic::Violation will automatically strip trailing periods | |
488 | from your Policy description and explanation strings. This ensures that | |
489 | the punctuation is consistent with the format specified by the user via | |
490 | the -verbose formatting options. | |
491 | ||
492 | New Developer Features: | |
493 | * Perl::Critic::Policy::prepare_to_scan_document() is now checked and a | |
494 | Policy can disable itself for just a single document, which can speed | |
495 | things up. | |
496 | ||
497 | [1.093_03] Released on 2008-12-11 | |
498 | [1.093_02] Released on 2008-10-30 | |
499 | [1.093_01] Released on 2008-09-07 | |
500 | ||
501 | Changes summarized into 1.094 above. For exact details, see Changes in | |
502 | 1.093_003 on BackPAN. | |
50759351 | 503 | |
33e51b94 JRT |
504 | [1.092] Released on 2008-09-02 |
505 | ||
506 | Bug Fixes: | |
507 | * Fixed POD errors that were causing build failures. Sorry | |
508 | about that. | |
509 | ||
5f2b1108 | 510 | [1.091] Released on 2008-09-01 |
57aab077 JRT |
511 | |
512 | New Policies: | |
75a4e4c6 | 513 | * RegularExpressions::RequireDotMatchAnything |
57aab077 | 514 | |
385d181e JRT |
515 | New Features: |
516 | * perlcritic now supports a -pager option, so you can more easily | |
517 | send the output to your favorite pager. You can set this option | |
518 | on the command-line or in your .perlcriticrc file. See the | |
519 | perlcritic perldoc for more details. Credit to Michael Schwern. | |
520 | * The output from "perlcritic -doc PATTERN" will be automatically | |
521 | sent to your pager if you have set the -pager option. | |
1c31cb1f | 522 | |
8e999c4c | 523 | Policy Changes: |
724b3cfb ES |
524 | * CodeLayout::ProhibitQuotedWordLists no longer applies if the list |
525 | contains any non-words, by default. A non-word is anything that does | |
526 | not match /[\w-]+/. You can restore the former behavior by setting the | |
527 | "strict" option. RT #37886. | |
528 | * CodeLayout::ProhibitQuotedWordLists also now applies to the import | |
529 | arguments of a C<use> statement. RT #24467. | |
530 | * ErrorHandling::RequireCheckingReturnValueOfEval now recognizes ternary | |
531 | left-sides as valid checks. | |
5f2b1108 JRT |
532 | * RegularExpressions::RequireExtendedFormatting gains a |
533 | minimum_regex_length_to_complain_about option. Also, regexes that | |
4377d197 ES |
534 | contain only word and whitespace characters are now exempt from this |
535 | policy, by default; you can make it complain about them by turning on | |
536 | the new strict option. Contributed by Michael Schwern. RT #38531. | |
724b3cfb | 537 | * TestingAndDebugging::ProhibitNoWarnings now supports a |
950a9602 ES |
538 | allow_with_category_restriction option, thanks to Michael Schwern. |
539 | RT #38514. | |
1c31cb1f | 540 | * CodeLayout::ProhibitHardTabs now allows leading tabs in qw() word lists |
b979ee62 JRT |
541 | and regexes with the /x modifier. You can still configure this |
542 | policy to forbid all hard tabs, if you like. RT #32440 | |
1b6d3116 ES |
543 | |
544 | Bug Fixes: | |
545 | * perlcritic should now work under PAR. RT #38380. | |
1ffd2487 | 546 | * URL for our repository in META.yml now works for anonymous |
1c31cb1f ES |
547 | checkout. The password is "" (empty). RT #38628. |
548 | * color for high-severity violations is now magenta because | |
385d181e | 549 | it is more redable than yellow on white backgrounds. RT #38511. |
8e999c4c | 550 | |
8eb8a2e5 ES |
551 | [1.090] Released on 2008-07-22 |
552 | ||
553 | Bug Fixes: | |
554 | * Test was incorrectly failing when Regexp::Parser wasn't installed. | |
555 | ||
e6bca1d1 | 556 | [1.089] Released on 2008-07-21 |
a1477a62 | 557 | |
2849151b ES |
558 | Minor Enhancements: |
559 | * -s is now a synonym for --single-policy. | |
560 | ||
57774e85 | 561 | Policy Changes: |
1c31cb1f | 562 | * Subroutines::ProhibitBuiltinHomonyms now also prohibits subroutines |
e4c35446 | 563 | with the same name as a Perl keyword (e.g. if, foreach, while). |
57a6408c | 564 | Inspired by RT #37632. |
89c76499 JRT |
565 | * Subroutines::ProtectPrivateSubs now allows expressions like |
566 | "shift->_some_private_method();". Note that this *only* applies | |
567 | to the "shift" function -- a private method call on the right of any | |
568 | other bareword still causes a violation. RT #34713. | |
57774e85 ES |
569 | * Subroutines::RequireFinalReturn now includes exec in the set of things |
570 | that mark a successful return. RT #37672 | |
571 | * ValuesAndExpressions::ProhibitInterpolationOfLiterals now takes a | |
572 | allow_if_string_contains_single_quote option. Contributed by Ed | |
573 | Avis <ed@membled.com>. RT #36125. | |
574 | * ValuesAndExpressions::RequireInterpolationOfMetachars now supports a | |
575 | rcs_keywords option to allow for the common case where those require | |
576 | dollar signs. | |
dcfc3546 | 577 | |
8eb8a2e5 | 578 | Bug Fixes: |
a1477a62 ES |
579 | * BuiltinFunctions::ProhibitSleepViaSelect would complain if there were |
580 | three undefs as arguments to select(), but one of them was the timeout. | |
581 | RT #37416. | |
d095fae4 CD |
582 | * Reduced false positives in |
583 | RegularExpressions::ProhibitSingleCharAlternation. Thanks to | |
584 | Andy Lester and Elliot Shank test cases. | |
e624a1c0 ES |
585 | * RegularExpressions::ProhibitUnusedCapture would complain if there were |
586 | multiple captures used in a substitution, e.g. s/(.)(.)/$2$1/. | |
587 | * Subroutines::ProhibitAmpersandSigils no longer complains about | |
588 | "sort &foo(...)". | |
deb58212 JRT |
589 | * Makefile.PL, Build.PL and other ".PL" scripts which typically do not |
590 | have a shebang are no longer mistaken as modules. This prevents | |
e6bca1d1 ES |
591 | spurious warnings from Modules::RequireEndWithOne. RT #20481. |
592 | ||
593 | Internals: | |
594 | * Tests are now self compliant. | |
a1477a62 | 595 | |
07eded00 | 596 | [1.088] Released on 2008-07-04 |
eb4540f0 | 597 | |
dd813c73 ES |
598 | New Policies |
599 | * ErrorHandling::RequireCheckingReturnValueOfEval | |
600 | ||
c25eb228 ES |
601 | Policy Changes: |
602 | * ValuesAndExpressions::ProhibitLeadingZeros now accepts octal numbers | |
94ab9170 ES |
603 | for the Unix permissions argument to chmod, dbmopen, mkdir, sysopen, or |
604 | umask, by default. Use the "strict" option to get the old behavior. | |
605 | RT #31977. | |
99ee70a0 ES |
606 | * Due to the consensus at YAPC::NA 2008, |
607 | Variables::ProhibitUnusedVariables default severity has been raised to | |
608 | medium/3. | |
c25eb228 | 609 | |
eb4540f0 ES |
610 | Minor Changes: |
611 | * The perlcritic "--Version" option is now "--version" in order to act | |
612 | like the rest of the world. | |
613 | ||
449d852e | 614 | [1.087] Released on 2008-06-21 |
fc97dc73 ES |
615 | |
616 | Policy Changes: | |
617 | * CodeLayout::ProhibitParensWithBuiltins no longer complains about | |
618 | sort(foo(@x)). | |
b00c448e ES |
619 | * TestingAndDebugging::RequireUseWarnings will not complain about files |
620 | that contain a "use 5.005" statement or similar for perls prior to 5.6. | |
621 | Lesson of the day: computer conferences where you can meet in the real | |
622 | world can clarify conversations greatly. Good to finally meet you Adam. | |
80f16a6a | 623 | * InputOutput::ProhibitTwoArgOpen similarly will not complain if there's |
c25eb228 | 624 | a "use/require 5.005" statement in the file. RT #34385. |
fc97dc73 | 625 | |
de2dc641 ES |
626 | Bug fixes: |
627 | * Perl::Critic can now critique a file named "0". However, PPI will give | |
628 | a parse error until the next version comes out. Fixes RT #36127. | |
558488f7 ES |
629 | * Moved detection of the lack of any enabled Policies from P::C::Config |
630 | to Perl::Critic. This was causing the perlcritic.t in Parrot to fail. | |
631 | Note, however, there are plans afoot to change how Perl::Critic is | |
632 | configured and things that depend upon that may break. Please contact | |
633 | users@perlcritic.tigris.org and tell us how you're using P::C::Config | |
634 | directly so that we can take your needs into account. | |
de2dc641 | 635 | |
809f2b1d | 636 | [1.086] Released on 2008-06-12 |
e424327a | 637 | |
2fa231f5 ES |
638 | Policy Changes: |
639 | * NamingConventions::ProhibitAmbiguousNames now specifies the name that | |
640 | it had problems with in its violation descriptions. | |
9898dfa4 | 641 | |
2fa231f5 ES |
642 | Bug fixes: |
643 | * The color option wasn't being correctly set from a .perlcriticrc. | |
644 | RT #36569. | |
e424327a | 645 | |
2fa231f5 ES |
646 | Minor changes: |
647 | * --colour is now a synonym for --color. | |
e424327a | 648 | |
09c724b8 | 649 | [1.085] Released on 2008-06-07 |
fc1fcfaf | 650 | |
2fa231f5 ES |
651 | New Policies: |
652 | * Documentation::RequirePackageMatchesPodName | |
fc1fcfaf | 653 | |
2fa231f5 ES |
654 | Policy Changes: |
655 | * Variables::ProhibitUnusedVariables detects a few more cases. It's | |
656 | still very limited, though. | |
09c724b8 | 657 | |
2fa231f5 ES |
658 | Bug fixes: |
659 | * ControlStructures::ProhibitUnreachableCode didn't notice "until" was an | |
660 | conditional expression. | |
20cf6b86 | 661 | |
2fa231f5 | 662 | Minor documentation updates. |
20cf6b86 | 663 | |
8896dc87 | 664 | [1.084] Released on 2008-05-24 |
da5b6791 | 665 | |
2fa231f5 ES |
666 | New Features: |
667 | * perlcritic now supports a --list-themes option. | |
668 | * You can specify the maximum number of violations you want per Policy | |
669 | per document. Developers can give a default value for this for a | |
670 | Policy by overriding default_maximum_violations_per_document(). | |
671 | See RequireUseStrict and ProhibitMagicNumbers for examples. | |
672 | ||
673 | Policy Moved: | |
674 | * The ValuesAndExpressions::ProhibitMagicNumbers policy has been moved | |
675 | from Perl::Critic::More into the primary Perl::Critic distribution. | |
676 | ||
677 | New Policies: | |
678 | * Variables::ProhibitUnusedVariables (very dumb, limited initial | |
679 | implementation.) | |
680 | * ControlStructures::ProhibitLabelsWithSpecialBlockNames | |
681 | Contributed by Mike O'Regan. Kickin' ass, Mike. | |
682 | ||
683 | Policy Changes: | |
684 | * ControlStructures::ProhibitUnreachableCode now handles the perl 5.10 | |
685 | "//" and "err" operators. RT #36080 | |
686 | * InputOutput::RequireBriefOpen now ignores opens of STDIN, STDOUT, | |
687 | and STDERR. You're generally trying to make long-lasting global | |
688 | effects when manipulating these. (RT #35774) | |
689 | * RegularExpressions::ProhibitUnusualDelimiters now supports an | |
690 | "allow_all_brackets" option. | |
691 | * RegularExpressions::RequireBracesForMultiline now supports an | |
692 | "allow_all_brackets" option. | |
693 | * TestingAndDebugging::RequireUseStrict now accepts "use Moose::Role" | |
694 | as equivalent to "use strict". (RT #34838) | |
695 | * TestingAndDebugging::RequireUseWarnings now accepts "use Moose::Role" | |
696 | as equivalent to "use warnings". (RT #34838) | |
697 | * ValuesAndExpressions::ProhibitMagicNumbers now accepts constant | |
698 | subroutines. | |
699 | * Variables::ProhibitMatchVars no longer detects "use English;". | |
700 | This problem is detected in a more clear way by | |
701 | Modules::RequireNoMatchVarsWithUseEnglish. | |
702 | * Variables::ProhibitPerl4PackageNames no longer complains about | |
703 | $'/$POSTMATCH. RT #36059 | |
704 | * Variables::RequireLocalizedPunctuationVars now allows the use of "my". | |
705 | RT #33937 | |
706 | ||
707 | Bug Fixes: | |
708 | * No longer falls over if a single file has a parse error. | |
709 | ||
710 | New Developer Features: | |
711 | * If a document specifies a minimum perl version, e.g. "use 5.008003", | |
712 | P::C::Document::highest_explicit_perl_version() will tell you what it | |
713 | is. | |
714 | * The parameter to P::C::Policy::initialize_if_enabled is now a | |
715 | P::C::PolicyConfig object instead of a hash reference. | |
716 | ||
717 | Minor Changes: | |
718 | * LOTS of documentation updates. | |
719 | * A few more statistics are emitted by perlcritic with the --statistics | |
720 | option. | |
721 | * perlcritic --profile-proto now includes policy abstracts in its | |
722 | output. | |
723 | ||
724 | Prerequisites: | |
725 | * Now depends upon PPI 1.203. | |
726 | * New dependency upon version. | |
267b39b4 | 727 | |
8896dc87 ES |
728 | [1.083_006] Released on 2008-05-20 |
729 | [1.083_005] Released on 2008-05-19 | |
730 | [1.083_004] Released on 2008-05-18 | |
731 | [1.083_003] Released on 2008-05-17 | |
732 | [1.083_002] Released on 2008-05-17 | |
733 | [1.083_001] Released on 2008-04-13 | |
734 | ||
2fa231f5 ES |
735 | Changes summarized into 1.084 above. For exact details, see Changes in |
736 | 1.083_006 on BackPAN. | |
8896dc87 | 737 | |
3c1084d4 | 738 | [1.082] Released on 2008-03-08 |
e95460bd | 739 | |
2fa231f5 ES |
740 | New Features: |
741 | * A new metadata system for defining policy parameters/options has been | |
742 | added. This makes the life of policy authors easier because | |
743 | configuration validation and parsing can be taken care of | |
744 | automatically, in most cases. This allows greater integration with | |
745 | IDEs and allows the perlcritic "--profile-proto" option to produce | |
746 | better output. | |
747 | ||
748 | Note: This change does NOT REQUIRE ANY CHANGES to policies outside of | |
749 | this distribution; they should continue to work as is. However, use | |
750 | of this facility can reduce the size of your code and provide the | |
751 | means for tools to discover more about your policy. If this change | |
752 | does break any of your policies, please let us know. | |
753 | ||
754 | To learn how to take advantage of this facility, read | |
755 | Perl::Critic::DEVELOPER and look at the source of any of the | |
756 | configurable policies included in this distribution. | |
757 | ||
758 | There is a discussion of the design considerations for this facility in | |
759 | the source repository under doc/PolicyParameter_Notes.pod. | |
760 | ||
761 | * Added support for "criticism-fatal" option in your perlcriticrc | |
762 | file. This will be used by the criticism pragma to cause execution | |
763 | to abort if the file contains any violations. | |
764 | ||
765 | New Policy: | |
766 | * Module::RequireNoMatchVarsWithUseEnglish | |
767 | ||
768 | Policy Changes: | |
769 | * Added an allow_last_statement_to_be_comma_separated_in_map_and_grep | |
770 | option to ValuesAndExpressions::ProhibitCommaSeparatedStatements. | |
771 | Partial response to http://rt.cpan.org/Public/Bug/Display.html?id=27654. | |
772 | * ControlStructures::ProhibitPostfixControls gains the ability to have | |
773 | the flow control statements allowed to be modified. This in response | |
774 | to RT #29540. | |
775 | * TestingAndDebugging::RequireUseStrict now accepts "use Moose" as | |
776 | equivalent to "use strict". | |
777 | * TestingAndDebugging::RequireUseWarnings now accepts "use Moose" as | |
778 | equivalent to "use warnings". | |
779 | ||
780 | Bug Fixes: | |
781 | * RT #31281 perlcritic doesn't recognize "#!/bin/env perl" shebang | |
782 | * Replace usage of Unicode property escapes with POSIX character classes | |
783 | order to restore 5.6 compatability. | |
784 | * RT #30388 ValuesAndExpressions::ProhibitVersionStrings complained | |
785 | about numbered directories in "use lib". | |
786 | * Fixed handling of badly behaved spelling programs in PodSpelling. | |
351a08b3 | 787 | |
3c1084d4 ES |
788 | [1.081_006] Released on 2008-03-02 |
789 | [1.081_005] Released on 2007-12-29 | |
90c56584 | 790 | [1.081_004] Released on 2007-12-20 |
28b227a2 | 791 | [1.081_003] Released on 2007-12-16 |
2f3bba7c | 792 | [1.081_002] Released on 2007-12-16 |
2f3bba7c | 793 | [1.081_001] Released on 2007-12-15 |
247cca4d | 794 | |
2fa231f5 ES |
795 | Changes summarized into 1.082 above. For exact details, see Changes in |
796 | 1.081_006 on BackPAN. | |
3d075ed6 | 797 | |
da251890 ES |
798 | [1.080] Released on 2007-11-11 |
799 | ||
2fa231f5 ES |
800 | New Features: |
801 | * Allow a "## no critic" statement after a shebang on line 1 of a | |
802 | file. This allows users to block violations that apply to | |
803 | whole files and still allow shebangs. | |
804 | ||
805 | New Policies: (funded by a Perl Foundation grant) | |
806 | * InputOutput::ProhibitExplicitStdin | |
807 | * RegularExpressions::ProhibitFixedStringMatches | |
808 | * RegularExpressions::RequireBracesForMultiline | |
809 | * RegularExpressions::ProhibitUnusualDelimiters | |
810 | * RegularExpressions::ProhibitUnusedCapture | |
811 | * RegularExpressions::ProhibitComplexRegexes | |
812 | * RegularExpressions::ProhibitSingleCharAlternation | |
813 | * RegularExpressions::ProhibitEscapedMetacharacters | |
814 | * RegularExpressions::ProhibitEnumeratedClasses | |
815 | * InputOutput::RequireBriefOpen | |
816 | * InputOutput::RequireCheckedSyscalls | |
817 | ||
818 | Other New Policies | |
819 | * ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions | |
820 | ||
821 | Policy Changes: | |
822 | * Variables::ProhibitConditionalDeclarations now permits you to local-ize | |
823 | variables in conditional declarations. This makes sense, since | |
824 | C<local> is actually a variable modifier, rather than a declaration. | |
825 | Thanks to David Golden for reporting this. | |
826 | ||
827 | New Developer Features: | |
828 | * Perl::Critic::Utils::PPIRegexp encapsulates interaction with | |
829 | the PPI Regexp token classes. Those classes have very sparse | |
830 | APIs, so this package hides away the ugly fiddling with PPI | |
831 | internals. | |
832 | * Added a new optional_modules parameter for the .run syntax. | |
833 | ||
834 | Bug fixes: | |
835 | * PPI::Structure::List can now contain multiple children, | |
836 | so P::C::Utils::parse_arg_list() needs to handle it. | |
837 | ||
838 | This was done in the process of fixing | |
839 | http://rt.cpan.org/Ticket/Display.html?id=24924, which was a problem | |
840 | with TestingAndDebugging::RequireTestLabels. | |
841 | ||
842 | * ValuesAndExpressions::ProhibitLongChainsOfMethodCalls wasn't resetting | |
843 | chain length when it ran into the end of a sub-expression. | |
844 | ||
845 | http://rt.cpan.org/Public/Bug/Display.html?id=30040 | |
846 | ||
847 | * ValuesAndExpressions::ProhibitCommaSeparatedStatements was reporting | |
848 | false positives when builtins which accept both no and multiple | |
849 | arguments were involved. | |
850 | ||
851 | http://rt.cpan.org/Public/Bug/Display.html?id=27654 | |
852 | ||
853 | Internals: | |
854 | * Removed all use of Carp in favor of exceptions. | |
855 | ||
856 | Prerequisites: | |
857 | * Now requires PPI 1.201. A number of workarounds for PPI bugs have been | |
858 | removed. | |
859 | * New dependency upon Exception::Class. | |
860 | ||
861 | Installation: | |
862 | * Use Devel::CheckOS to see whether Perl::Critic is being installed on | |
863 | a Solaris system and warn about tar(1) chopping file names off if it | |
864 | is. | |
a2f58b24 | 865 | |
3c1084d4 ES |
866 | [1.079_003] Released on 2007-10-22 |
867 | [1.079_002] Released on 2007-10-21 | |
868 | [1.079_001] Released on 2007-10-09 | |
869 | ||
2fa231f5 ES |
870 | Changes summarized into 1.080 above. For exact details, see Changes in |
871 | 1.079_003 on BackPAN. | |
3c1084d4 | 872 | |
b4d9a58e ES |
873 | [1.078] Released on 2007-09-19 |
874 | ||
2fa231f5 ES |
875 | Restore Perl::Critic::TestUtils::should_skip_author_tests() and |
876 | get_author_test_skip_message(). Some Perl::Critic add-on distributions | |
877 | are using them. | |
b4d9a58e | 878 | |
496afbe0 ES |
879 | [1.077] Released on 2007-09-15 |
880 | ||
2fa231f5 ES |
881 | Note: if you don't have any problems installing Perl::Critic 1.076, there |
882 | is no need to upgrade to this version. There are no functionality | |
883 | changes. This release only contains changes related to installation that | |
884 | a few people were experiencing. | |
496afbe0 | 885 | |
2fa231f5 ES |
886 | Minor changes: |
887 | * Removed build-time use of Readonly, again, due to problems some people | |
888 | were having when trying to compile the code by hand, rather than using | |
889 | CPAN(PLUS)?. | |
890 | * Don't run author tests if there's a .svn directory present because | |
891 | users who grabbed the code from the source repository were executing | |
892 | them and getting failures. | |
893 | * Don't generate optional, module-hiding test wrappers if author tests | |
894 | are not enabled. | |
496afbe0 ES |
895 | |
896 | ||
bb9f1668 ES |
897 | [1.076] Released on 2007-09-07 |
898 | ||
2fa231f5 ES |
899 | It appears from reports on the 1.075_001 release that the subroutine |
900 | sigils were indeed the problem. Release to the general populace. | |
bb9f1668 ES |
901 | |
902 | ||
70f3f307 ES |
903 | [1.075_001] Released on 2007-09-06 |
904 | ||
2fa231f5 ES |
905 | Bug Fixes: |
906 | Undo the changes in 1.073 and 1.074. Instead, stop using the subroutine | |
907 | sigil in import and export lists. It is suspected that the problem lies | |
908 | with Exporter stripping off ampersands. | |
70f3f307 | 909 | |
a93bf8bd ES |
910 | [1.074] Released on 2007-09-04 |
911 | ||
2fa231f5 ES |
912 | Bug Fixes: |
913 | Repeat the Makefile.PL change on | |
914 | t/generate_without_optional_dependencies_wrappers.PL. | |
915 | I love CPAN Testers. | |
a93bf8bd | 916 | |
fb768776 ES |
917 | [1.073] Released on 2007-09-04 |
918 | ||
2fa231f5 ES |
919 | Bug Fixes: |
920 | Work around problems with the combination of Exporter & Readonly in | |
921 | Makefile.PL on some machines. | |
fb768776 | 922 | |
5d0abeb9 | 923 | [1.072] Released on 2007-09-03 |
34cc6052 | 924 | |
2fa231f5 ES |
925 | Bug Fixes: |
926 | * The Makefile generated by Makefile.PL was not syntactically correct | |
927 | according to some versions of Solaris. Thanks to Diab Jerius | |
928 | (DJERIUS) for discovery and testing. | |
929 | * Fixed mis-definition of "quiet" value for the "--profile-strictness" | |
930 | option. | |
931 | * Enhanced testing with the absence of optional modules. | |
34cc6052 | 932 | |
6d4236fe | 933 | [1.071] Released on 2007-08-24 |
6a0a13da | 934 | |
2fa231f5 | 935 | The "Brown Paper Bag" Release |
caf00bc9 | 936 | |
2fa231f5 ES |
937 | Bug Fixes: |
938 | * Tests would not pass in environments that did not have all optional | |
939 | dependencies installed. | |
caf00bc9 ES |
940 | |
941 | [1.07] Released on 2007-08-21 | |
942 | ||
2fa231f5 ES |
943 | New Policies: (funded by a Perl Foundation grant) |
944 | * BuiltinFunctions::ProhibitBooleanGrep | |
945 | * BuiltinFunctions::ProhibitComplexMappings | |
946 | * Documentation::PodSpelling | |
947 | * InputOutput::ProhibitJoinedReadline | |
948 | * Subroutines::ProhibitManyArgs | |
949 | * Subroutines::RequireArgUnpacking | |
950 | * ValuesAndExpressions::ProhibitImplicitNewlines | |
951 | * Variables::RequireLocalizedPunctuationVars | |
952 | ||
953 | Other New Policies | |
954 | * Subroutines::ProhibitNestedSubs | |
955 | ||
956 | New Features: | |
957 | * The "perlcritic --profile-proto" output now includes the "add_themes" | |
958 | parameter for each policy. | |
959 | * The perlcritic "--strict-profile" option has been replaced with a | |
960 | "--profile-strictness" option. This new option takes values of "warn" | |
961 | (the default), "fatal", and "quiet", which controls what happens with | |
962 | ignorable problems in a .perlcriticrc file. | |
963 | ||
964 | New Developer Features: | |
965 | * Perl::Critic::Policy now has an overridable initialize_if_enabled() | |
966 | method which allows a Policy to perform expensive initialization after | |
967 | it has been determined whether the user has it enabled or not. Also, | |
968 | this method allows a Policy to say that it should be disabled | |
969 | regardless of what the user says. | |
970 | ||
971 | Actually, use of this method is now encouraged over using a | |
972 | constructor. | |
973 | ||
974 | Other Stuff: | |
975 | * Now requires the Readonly module in order to be more self-compliant. | |
1852a12c | 976 | |
7e4ad2a0 | 977 | [1.061] Released on 2007-07-24 |
1852a12c | 978 | |
2fa231f5 ES |
979 | Bug Fixes: |
980 | * Fix P::C::Theme-- Exporter in Perl 5.6 does not export import(), so you | |
981 | must subclass it. *sigh* | |
982 | * Fix P::C::Config::_validate_and_save_theme()-- eval of an empty string | |
983 | does not reset $@/$EVAL_ERROR in Perl 5.6. | |
839af03d | 984 | |
2fa231f5 ES |
985 | Big thanks to Anirvan Chatterjee for identifying and helping debug these |
986 | issues. | |
6a0a13da | 987 | |
a8552b47 | 988 | [1.06] Released on 2007-06-27 |
2e0f1c94 | 989 | |
2fa231f5 ES |
990 | New Features: |
991 | * perlcritic now emits errors for all the problems it can find for the | |
992 | global options in the command-line parameters and .perlcriticrc file, | |
993 | rather than bailing on the first one it encounters. | |
2e0f1c94 | 994 | |
2fa231f5 ES |
995 | * perlcritic now has a "--strict-profile" option which will make warnings |
996 | about problems in a profile fatal. | |
66186ba3 | 997 | |
2fa231f5 ES |
998 | * perlcritic now has a "--statistics-only" option which suppresses the |
999 | display of individual violations and only shows the additional output | |
1000 | produced by the "--statistics" option. | |
738830ba | 1001 | |
2fa231f5 ES |
1002 | Feature requests: |
1003 | * A value for "color" can now be specified in a .perlcriticrc. | |
1004 | http://rt.cpan.org/Ticket/Display.html?id=24877 | |
25792f52 | 1005 | |
2fa231f5 ES |
1006 | New Policies: |
1007 | * ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters | |
1008 | As suggested in http://rt.cpan.org/Ticket/Display.html?id=23290. | |
1009 | * ValuesAndExpressions::ProhibitLongChainsOfMethodCalls | |
1010 | * Modules::ProhibitExcessMainComplexity | |
1011 | As suggested in http://rt.cpan.org/Ticket/Display.html?id=24699 | |
68a933bc | 1012 | |
2fa231f5 ES |
1013 | Minor changes: |
1014 | * The perlcritic "--profile-proto" option now emits the short names for | |
1015 | policies, rather than the full ones. | |
7b94eb6d | 1016 | |
2fa231f5 ES |
1017 | * The "-profileproto" and "-singlepolicy" options have been renamed to |
1018 | "-profile-proto" and "-single-policy" in order to make the growing | |
1019 | number of command-line options comprehensible. The change of | |
1020 | "singlepolicy" also affects your F<.perlcriticrc> file. | |
738830ba | 1021 | |
c5609030 JRT |
1022 | [1.053] Released on 2007-06-02 |
1023 | ||
2fa231f5 | 1024 | *DEVELOPMENT RELEASE* |
c5609030 | 1025 | |
2fa231f5 ES |
1026 | Bug Fixes: |
1027 | Fixed bug in 15_statustics.t test script, which caused the build | |
1028 | to fail on machines that don't have Perl::Tidy installed. | |
c5609030 | 1029 | |
8ff941e7 | 1030 | [1.052] Released on 2007-06-01 |
e1a212fa | 1031 | |
2fa231f5 | 1032 | *DEVELOPMENT RELEASE* |
c5609030 | 1033 | |
2fa231f5 ES |
1034 | New Features: |
1035 | * perlcritic now emits a summary about the scanned code when enabled by | |
1036 | the "-statistics" option. | |
576f6411 | 1037 | |
2fa231f5 ES |
1038 | Policy Enhancements: |
1039 | * InputOutput::ProhibitBacktickOperators can now be configured to only | |
1040 | check in void contexts. | |
464d4c66 | 1041 | |
2fa231f5 ES |
1042 | Bug Fixes: |
1043 | * 27073: False positive in RequireUpperCaseHeredocTerminator | |
1044 | * 27065: CodeLayout::ProhibitTrailingWhitespace breaks under Perl 5.6.1 | |
1045 | * 26462: ControlStructures::ProhibitCascadingIfElse pod typo | |
1046 | * ValuesAndExpressions::ProhibitCommaSeparatedStatements was complaining | |
1047 | about multiple values in the list to be iterated over by a foreach loop. | |
1048 | * Corrected PBP page numbers for some policies (Quinn Weaver). | |
db5e49e8 | 1049 | |
be3d6b0b JRT |
1050 | [1.051] Released on 2007-04-12 |
1051 | ||
2fa231f5 | 1052 | *DEVELOPMENT RELEASE* |
be3d6b0b | 1053 | |
2fa231f5 ES |
1054 | No new policies. |
1055 | No particular bug fixes. | |
f1a58c7c | 1056 | |
2fa231f5 ES |
1057 | Internals: |
1058 | * Added several new utility functions to support the StricterSubs distro. | |
1059 | Also, some of the existing functions in Perl-Critic-Utils have | |
1060 | changed in ways that might break your custom policies. | |
f1a58c7c | 1061 | |
2fa231f5 ES |
1062 | Miscellanea: |
1063 | * Updated Emacs plugin (Courtesy Josh ben Jore). | |
1064 | See extras/perlcritic.el for details. | |
1065 | * Added copy of BBEdit plugin (Courtesy of Josh Clark). | |
1066 | See extras/perl_critic_for_bbedit-1_0.zip for details | |
f1a58c7c | 1067 | |
a65bc95d JRT |
1068 | [1.05] Released on 2007-03-19 |
1069 | ||
2fa231f5 ES |
1070 | Bug Fixes: |
1071 | * 25557: t/20_policy_prohibittrailingwhitespace.t fails on Perl 5.8.0 | |
a65bc95d | 1072 | |
47415a5b | 1073 | [1.04] Released on 2007-03-18 |
7e50c40d | 1074 | |
2fa231f5 ES |
1075 | Bug Fixes: |
1076 | * 25008: Subroutines::RequireFinalReturn should allow "throw" | |
1077 | * 25085: False Positive - Heredoc terminator must be quoted | |
1078 | * 18423: VERSION check does not notice Readonly::Scalar version | |
1079 | * 25449: Proposal of $VERSION declaration (DUPLICATE) | |
7e50c40d | 1080 | |
2fa231f5 ES |
1081 | New Policies: |
1082 | * CodeLayout::ProhibitTrailingWhitespace | |
1083 | * ValuesAndExpressions::ProhibitCommaSeparatedStatements | |
1084 | * Variables::ProhibitPerl4PackageNames | |
74dfa143 | 1085 | |
2fa231f5 ES |
1086 | Policy Enhancements: |
1087 | * Subroutines::RequireFinalReturn can now be configured to recognize | |
1088 | your custom functions that behave like "die" or "exit". | |
1089 | * Documentation::RequirePodSections can be configured to match | |
1090 | Module::Starter:PBP or to really match the PBP book. | |
7e50c40d | 1091 | |
34883f65 | 1092 | [1.03] Released on 2007-02-13 |
7807e1bf | 1093 | |
2fa231f5 ES |
1094 | Bug Fixes: |
1095 | * Fixed a few more problems with the %f, %F, and %r format escapes. | |
1096 | * I forgot to put Conway's perlcriticrc file in the MANIFEST. Sorry. | |
2d106991 | 1097 | |
2fa231f5 ES |
1098 | Interface Changes: |
1099 | * Perl::Critic::Utils automatically exports everything. However, | |
1100 | this is deprecated. In the future, you must request your exports. | |
2d106991 | 1101 | |
2fa231f5 ES |
1102 | Policy Changes: |
1103 | * Duplicate violations of RequireExcplicitPackage are now squelched, | |
1104 | in the same way as RequireUseStrict and RequireUseWarnings. | |
7807e1bf | 1105 | |
dd85a2e2 | 1106 | [1.02] Released on 2007-02-11 |
7580d822 | 1107 | |
2fa231f5 ES |
1108 | Bug Fixes: |
1109 | * "undef" incorrectly triggered ProhibitMutatingListFunctions. | |
1110 | * 24876: %f and %F escapes not working in custom "verbose" format strings. | |
1111 | * 24875: Documentation bug in TestingAndDebugging::ProhibitNoStrict | |
7580d822 | 1112 | |
2fa231f5 ES |
1113 | New Policies: |
1114 | * InputOutput::RequireCheckedOpen | |
1115 | * InputOutput::RequireCheckedClose | |
9fb2d1dc | 1116 | |
2fa231f5 ES |
1117 | Other Cool Stuff: |
1118 | * Added Conway's own suggested Perl::Critic configuration as | |
1119 | examples/perlcriticrc-conway. | |
dd85a2e2 | 1120 | |
2fa231f5 ES |
1121 | * See the examples/ directory for some neat demonstrations of using |
1122 | the Perl::Critic API. Contributed by Elliot Shank. | |
dd85a2e2 | 1123 | |
2fa231f5 ES |
1124 | Interface Changes: |
1125 | * Perl::Critic::Utils no longer exports anything by default. Policies | |
1126 | outside the distribution will need to specify what exactly they need | |
1127 | from this module. There are a number of tags that can be used in | |
1128 | addition to individual imports. | |
bbf4108c | 1129 | |
839f3ee0 JRT |
1130 | [1.01] Released on 2007-01-24 |
1131 | ||
2fa231f5 ES |
1132 | PRODUCTION RELEASE: You may now consider the public Perl::Critic |
1133 | API as "stable." Future minor releases will focus on bug fixes, | |
1134 | new policies, and internal refactoring. | |
16cfe89e | 1135 | |
2fa231f5 ES |
1136 | Bug Fixes: |
1137 | * Fixed memory leak. This was reported by the Parrot team at | |
1138 | http://rt.perl.org/rt3/Ticket/Display.html?id=41230 | |
16cfe89e | 1139 | |
c10663c1 | 1140 | [0.23] Released on 2007-01-19 |
e2d4c0f0 | 1141 | |
2fa231f5 ES |
1142 | Bug Fixes: |
1143 | * 23994: Test 56 in t/05_utils.t of Perl::Critic v0.22 fails | |
1144 | * 24005: test 95 in t/13_bundled_policies fails in 0.22 | |
9eb1fee5 | 1145 | |
e2d4c0f0 | 1146 | |
2fa231f5 ES |
1147 | Groovy New Features: |
1148 | * Added '%F' to the Violation format specifications. This will | |
1149 | give you just the name of file where the violation occurred | |
1150 | (i.e. without the path). | |
34510f7e | 1151 | |
2fa231f5 ES |
1152 | * Improved validation of .perlcriticrc file. An invalid |
1153 | default setting will now cause a fatal exception. A | |
1154 | strange-looking policy name will cause a warning. | |
0d63e03a | 1155 | |
98768f5b | 1156 | |
2fa231f5 ES |
1157 | Interface Changes: |
1158 | * The syntax for theme expressions has changed. Instead of using | |
1159 | mathematical operators qw(+ * -) you must now use the logical | |
1160 | operators qw(|| && !). See the Perl::Critic docs for more info. | |
496afbe0 | 1161 | |
2fa231f5 ES |
1162 | * The @GLOBALS and @BUILTINS variables are no longer exported by |
1163 | Perl::Critic::Utils. Use the is_perl_global() and is_perl_builtin() | |
1164 | functions instead. | |
98768f5b | 1165 | |
2fa231f5 ES |
1166 | * Perl::Critic::Policy::policy_parameters() has bee renamed to |
1167 | Perl::Critic::Policy::supported_paramters(). This was an | |
1168 | undocumented feature anyway, so it shouldn't affect anyone. | |
98768f5b JRT |
1169 | |
1170 | ||
2fa231f5 ES |
1171 | Other Internal Changes: |
1172 | * Perl::Critic now requires B::Keywords v1.05 or newer. | |
98768f5b | 1173 | |
2fa231f5 ES |
1174 | * A few internal classes have been refactored. As a result, |
1175 | Set::Scalar is no longer a required dependency. | |
e2d4c0f0 JRT |
1176 | |
1177 | ||
59c20113 | 1178 | [0.22] Released on 2006-12-15 |
4994405b | 1179 | |
2fa231f5 ES |
1180 | New Features: |
1181 | * Introduced named severity levels: gentle, stern, harsh, cruel, brutal | |
1182 | You can use these named levels instead of the numeric ones. | |
1183 | For example: "perlcritic --severity=cruel MyModule.pm" | |
1184 | Or just: "perlcritic --cruel MyModule.pm" | |
fd5bd7b5 | 1185 | |
2fa231f5 ES |
1186 | * For perlcritic, the "-List" option has been renamed to |
1187 | "-profileproto". The output now includes the names of the | |
1188 | parameters that each Policy supports, if any. | |
fd5bd7b5 | 1189 | |
2fa231f5 ES |
1190 | * Improved validation of Policy parameters in your F<.perlcriticrc> |
1191 | Any invalid parameter now causes a fatal exception. | |
0bcb38c0 | 1192 | |
2fa231f5 ES |
1193 | Major Changes: |
1194 | * Reassigned themes for most policies. Now there are fewer | |
1195 | themes and they are organized around programming concepts | |
1196 | instead of severity levels. If you have assigned your own | |
1197 | themes to any Policies, they should still work as expected. | |
0bcb38c0 | 1198 | |
2fa231f5 ES |
1199 | Policy Changes: |
1200 | * ErrorHandling::RequireCarping will not complain if it can figure | |
1201 | out that the die or warn message will always end in a newline | |
1202 | ("\n"). The idea is that, if you put the newline there, you | |
1203 | don't indend for there to be any file/line/stack information | |
1204 | emitted, in which case you really don't want carp/croak. | |
e2365912 | 1205 | |
2fa231f5 ES |
1206 | You can restore the old strict behavior by giving the policy |
1207 | a false value for "allow_messages_ending_with_newlines" in your | |
1208 | configuration. | |
e97e0a99 | 1209 | |
2fa231f5 | 1210 | Misc Changes: |
fd5bd7b5 | 1211 | |
2fa231f5 | 1212 | Added single-letter uppercase alternatives for some perlcritic options. |
4994405b | 1213 | |
82bdf993 | 1214 | [0.21_01] Released on 2006-12-03 |
3f5f950c | 1215 | |
2fa231f5 ES |
1216 | New Policies: |
1217 | * TestingAndDebugging::ProhibitProlongedStrictureOverride | |
1218 | * ControlStructures::ProhibitMutatingListFunctions | |
1219 | ||
1220 | New Features: | |
1221 | * Say "perlcritic -List" to get an expanded listing of all Policies. | |
1222 | The format is suitable for use as your .perlcriticrc file. | |
1223 | * Say "perlcritic -doc PATTERN" to get the documentation for all | |
1224 | Policies that match m/PATTERN/imx. This is a little easier than | |
1225 | typing in the full name of the Policy module with "perldoc". | |
1226 | * Say "perlcritic --singlepolicy PATTERN" to use one and only one | |
1227 | policy. | |
1228 | * Can now specify exceptions to Variables::ProhibitPackageVars, | |
1229 | for packages like File::Find that only interface through | |
1230 | package variables. | |
1231 | ||
1232 | Bug Fixes: | |
1233 | * 21713 false positive for parens used with substr and unpack. | |
1234 | * 22890 allow Rcs keywords in POD. | |
1235 | ||
1236 | Internals: | |
1237 | * Testing system overhauled. Details on the Policy/subtest | |
1238 | framework is in t/run.t. | |
1239 | * Added Perl::Critic::Utils::words_from_string. This is safer | |
1240 | than plain old C<split /\s+/>. | |
095ee6e3 | 1241 | |
7f03b11b | 1242 | [0.21] Released on 2006-11-05 |
1876bbe8 | 1243 | |
2fa231f5 ES |
1244 | New Policies: |
1245 | * BuiltinFunctions::ProhibitReverseSortBlock | |
1246 | * BuiltinFunctions::ProhibitVoidGrep | |
1247 | * BuiltinFunctions::ProhibitVoidMap | |
1248 | * CodeLayout::RequireConsistentNewlines | |
1249 | * Modules::RequireFilenameMatchesPackage | |
1250 | * TestingAndDebugging::RequireTestLabels | |
1251 | * ValuesAndExpressions::ProhibitMismatchedOperators | |
1252 | ||
1253 | New Features: | |
1254 | * Introduced policy "themes." Themes are arbitrary names that can | |
1255 | be used to identify a group of related Policies. You can select | |
1256 | your favorite policies by combining themes in a mathematic expression | |
1257 | such as "pbp * (danger + risky)". See POD for details. | |
1258 | * perlcritic output is colorized if you have Term::ANSIColor. This | |
1259 | only works on non-Win32 platforms. Use -nocolor switch to disable. | |
1260 | * Say "perlcritic -count" to get just the the total number of | |
1261 | violations per file. Use this feature to quickly identify hot-spots. | |
1262 | * Use the -only switch to choose only from policies mentioned in your | |
1263 | .perlcriticrc file. This is useful if you usually only want to | |
1264 | work with a small subset of the policies. | |
1265 | * Default values for most of the perlcritic and Perl::Critic options | |
1266 | can now be defined in your .perlcriticrc file. See POD for details. | |
1267 | ||
1268 | Bug Fixes: | |
1269 | * 21236: wrong page number for "printing to filehandles" | |
1270 | * 21916: File handle ... wrong page reference in PBP [DUPE] | |
1271 | * 21714: false positive for capture var used in ternary condition | |
1272 | * 21718: No skip for File::Slurp in includes.t | |
1273 | * ProhibitBarewordFilehandles doesn't complain if you open | |
1274 | STDIN, STDOUT or STDERR. | |
1275 | * Parrot 40564: Subroutines::RequireFinalReturn should allow die, | |
1276 | exit, etc. | |
1277 | * Each "for" and "foreach" loop now adds one point to the McCabe | |
1278 | complexity score. | |
1279 | ||
1280 | Other Stuff: | |
1281 | * The internals of Perl::Critic have been significantly refactored, | |
1282 | but should still be compatible with existing third-party Policies. | |
1283 | * Added author-only tests to the release, but disabled by default | |
1284 | * New Perl::Critic::Utils::shebang_line() method | |
1285 | * Support for filename-based policies | |
1286 | * Additional prerequisite: Set::Scalar | |
1287 | * Now requires PPI version 1.118 | |
1876bbe8 CD |
1288 | |
1289 | [0.20] Released on 2006-09-10 | |
9ee6a397 | 1290 | |
2fa231f5 ES |
1291 | Perl::Critic now requires PPI version 1.117, which fixes |
1292 | several bugs that were introduced in version 1.116. | |
9ee6a397 | 1293 | |
2fa231f5 ES |
1294 | Bug Fixes: |
1295 | * 21079: grep clears @SITE_POLICIES | |
1296 | * 21352: Test failures with PPI 1.117 | |
1297 | * 11365: sub DESTROY detected as a builtin homonym | |
9ee6a397 JRT |
1298 | |
1299 | [0.19] Released on 2006-08-20 | |
f7231315 | 1300 | |
2fa231f5 ES |
1301 | New Policies: |
1302 | * BuiltinFunctions::ProhibitStringySplit | |
1303 | * ControlStructures::ProhibitDeepNests | |
1304 | * RegularExpressions::ProhibitCaptureWithoutTest | |
1305 | * Variables::RequireLexicalLoopIterator | |
b22c8627 | 1306 | |
2fa231f5 ES |
1307 | New Features: |
1308 | * "perlcritic -quiet" suppresses the "source OK" message. | |
1309 | * Variables::ProhibitPunctuationVars is now configurable. | |
8b5892fc | 1310 | |
2fa231f5 ES |
1311 | Bug Fixes: |
1312 | * 20965: "Hard tabs used at" shouldn't check __DATA__ | |
1313 | * 21070: ProhibitNoisyQuotes hates overload | |
1314 | * Punctuation variables are now exempt from ProhibitLocalVars | |
c4a2374c | 1315 | |
2fa231f5 ES |
1316 | Other Stuff: |
1317 | * Test coverage is now over 95% | |
876c81c6 | 1318 | |
be8538d2 | 1319 | [0.18_01] Released on 2006-08-06 |
b22c8627 | 1320 | |
2fa231f5 ES |
1321 | New Policies: |
1322 | * Variables::RequireNegativeIndices | |
1323 | * InputOutput::ProhibitInteractiveTest | |
1324 | * ErrorHandling::RequireCarping | |
1325 | ||
1326 | Bug Fixes: | |
1327 | * RequireTidyCode tests fail if user has custom .perltidyrc file | |
1328 | * 20612: RequirePerlTidy was ignoring HEREDOCs | |
1329 | * 20659: __END__ statement considered "unreachable" | |
1330 | * Fix for PPI::XS (no C<use overload '""'> support) | |
1331 | * Support for 'goto' in ProhibitAmpersandSigils and | |
1332 | Subroutines::RequireFinalReturn | |
1333 | ||
1334 | Performance Enhancements: | |
1335 | * Introduced Perl::Critic::Document class. This is a facade for | |
1336 | PPI::Document which internally caches search results. This | |
1337 | reduces the running time by about 35%. The facade should be | |
1338 | invisible, unless you are doing something really sneaky. | |
1339 | * Extraction of the 'diagnostics' information is postponed | |
1340 | until it is really needed. Speedup has not been measured. | |
1341 | * Calls to helper-subs have been reordered for maximum efficiency. | |
1342 | ||
1343 | Other Cool Stuff: | |
1344 | * Includes updated version of perlcritic mode for emacs. See | |
1345 | "extras/perlcritic.el" for details. | |
b22c8627 | 1346 | |
be8538d2 | 1347 | [0.18] Released on 2006-07-16 |
0c43b2ce | 1348 | |
2fa231f5 ES |
1349 | Bug Fixes: |
1350 | * 14855: Home discovery is dangerously naive. | |
1351 | * 20060: Incorrect page numbers in ProhibitLeadingZeros | |
1352 | and RequireNumberSeparator policies. | |
1353 | * 20068: .perlrc file - inconsistent documentation | |
1354 | * 20254: "use vars qw(@EXPORT_OK)" not recognized | |
1355 | * 20463: No-case heredoc terminator incorrectly detected as lower case. | |
1356 | * ProhibitOneArgBless doesn't understand "bless {} => $class;" | |
1357 | * ProhibitExcessComplexity doesn't count 'while' and 'until' stmnts | |
1358 | * ProhibitLeadingZeros was falsely hits '.0456' | |
1359 | ||
1360 | Enhancements: | |
1361 | * If File::HomeDir is available, we use it to locate the | |
1362 | .perlcriticrc file. This should help make Perl::Critic | |
1363 | more portable to Win32 platforms. If File::HomeDir is | |
1364 | not installed, we resort to looking at the usual | |
1365 | environment variables. | |
1366 | ||
1367 | Other Stuff: | |
1368 | * Added "perlcritic.el", which is a super-cool emacs minor-mode | |
1369 | that runs perl-critic on the current buffer and returns the | |
1370 | results in a sexy hot-linked "compiler" window. You can run | |
1371 | it on demand, or have it run automatically every time you | |
1372 | save the buffer. You can find this in the extras/ directory. | |
1373 | Thanks to Josh ben Jore for contributing this. | |
1374 | ||
1375 | * Moved "Perl::Critic::TestUtils" into the installed build. This | |
1376 | module is only used for unit-testing Perl::Critic, but we | |
1377 | are putting it in the installation so folks who want to | |
1378 | extend Perl::Critic can make use of it. | |
6a1cac48 | 1379 | |
be8538d2 | 1380 | [0.17] Released on 2006-06-13 |
08624963 | 1381 | |
2fa231f5 ES |
1382 | Bug Fixes: |
1383 | * 19836: Perl-Critic0.16 fails tests during install. This was | |
1384 | caused by a bug in version 3.01 of Module::Pluggable. See | |
1385 | http://rt.cpan.org/Ticket/Display.html?id=19857 for details. | |
1386 | * Fixed bug in no-critic pragma parser. | |
08624963 | 1387 | |
2fa231f5 ES |
1388 | New Policies: |
1389 | * ValuesAndExpressions::ProhibitEscapedCharacters | |
1390 | * BuiltinFunctions::RequireSimpleSortBlock | |
9c9fbe13 | 1391 | |
2fa231f5 ES |
1392 | Enhancements: |
1393 | * Perl::Critic can export critique() as a static function. This | |
1394 | may appeal to folks who dislike the object-oriented interface. | |
491e8b78 | 1395 | |
be8538d2 | 1396 | [0.16] Released on 2006-05-14 |
15bfb880 | 1397 | |
2fa231f5 ES |
1398 | Enhancements: |
1399 | * Perl::Critic->critique() now accepts a PPI::Document as the | |
1400 | argument. This feature creates an additional dependency on | |
1401 | Scalar::Util, but that shouldn't be a problem because it is | |
1402 | included with List::Util, which we already use. | |
15bfb880 | 1403 | |
2fa231f5 ES |
1404 | Miscellanea: |
1405 | * Increased PPI dependency from v1.110 to v1.112 | |
15bfb880 | 1406 | |
be8538d2 | 1407 | [0.15_03] Released on 2006-05-07 |
4f7da5f8 | 1408 | |
2fa231f5 ES |
1409 | Bug Fixes: |
1410 | * The "## no critic" feature is now implemented without eval-ing | |
1411 | the code. This keeps Perl::Critic pure and safe :) | |
1412 | * 19082: Page number for AUTOLOAD is incorrect | |
4f7da5f8 | 1413 | |
2fa231f5 ES |
1414 | New Policies: |
1415 | * ControlStructures::ProhibitUnreachableCode (by Peter Guzis) | |
1416 | * Modules::ProhibitAutomaticExportation | |
1417 | * ValuesAndExpressions::ProhibitVersionStrings | |
4f7da5f8 | 1418 | |
be8538d2 | 1419 | [0.15_02] Released on 2006-04-26 |
1bef6e21 | 1420 | |
2fa231f5 ES |
1421 | Bug Fixes: |
1422 | * Reimplemented the '##no critic' pragmas to have effect on the | |
1423 | line where the violation is reported, not on the line where | |
1424 | the candidate element lives. This is because some policies | |
1425 | may report violations that are nowhere near the element that | |
1426 | is being evaluated. | |
1427 | * RequireUseStrict, RequireUseWarnings, and RequireExplcitPackage | |
1428 | all emit violations for _every_ statement that violates the | |
1429 | Policy. This closes a loophole that allowed you to circumvent | |
1430 | the Policy by using '## no critic' on just the first statement | |
1431 | that violated the policy. | |
1432 | * Fixed the workaround for the magic shebang that is inserted | |
1433 | by EU::MM and M::B. This had stopped working around version 13. | |
1434 | * Fixed -noprofile option on 'perlcritic'. This also had stopped | |
1435 | working at some point. | |
350f4137 | 1436 | |
be8538d2 | 1437 | [0.15_01] Released on 2006-04-16 |
520d94ce | 1438 | |
2fa231f5 ES |
1439 | Enhancements: |
1440 | * Added diagnostic messages if the .perlcriticrc contains entries | |
1441 | for Policy modules that don't seem to exist. | |
1442 | * Now you can specify which policies to disable with the | |
1443 | "## no critic" pseudo-pragmas. This feature is still | |
1444 | experimental. See docs for details. | |
1445 | * perlcritic's directory searching now skips backup files, such | |
1446 | as *.swp, *.bak and *~. It also ignores version control system | |
1447 | directories, and the blib directory in module build directories. | |
9b32fc61 | 1448 | |
2fa231f5 ES |
1449 | Bug Fixes: |
1450 | * 18386: Bad example in POD for Documentation::RequirePodSections | |
1451 | * 18670: Test failure if Perl::Tidy is not installed | |
1452 | * 18698: Policy idea ProhibitUniversalFunctions (see New Policies) | |
1453 | * RequireInterpolationOfMetachars falsely hit strings like 'foo=s@' | |
1454 | which are commonly used with Getopt::Long. | |
520d94ce | 1455 | |
2fa231f5 ES |
1456 | New Policies: |
1457 | * BuiltinFunctions::ProhibitUniversalCan (by Chris Dolan) | |
1458 | * BuiltinFunctions::ProhibitUniversalIsa (by Chris Dolan) | |
520d94ce | 1459 | |
2fa231f5 ES |
1460 | Miscellanea: |
1461 | * All spurrious options for `perlcritic` are now fatal. | |
1462 | * Changed several of the -verbose formats to be more readable. | |
1463 | * Explicit -severity option now overrides -[12345] shortcuts instead | |
1464 | of being the other way around. | |
55ae7242 JRT |
1465 | |
1466 | ||
a5eaeaa4 | 1467 | |
be8538d2 | 1468 | [0.15] Released on 2006-03-26 |
df092b01 | 1469 | |
2fa231f5 ES |
1470 | Bug Fixes: |
1471 | * 17964: Insists my code is not tidy (may not be fixed for all cases) | |
df092b01 | 1472 | |
be8538d2 | 1473 | [0.14_02] Released on 2006-03-19 |
302ea648 | 1474 | |
2fa231f5 ES |
1475 | Bug Fixes: |
1476 | * 15653: False positive in OneArgSelect (fixed for real this time) | |
b87b00dd | 1477 | |
2fa231f5 ES |
1478 | New Policies: |
1479 | * ClassHierarchies::ProhibitAutoloading | |
1480 | * Documentation::RequirePodSections | |
1481 | * InputOutput::RequireBracedFileHandleWithPrint | |
1482 | * ValuesAndExpressions::ProhibitMixedBooleanOperators | |
1483 | * Variables::RequireInitializationForLocalVars | |
5457cbc2 | 1484 | |
be8538d2 | 1485 | [0.14_01] Released on 2006-03-05 |
fc1186f9 | 1486 | |
2fa231f5 ES |
1487 | Bug Fixes: |
1488 | * 14731: False positive: Builtin function called with parens | |
1489 | * 17554: False positive in CodeLayout::RequireTrailingCommas | |
20ceb4a0 | 1490 | |
2fa231f5 ES |
1491 | New Policies: |
1492 | * ClassHierarchies::ProhibitExplicitISA | |
1493 | * InputOutput::ProhibitReadlineInForLoop | |
1494 | * Miscellanea::ProhibitFormats | |
1495 | * Miscellanea::ProhibitTies | |
1496 | * Variables::ProhibitConditionalDeclarations | |
fc1186f9 | 1497 | |
be8538d2 | 1498 | [0.14] Released on 2006-01-29 |
f4814c30 | 1499 | |
2fa231f5 | 1500 | More documentation edits. |
06d28f35 | 1501 | |
2fa231f5 ES |
1502 | New Policies: |
1503 | * Documentation::RequirePodAtEnd | |
1504 | * Subroutines::ProtectPrivateSubs | |
1505 | * Variables::ProhibitMatchVars | |
1506 | * Variables::ProtectPrivateVars | |
b672fd9e | 1507 | |
2fa231f5 ES |
1508 | Bug Fixes: |
1509 | * 15295: "## no critic" pragmas too aggresive on compound statements. | |
1510 | * t/01_config.t failed in the presence of third-party policies | |
9ad4bbe8 JRT |
1511 | |
1512 | [0.13_05] Not released | |
1513 | ||
2fa231f5 | 1514 | More documentation edits. |
9ad4bbe8 | 1515 | |
2fa231f5 | 1516 | Implemented workaround for failing pod_coverage tests. |
2e3c7424 | 1517 | |
2fa231f5 ES |
1518 | Bug Fixes: |
1519 | * 16906: tr/// created false-postives with RegularExpression polices. | |
f4814c30 | 1520 | |
be8538d2 | 1521 | [0.13_04] Released on 2005-12-31 |
a2969b87 | 1522 | |
2fa231f5 | 1523 | Moved DEVELOPER.pod file into the Perl/Critic dir. |
a2969b87 | 1524 | |
2fa231f5 | 1525 | More documentation edits. |
f4814c30 | 1526 | |
e2ec15ae | 1527 | [0.13_03] Released on 20051230 |
70d719da | 1528 | |
2fa231f5 ES |
1529 | perlcritic now prints 'source OK' if it doesn't find any |
1530 | violations. This gives folks a warm fuzzy feeling. | |
2d119dc9 | 1531 | |
2fa231f5 ES |
1532 | Tweaked some test cases that were failing on my Solaris |
1533 | environment at work. | |
2d119dc9 | 1534 | |
be8538d2 | 1535 | [0.13_02] Released on 2005-12-29 |
2d119dc9 | 1536 | |
2fa231f5 ES |
1537 | Fixed Config to recognize fully-qualified module names in the |
1538 | .perlcriticrc file. | |
2d119dc9 | 1539 | |
2fa231f5 | 1540 | Various documentation edits. |
70d719da | 1541 | |
be8538d2 | 1542 | [0.13_01] Released on 2005-12-28 |
5635926d | 1543 | |
2fa231f5 ES |
1544 | Replaced 'priority' concept with 'severity'. Now each Policy module |
1545 | has a predefined severity level ranging from 1 to 5. By default, | |
1546 | perlcritic only reports the most severe violations. You can adjust | |
1547 | the severity threshold at the command line, and you can change | |
1548 | the severity for any Policy using the config file. | |
1549 | ||
1550 | Chris implemented the applies_to() mechanism, which allows each Policy | |
1551 | class to declare the types of PPI elements that it wants to examine. | |
1552 | When traversing the document, Perl::Critic invokes the Policy only | |
1553 | for elements that are of the correct type. This improves performance | |
1554 | by about 33%. | |
1555 | ||
1556 | Perl::Critic now uses a Plugin architecture to automatically | |
1557 | discover Policy modules. So if you have custom Policies, all you | |
1558 | have to do is install them in the Perl::Critic::Policy namespace -- | |
1559 | no need to add anything to your .perlcriticrc file. If you write | |
1560 | policies in a different namespace, you can configure that too. See | |
1561 | the Perl::Critic::Config docs for details. | |
1562 | ||
1563 | New Policies: | |
1564 | * Modules::RequireEndWithOne | |
1565 | * NamingConventions::ProhibitAmbiguousNames | |
1566 | * References::ProhibitDoubleSigils | |
1567 | * Subroutines::RequireFinalReturn | |
1568 | * Subroutines::ProhibitAmpersandSigils | |
1569 | * Subroutines::ProhibitExcessComplexity | |
1570 | * TestingAndDebugging::ProhibitNoStrict | |
1571 | * TestingAndDebugging::ProhibitNoWarnings | |
1572 | ||
1573 | Bug Fixes: | |
1574 | * 15101: Plugin architecture improves support for 3rd-party code | |
1575 | * 16319: Fixed incorrect PBP page number in ProhibitBarwordFilehandle | |
1576 | * 16321: Lists of empty quotes are now allowed by ProhibitQuotedWordLists | |
1577 | * 16288: Empty lists caused a fatal error RequireTrailingCommas | |
1578 | * 15653: Fixed false positive in OneArgSelect. | |
496afbe0 ES |
1579 | |
1580 | [0.13] Released on 2005-10-31 | |
59b05e08 | 1581 | |
2fa231f5 | 1582 | Official release of 0.12_03. No code major changes. |
59b05e08 JRT |
1583 | |
1584 | [0.12_03] Not released | |
1585 | ||
2fa231f5 ES |
1586 | Renamed -Policy option to -include. Added -exclude to give the |
1587 | opposite effect. | |
59b05e08 | 1588 | |
2fa231f5 ES |
1589 | Refactored constructor of Perl::Critic. Now, most of the work |
1590 | is delegated to Perl::Critic::Config. I'm not sure I like how | |
1591 | this turned out, but we'll see how it goes. | |
59b05e08 | 1592 | |
2fa231f5 ES |
1593 | Renamed some Policy modules to be a bit more comprehensible. Note |
1594 | that you may need to change your .perlcriticrc file accordingly. | |
1595 | I also suggest removing your current Perl::Critic installation | |
1596 | before installing this one. | |
59b05e08 | 1597 | |
2fa231f5 ES |
1598 | Name Changes: |
1599 | * ProhibitUnpackagedCode => RequireExplicitPackage | |
1600 | * RequireQuotedWords => ProhibitQuotedWordLists | |
59b05e08 | 1601 | |
2fa231f5 ES |
1602 | Improved error message when Perl::Critic dies because PPI can't |
1603 | parsee the input code. | |
59b05e08 | 1604 | |
2fa231f5 | 1605 | Changed output of -help to be more terse. |
59b05e08 | 1606 | |
2fa231f5 | 1607 | Edited POD. |
59b05e08 JRT |
1608 | |
1609 | [0.12_02] Not released | |
1610 | ||
2fa231f5 ES |
1611 | Added -Policy option to perlcritic. The idea is to provide a |
1612 | compact interface for selecting Policy modules at the command-line. | |
1613 | This feature is experimental and subject to change. | |
59b05e08 | 1614 | |
2fa231f5 ES |
1615 | Added a warning message if -verbose value looks strange. In most |
1616 | applications, the -verbose option does not require a value, so people | |
1617 | might be puzzled when they write 'perlcritic -verbose my_file.pm' and | |
1618 | nothing seems to happen. | |
59b05e08 | 1619 | |
2fa231f5 ES |
1620 | Command-line options to perlcritic are now case-sensitive. This |
1621 | makes it easier to abbreviate options that start with the same letters | |
1622 | (e.g. 'Version' and 'verbose') | |
59b05e08 | 1623 | |
2fa231f5 ES |
1624 | Fixed the new Policy modules that were misnamed and misplaced in the |
1625 | previous distribution. | |
59b05e08 JRT |
1626 | |
1627 | [0.12_01] Not released | |
1628 | ||
2fa231f5 ES |
1629 | Rewrote some of the ControlStructures and BuiltinFunction |
1630 | policies to be simpler (and probably a little faster). | |
1631 | ||
1632 | Edited POD. Fixed some typos. Added PREREQUISITES section | |
1633 | to Perl::Critic documentation. | |
1634 | ||
1635 | Fixed the -verbose FORMAT option so that you can put metachars | |
1636 | in the FORMAT specification. If using perlcritic, be careful to | |
1637 | protect them from getting munged by the shell first. | |
1638 | ||
1639 | Replaced ProhibitRequireStatements with RequireBarewordIncludes | |
1640 | module. Courtesy of Chris Dolan <cdolan@cpan.org> | |
1641 | ||
1642 | Added configuration to ProhibitInterpolationOfLiterals so that | |
1643 | certain flavors of quotes can be exempt. This is for folks who | |
1644 | have configured their editor to use special syntax highlighting | |
1645 | for certain kinds of strings (SQL, for example). | |
1646 | ||
1647 | perlcritic now accepts multiple file arguments, so now you can | |
1648 | critique your entire distribution in one shot. As a result, the | |
1649 | output-formats have changed slightly. | |
1650 | ||
1651 | New Policy modules: | |
1652 | * BuiltinFunctions::ProhibitLvalueSubstr | |
1653 | * BuiltinFunctions::ProhibitSleepViaSelect | |
1654 | * ClassHierarchies::ProhibitOneArgBless | |
1655 | * CodeLayout::RequireTrailingCommas | |
1656 | * CodeLayout::RequireQuotedWordLists | |
1657 | * InputOutput::ProhibitTwoArgOpen | |
1658 | * InputOutput::ProhibitOneArgSelect | |
1659 | * InputOutput::ProhibitBarewordFileHandles | |
1660 | * Miscellanea::RequireRcsKeywords | |
1661 | * Modules::RequireVersionVar | |
1662 | * RegularExpressions::RequireExtendedFormatting | |
1663 | * RegularExpressions::RequireLineBoundaryMatching | |
1664 | ||
1665 | ||
1666 | Bug fixes: | |
1667 | 14923: 'require' is now permitted. See RequireBarewordIncludes. | |
1668 | 15022: Fixed false-positives when keywords are used as hash keys. | |
1669 | 15023: Fixed spurious Violations by removing magic shebang. | |
1670 | 15031: Fixed spelling mistakes (and probably added some new ones). | |
1671 | 15233: Postfix 'if' is now allowed with 'die', 'croak', etc. | |
59b05e08 | 1672 | |
be8538d2 | 1673 | [0.12] Released 2005-10-10 |
59b05e08 | 1674 | |
2fa231f5 ES |
1675 | Redesigned the 'verbose' feature. Now the output format |
1676 | can be user-defined using a sprintf-like specification. | |
1677 | perlciritc also has a predefined output format that is | |
1678 | compatible with grep mode in editors like vim and emacs. | |
59b05e08 | 1679 | |
2fa231f5 ES |
1680 | 'return' is now exempt from ProhibitParensWithBuiltins. I may |
1681 | extend this exemption to all unary functions. | |
59b05e08 | 1682 | |
2fa231f5 ES |
1683 | Edited POD. Added a super brief description of each policy |
1684 | in the main Perl::Critic documentation. Added details about | |
1685 | editor integration. | |
59b05e08 | 1686 | |
2fa231f5 ES |
1687 | Additional Prerequisites: |
1688 | * String::Format | |
59b05e08 JRT |
1689 | |
1690 | [0.11] Not released | |
1691 | ||
2fa231f5 ES |
1692 | The internal dynamics and API of Perl::Critic have changed |
1693 | considerably. The result is a 300% increase in performance. | |
1694 | See the POD in Perl::Critic::Policy for details. | |
59b05e08 | 1695 | |
2fa231f5 ES |
1696 | New Features: |
1697 | * Added -verbose option to put more stuff in the output. In the | |
1698 | extreme, you can get the POD from Policy attached to each | |
1699 | and every violation. | |
59b05e08 | 1700 | |
2fa231f5 ES |
1701 | Additional Prerequisites: |
1702 | * IO::String | |
1703 | * Pod::PlainText | |
59b05e08 | 1704 | |
be8538d2 | 1705 | [0.10] Released 2005-10-05 |
59b05e08 | 1706 | |
2fa231f5 ES |
1707 | Fixed stupid bug in newest Policy modules. They were returning |
1708 | PPI objects instead of Perl::Critic::Violation objects. Doh! | |
59b05e08 | 1709 | |
2fa231f5 ES |
1710 | Fixed test scripts to prevent failures if the user already has a |
1711 | .perlcriticrc file. | |
59b05e08 | 1712 | |
2fa231f5 | 1713 | 'ProhibitHardTabs' now allows leading tabs by default. |
59b05e08 | 1714 | |
2fa231f5 ES |
1715 | Put the Changes file in reverse-chronological order, so the most |
1716 | recent stuff is easy to find at the top of the file | |
59b05e08 | 1717 | |
be8538d2 | 1718 | [0.09] Released 2005-10-04 |
59b05e08 | 1719 | |
2fa231f5 ES |
1720 | Fixed several bugs: |
1721 | * 14810: Now you are allowed to create your own 'import' function, | |
1722 | since this is frequently done with fancy modules. | |
1723 | * 14817: Parens, brackets, and braces are now excluded from | |
1724 | 'ProhibitNoisyQuotes' since they look better in quotes anyway. | |
1725 | * 14787: $1..$9 and '_' are exempt from ProhibitPunctuationVars | |
1726 | * 14899: Object methods with the same name as a built-in can | |
1727 | be called with parens (ProhibitParensWithBuiltins). | |
1728 | * 14901: Normalized the exit status of perlcritic to 0, 1, or 2. | |
1729 | See documentation for explanation. | |
1730 | * 14855: Partially fixed home directory discovery. Still not | |
1731 | completely portable, but at least doesn't create warnings. | |
1732 | ||
1733 | New features: | |
1734 | * 14734: Limit for number separators is now configurable | |
1735 | ||
1736 | New Policy modules: | |
1737 | * CodeLayout::ProhibitHardTabs | |
1738 | * ControlStructures::ProhibitUnlessBlocks | |
1739 | * ControlStructures::ProhibitUntilBlocks | |
1740 | * ControlStructures::ProhibitCStyleForLoops | |
1741 | ||
1742 | Changed the syntax for the magic comments. Adam had the | |
1743 | idea of using a pragma-like notation. I liked it. | |
59b05e08 | 1744 | |
be8538d2 | 1745 | [0.08_2] Released 2005-09-27 |
59b05e08 | 1746 | |
2fa231f5 ES |
1747 | Fixed problems with Perl::Critic::Config that caused File::Spec |
1748 | to emit 'uninitialized value' warnings during the build. | |
59b05e08 | 1749 | |
2fa231f5 | 1750 | Added 1 Policy module contributed by Graham TerMarsch |
59b05e08 | 1751 | |
2fa231f5 ES |
1752 | Switched from File::Spec::Functions to plain File::Spec because |
1753 | I think its usage is more common. | |
59b05e08 | 1754 | |
2fa231f5 ES |
1755 | Removed 'FindBin' from the test files so I can be sure that the |
1756 | right libraries are getting loaded. This means I'll have to | |
1757 | use the -l option with C<prove>. | |
59b05e08 | 1758 | |
2fa231f5 | 1759 | Edited more POD. |
59b05e08 JRT |
1760 | |
1761 | [0.08_01] Not released | |
1762 | ||
2fa231f5 ES |
1763 | Fixed "ProhibitParensWithBuiltins" to allow parens to be used with |
1764 | object method calls that have the same name as a builtin functions. | |
59b05e08 | 1765 | |
2fa231f5 ES |
1766 | Introduced magical comments that allow developers to configure |
1767 | Perl::Critic on-the-fly from within their code. | |
59b05e08 | 1768 | |
2fa231f5 ES |
1769 | Added META.yml files and POD tests to the build. I did this |
1770 | mostly just to boost the Kwalitee score on CPANTS. | |
59b05e08 | 1771 | |
2fa231f5 ES |
1772 | Switched from "Config::Std" to "Config::Tiny" because it doesn't |
1773 | require those fancy Damian modules that don't seem to work on | |
1774 | some older versions of Perl. | |
59b05e08 | 1775 | |
be8538d2 | 1776 | [0.07] Released on 2005-09-21 |
59b05e08 | 1777 | |
2fa231f5 | 1778 | Fixed bugs in the ProhibitCascadingIfElse policy. |
59b05e08 | 1779 | |
2fa231f5 | 1780 | Added ProhibitExplicitReturnUndef policy |
59b05e08 | 1781 | |
2fa231f5 ES |
1782 | Made ProhibitUnpackagedCode configurable so you can exempt scripts, |
1783 | which typically don't have an explicit 'package' statement. | |
59b05e08 | 1784 | |
2fa231f5 ES |
1785 | ProhibitPackageVars policy now exempts vars in ALL_CAPS. This |
1786 | is to permit common package variables like @EXPORT and $VERSION. | |
59b05e08 | 1787 | |
2fa231f5 ES |
1788 | Renamed "ProhibitStringyGrep and "ProhibitStringyMap" because |
1789 | the so-called string form doesn't really exist. Now called | |
1790 | "RequireBlockGrep" and "RequireBlockMap" | |
59b05e08 | 1791 | |
2fa231f5 ES |
1792 | Corrected documentation on defining Policy names within the |
1793 | configuration file. This still isn't very clear and needs | |
1794 | to be rewritten. | |
59b05e08 | 1795 | |
2fa231f5 ES |
1796 | Perl::Critic now requires PPI version 1.003, which has a few bug |
1797 | fixes of its own. | |
59b05e08 | 1798 | |
2fa231f5 | 1799 | Rewrite some code just to make Perl::Critic more self-compliant. |
59b05e08 | 1800 | |
2fa231f5 ES |
1801 | Added test cases to verify the configuration functionality. These |
1802 | are not completely thorough and need more work. | |
59b05e08 | 1803 | |
be8538d2 | 1804 | [0.06] Released on 2005-09-17 |
59b05e08 | 1805 | |
2fa231f5 | 1806 | Now called 'Perl::Critic'. |
496afbe0 | 1807 | |
2fa231f5 | 1808 | Added 4 new policy modules. |
59b05e08 | 1809 | |
2fa231f5 | 1810 | Fixed bugs in build process. |
59b05e08 | 1811 | |
2fa231f5 | 1812 | Added support for Module::Build. |
59b05e08 | 1813 | |
be8538d2 | 1814 | [0.05] Released on 2005-09-17 |
59b05e08 | 1815 | |
2fa231f5 ES |
1816 | End of 'Perl::Review' releases. I have changed the name to |
1817 | 'Perl::Critic' to avoid possible confusion with "The Perl Review" | |
1818 | magazine. | |
59b05e08 | 1819 | |
be8538d2 | 1820 | [0.04] Released on 2005-09-14 |
59b05e08 | 1821 | |
2fa231f5 | 1822 | Version 0.03 was a bust because I uploaded the wrong tarball to PAUSE. |
59b05e08 | 1823 | |
be8538d2 | 1824 | [0.03] Released on 2005-09-13. |
59b05e08 | 1825 | |
2fa231f5 | 1826 | Fixed some POD links. |
59b05e08 | 1827 | |
2fa231f5 | 1828 | Removed test cases for missing policy module. |
59b05e08 | 1829 | |
be8538d2 | 1830 | [0.02] Released on 2005-09-13. |
59b05e08 | 1831 | |
2fa231f5 | 1832 | Major overhaul based on feedback from Perl community. |
59b05e08 | 1833 | |
2fa231f5 ES |
1834 | Factored coding standards into separate modules (known as |
1835 | Policies). The idea here is to allow other developers to easily | |
1836 | contribute additional coding standards. | |
59b05e08 | 1837 | |
2fa231f5 ES |
1838 | Reworked Perl::Review into a simple engine for loading and running |
1839 | Policy modules. | |
59b05e08 | 1840 | |
2fa231f5 ES |
1841 | Gave perlreview a command-line interface and configuration file |
1842 | for selecting which Policy modules to use. | |
59b05e08 | 1843 | |
be8538d2 | 1844 | [0.01] Released on 2005-08-16. |
59b05e08 | 1845 | |
2fa231f5 | 1846 | Initial version. |
a69e1617 ES |
1847 | |
1848 | ############################################################################## | |
1849 | # $URL$ | |
1850 | # $Date$ | |
1851 | # $Author$ | |
1852 | # $Revision$ | |
1853 | ############################################################################## | |
c25eb228 ES |
1854 | |
1855 | # ex: set ts=8 sts=4 sw=4 tw=78 ft= expandtab shiftround : |