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