##############################################################################
# $URL: http://perlcritic.tigris.org/svn/perlcritic/branches/Perl-Critic-1.073/Changes $
# $Date: 2007-09-19 10:41:32 -0500 (Wed, 19 Sep 2007) $
# $Author: clonezone $
# $Revision: 1922 $
##############################################################################
[1.078] Released on 2007-09-19
Restore Perl::Critic::TestUtils::should_skip_author_tests() and
get_author_test_skip_message(). Some Perl::Critic add-on distributions
are using them.
[1.077] Released on 2007-09-15
Note: if you don't have any problems installing Perl::Critic 1.076, there
is no need to upgrade to this version. There are no functionality
changes. This release only contains changes related to installation that
a few people were experiencing.
Minor changes:
* Removed build-time use of Readonly, again, due to problems some people
were having when trying to compile the code by hand, rather than using
CPAN(PLUS)?.
* Don't run author tests if there's a .svn directory present because
users who grabbed the code from the source repository were executing
them and getting failures.
* Don't generate optional, module-hiding test wrappers if author tests
are not enabled.
[1.076] Released on 2007-09-07
It appears from reports on the 1.075_001 release that the subroutine
sigils were indeed the problem. Release to the general populace.
[1.075_001] Released on 2007-09-06
Bug Fixes:
Undo the changes in 1.073 and 1.074. Instead, stop using the subroutine
sigil in import and export lists. It is suspected that the problem lies
with Exporter stripping off ampersands.
[1.074] Released on 2007-09-04
Bug Fixes:
Repeat the Makefile.PL change on
t/generate_without_optional_dependencies_wrappers.PL.
I love CPAN Testers.
[1.073] Released on 2007-09-04
Bug Fixes:
Work around problems with the combination of Exporter & Readonly in
Makefile.PL on some machines.
[1.072] Released on 2007-09-03
Bug Fixes:
* The Makefile generated by Makefile.PL was not syntactically correct
according to some versions of Solaris. Thanks to Diab Jerius
(DJERIUS) for discovery and testing.
* Fixed mis-definition of "quiet" value for the "--profile-strictness"
option.
* Enhanced testing with the absence of optional modules.
[1.071] Released on 2007-08-24
The "Brown Paper Bag" Release
Bug Fixes:
* Tests would not pass in environments that did not have all optional
dependencies installed.
[1.07] Released on 2007-08-21
New Policies: (funded by a Perl Foundation grant)
* BuiltinFunctions::ProhibitBooleanGrep
* BuiltinFunctions::ProhibitComplexMappings
* Documentation::PodSpelling
* InputOutput::ProhibitJoinedReadline
* Subroutines::ProhibitManyArgs
* Subroutines::RequireArgUnpacking
* ValuesAndExpressions::ProhibitImplicitNewlines
* Variables::RequireLocalizedPunctuationVars
Other New Policies
* Subroutines::ProhibitNestedSubs
New Features:
* The "perlcritic --profile-proto" output now includes the "add_themes"
parameter for each policy.
* The perlcritic "--strict-profile" option has been replaced with a
"--profile-strictness" option. This new option takes values of "warn"
(the default), "fatal", and "quiet", which controls what happens with
ignorable problems in a .perlcriticrc file.
New Developer Features:
* Perl::Critic::Policy now has an overridable initialize_if_enabled()
method which allows a Policy to perform expensive initialization after
it has been determined whether the user has it enabled or not. Also,
this method allows a Policy to say that it should be disabled
regardless of what the user says.
Actually, use of this method is now encouraged over using a
constructor.
Other Stuff:
* Now requires the Readonly module in order to be more self-compliant.
[1.061] Released on 2007-07-24
Bug Fixes:
* Fix P::C::Theme-- Exporter in Perl 5.6 does not export import(), so you
must subclass it. *sigh*
* Fix P::C::Config::_validate_and_save_theme()-- eval of an empty string
does not reset $@/$EVAL_ERROR in Perl 5.6.
Big thanks to Anirvan Chatterjee for identifying and helping debug these
issues.
[1.06] Released on 2007-06-27
New Features:
* perlcritic now emits errors for all the problems it can find for the
global options in the command-line parameters and .perlcriticrc file,
rather than bailing on the first one it encounters.
* perlcritic now has a "--strict-profile" option which will make warnings
about problems in a profile fatal.
* perlcritic now has a "--statistics-only" option which suppresses the
display of individual violations and only shows the additional output
produced by the "--statistics" option.
Feature requests:
* A value for "color" can now be specified in a .perlcriticrc.
http://rt.cpan.org/Ticket/Display.html?id=24877
New Policies:
* ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters
As suggested in http://rt.cpan.org/Ticket/Display.html?id=23290.
* ValuesAndExpressions::ProhibitLongChainsOfMethodCalls
* Modules::ProhibitExcessMainComplexity
As suggested in http://rt.cpan.org/Ticket/Display.html?id=24699
Minor changes:
* The perlcritic "--profile-proto" option now emits the short names for
policies, rather than the full ones.
* The "-profileproto" and "-singlepolicy" options have been renamed to
"-profile-proto" and "-single-policy" in order to make the growing
number of command-line options comprehensible. The change of
"singlepolicy" also affects your F<.perlcriticrc> file.
[1.053] Released on 2007-06-02
*DEVELOPMENT RELEASE*
Bug Fixes:
Fixed bug in 15_statustics.t test script, which caused the build
to fail on machines that don't have Perl::Tidy installed.
[1.052] Released on 2007-06-01
*DEVELOPMENT RELEASE*
New Features:
* perlcritic now emits a summary about the scanned code when enabled by
the "-statistics" option.
Policy Enhancements:
* InputOutput::ProhibitBacktickOperators can now be configured to only
check in void contexts.
Bug Fixes:
* 27073: False positive in RequireUpperCaseHeredocTerminator
* 27065: CodeLayout::ProhibitTrailingWhitespace breaks under Perl 5.6.1
* 26462: ControlStructures::ProhibitCascadingIfElse pod typo
* ValuesAndExpressions::ProhibitCommaSeparatedStatements was complaining
about multiple values in the list to be iterated over by a foreach loop.
* Corrected PBP page numbers for some policies (Quinn Weaver).
[1.051] Released on 2007-04-12
*DEVELOPMENT RELEASE*
No new policies.
No particular bug fixes.
Internals:
* Added several new utility functions to support the StricterSubs distro.
Also, some of the existing functions in Perl-Critic-Utils have
changed in ways that might break your custom policies.
Miscellanea:
* Updated Emacs plugin (Courtesy Josh ben Jore).
See extras/perlcritic.el for details.
* Added copy of BBEdit plugin (Courtesy of Josh Clark).
See extras/perl_critic_for_bbedit-1_0.zip for details
[1.05] Released on 2007-03-19
Bug Fixes:
* 25557: t/20_policy_prohibittrailingwhitespace.t fails on Perl 5.8.0
[1.04] Released on 2007-03-18
Bug Fixes:
* 25008: Subroutines::RequireFinalReturn should allow "throw"
* 25085: False Positive - Heredoc terminator must be quoted
* 18423: VERSION check does not notice Readonly::Scalar version
* 25449: Proposal of $VERSION declaration (DUPLICATE)
New Policies:
* CodeLayout::ProhibitTrailingWhitespace
* ValuesAndExpressions::ProhibitCommaSeparatedStatements
* Variables::ProhibitPerl4PackageNames
Policy Enhancements:
* Subroutines::RequireFinalReturn can now be configured to recognize
your custom functions that behave like "die" or "exit".
* Documentation::RequirePodSections can be configured to match
Module::Starter:PBP or to really match the PBP book.
[1.03] Released on 2007-02-13
Bug Fixes:
* Fixed a few more problems with the %f, %F, and %r format escapes.
* I forgot to put Conway's perlcriticrc file in the MANIFEST. Sorry.
Interface Changes:
* Perl::Critic::Utils automatically exports everything. However,
this is deprecated. In the future, you must request your exports.
Policy Changes:
* Duplicate violations of RequireExcplicitPackage are now squelched,
in the same way as RequireUseStrict and RequireUseWarnings.
[1.02] Released on 2007-02-11
Bug Fixes:
* "undef" incorrectly triggered ProhibitMutatingListFunctions.
* 24876: %f and %F escapes not working in custom "verbose" format strings.
* 24875: Documentation bug in TestingAndDebugging::ProhibitNoStrict
New Policies:
* InputOutput::RequireCheckedOpen
* InputOutput::RequireCheckedClose
Other Cool Stuff:
* Added Conway's own suggested Perl::Critic configuration as
examples/perlcriticrc-conway.
* See the examples/ directory for some neat demonstrations of using
the Perl::Critic API. Contributed by Elliot Shank.
Interface Changes:
* Perl::Critic::Utils no longer exports anything by default. Policies
outside the distribution will need to specify what exactly they need
from this module. There are a number of tags that can be used in
addition to individual imports.
[1.01] Released on 2007-01-24
PRODUCTION RELEASE: You may now consider the public Perl::Critic
API as "stable." Future minor releases will focus on bug fixes,
new policies, and internal refactoring.
Bug Fixes:
* Fixed memory leak. This was reported by the Parrot team at
http://rt.perl.org/rt3/Ticket/Display.html?id=41230
[0.23] Released on 2007-01-19
Bug Fixes:
* 23994: Test 56 in t/05_utils.t of Perl::Critic v0.22 fails
* 24005: test 95 in t/13_bundled_policies fails in 0.22
Groovy New Features:
* Added '%F' to the Violation format specifications. This will
give you just the name of file where the violation occurred
(i.e. without the path).
* Improved validation of .perlcriticrc file. An invalid
default setting will now cause a fatal exception. A
strange-looking policy name will cause a warning.
Interface Changes:
* The syntax for theme expressions has changed. Instead of using
mathematical operators qw(+ * -) you must now use the logical
operators qw(|| && !). See the Perl::Critic docs for more info.
* The @GLOBALS and @BUILTINS variables are no longer exported by
Perl::Critic::Utils. Use the is_perl_global() and is_perl_builtin()
functions instead.
* Perl::Critic::Policy::policy_parameters() has bee renamed to
Perl::Critic::Policy::supported_paramters(). This was an
undocumented feature anyway, so it shouldn't affect anyone.
Other Internal Changes:
* Perl::Critic now requires B::Keywords v1.05 or newer.
* A few internal classes have been refactored. As a result,
Set::Scalar is no longer a required dependency.
[0.22] Released on 2006-12-15
New Features:
* Introduced named severity levels: gentle, stern, harsh, cruel, brutal
You can use these named levels instead of the numeric ones.
For example: "perlcritic --severity=cruel MyModule.pm"
Or just: "perlcritic --cruel MyModule.pm"
* For perlcritic, the "-List" option has been renamed to
"-profileproto". The output now includes the names of the
parameters that each Policy supports, if any.
* Improved validation of Policy parameters in your F<.perlcriticrc>
Any invalid parameter now causes a fatal exception.
Major Changes:
* Reassigned themes for most policies. Now there are fewer
themes and they are organized around programming concepts
instead of severity levels. If you have assigned your own
themes to any Policies, they should still work as expected.
Policy Changes:
* ErrorHandling::RequireCarping will not complain if it can figure
out that the die or warn message will always end in a newline
("\n"). The idea is that, if you put the newline there, you
don't indend for there to be any file/line/stack information
emitted, in which case you really don't want carp/croak.
You can restore the old strict behavior by giving the policy
a false value for "allow_messages_ending_with_newlines" in your
configuration.
Misc Changes:
Added single-letter uppercase alternatives for some perlcritic options.
[0.21_01] Released on 2006-12-03
New Policies:
* TestingAndDebugging::ProhibitProlongedStrictureOverride
* ControlStructures::ProhibitMutatingListFunctions
New Features:
* Say "perlcritic -List" to get an expanded listing of all Policies.
The format is suitable for use as your .perlcriticrc file.
* Say "perlcritic -doc PATTERN" to get the documentation for all
Policies that match m/PATTERN/imx. This is a little easier than
typing in the full name of the Policy module with "perldoc".
* Say "perlcritic --singlepolicy PATTERN" to use one and only one
policy.
* Can now specify exceptions to Variables::ProhibitPackageVars,
for packages like File::Find that only interface through
package variables.
Bug Fixes:
* 21713 false positive for parens used with substr and unpack.
* 22890 allow Rcs keywords in POD.
Internals:
* Testing system overhauled. Details on the Policy/subtest
framework is in t/run.t.
* Added Perl::Critic::Utils::words_from_string. This is safer
than plain old C.
[0.21] Released on 2006-11-05
New Policies:
* BuiltinFunctions::ProhibitReverseSortBlock
* BuiltinFunctions::ProhibitVoidGrep
* BuiltinFunctions::ProhibitVoidMap
* CodeLayout::RequireConsistentNewlines
* Modules::RequireFilenameMatchesPackage
* TestingAndDebugging::RequireTestLabels
* ValuesAndExpressions::ProhibitMismatchedOperators
New Features:
* Introduced policy "themes." Themes are arbitrary names that can
be used to identify a group of related Policies. You can select
your favorite policies by combining themes in a mathematic expression
such as "pbp * (danger + risky)". See POD for details.
* perlcritic output is colorized if you have Term::ANSIColor. This
only works on non-Win32 platforms. Use -nocolor switch to disable.
* Say "perlcritic -count" to get just the the total number of
violations per file. Use this feature to quickly identify hot-spots.
* Use the -only switch to choose only from policies mentioned in your
.perlcriticrc file. This is useful if you usually only want to
work with a small subset of the policies.
* Default values for most of the perlcritic and Perl::Critic options
can now be defined in your .perlcriticrc file. See POD for details.
Bug Fixes:
* 21236: wrong page number for "printing to filehandles"
* 21916: File handle ... wrong page reference in PBP [DUPE]
* 21714: false positive for capture var used in ternary condition
* 21718: No skip for File::Slurp in includes.t
* ProhibitBarewordFilehandles doesn't complain if you open
STDIN, STDOUT or STDERR.
* Parrot 40564: Subroutines::RequireFinalReturn should allow die,
exit, etc.
* Each "for" and "foreach" loop now adds one point to the McCabe
complexity score.
Other Stuff:
* The internals of Perl::Critic have been significantly refactored,
but should still be compatible with existing third-party Policies.
* Added author-only tests to the release, but disabled by default
* New Perl::Critic::Utils::shebang_line() method
* Support for filename-based policies
* Additional prerequisite: Set::Scalar
* Now requires PPI version 1.118
[0.20] Released on 2006-09-10
Perl::Critic now requires PPI version 1.117, which fixes
several bugs that were introduced in version 1.116.
Bug Fixes:
* 21079: grep clears @SITE_POLICIES
* 21352: Test failures with PPI 1.117
* 11365: sub DESTROY detected as a builtin homonym
[0.19] Released on 2006-08-20
New Policies:
* BuiltinFunctions::ProhibitStringySplit
* ControlStructures::ProhibitDeepNests
* RegularExpressions::ProhibitCaptureWithoutTest
* Variables::RequireLexicalLoopIterator
New Features:
* "perlcritic -quiet" suppresses the "source OK" message.
* Variables::ProhibitPunctuationVars is now configurable.
Bug Fixes:
* 20965: "Hard tabs used at" shouldn't check __DATA__
* 21070: ProhibitNoisyQuotes hates overload
* Punctuation variables are now exempt from ProhibitLocalVars
Other Stuff:
* Test coverage is now over 95%
[0.18_01] Released on 2006-08-06
New Policies:
* Variables::RequireNegativeIndices
* InputOutput::ProhibitInteractiveTest
* ErrorHandling::RequireCarping
Bug Fixes:
* RequireTidyCode tests fail if user has custom .perltidyrc file
* 20612: RequirePerlTidy was ignoring HEREDOCs
* 20659: __END__ statement considered "unreachable"
* Fix for PPI::XS (no C