- New upstream release 1.138
- RequireCheckingReturnValueOfEval didn't count returning the result of an
eval as checking it - now it does; however, it's only if you "return eval
{ ... }" - it still doesn't handle the case of "return ( eval {} )"
(GH#324)
- ProhibitPunctuationVars would get confused and think that the expression
qr/SOME$/ was using the $/ special variable (GH#843)
- New upstream release 1.136
New Features
- The ProhibitNoWarnings policy now handles warnings in the experimental::
group (GH#892)
Documentation
- Prevented some example code from showing up in 'perldoc' (GH#799)
- Fix shellbang in ppidump tool
- New upstream release 1.134
New Features
- Added new policy BuiltinFunctions::ProhibitShiftRef (GH#837)
- Support indented heredocs (GH#861)
- In Subroutines::ProhibitManyArgs, you can now omit the object variable
(C<$self> or C<$class>) from the argument count (GH#815)
Policy Changes
- The policy Documentation::RequirePodLinksIncludeText is obsolete and has
been removed (GH#494)
Dependencies
- Removed use of File::HomeDir
- Upgrade to PPI 1.265 (GH#860)
- Fix failed tests caused by new PPI (GH#858)
Internals
- Updated the Appveyor config (GH#851)
- New upstream release 1.132
New Features
- In the ProhibitLeadingZeros policy, added an exception for mkfifo (GH#786)
- Add colour support for Windows platforms (GH#700)
- Perl::Critic now assumes that .psgi files are Perl, too (GH#805)
- Variables::ProhibitUnusedVariables no longer gives a false positive for
variables used in interpolation (GH#801)
- Added the ability to specify a regex to tell what unused private
subroutines are OK in Subroutines::ProhibitUnusedPrivateSubroutines; this
is handy for Moose classes where there could be many false positives on
_build_xxxx() subroutines (GH#811, GH#812)
Dependencies
- Perl::Critic now no longer relies on the deprecated Email::Address
(GH #816)
Bug Fixes
- Recode Perl::Critic::Utils::all_perl_files() to use File::Find instead of
opendir/readdir; this solves endless directory traversals if the
directories contain circular symbolic references
- Added missing requirement for Fatal.pm
Documentation
- Added CONTRIBUTING.md
- Switch upstream from search.cpan.org to metacpan.org
- Switch spell checker from aspell to hunspell
- New upstream release 1.130
New Features
- Policies that ensure that system calls are checked, such as
RequireCheckedSystemCalls, now have an "autodie_modules" setting that
allows you to tell the policy about other modules that export autodie
(GH#699, GH#747)
- New upstream release 1.128
Bug Fixes
- PPI misparsing a module caused an incorrect "Must end with a recognizable
true value"; this is fixed by upgrading to PPI 1.224 (GH#696, GH#607)
- A test would fail under the upcoming Perl 5.26 that omits the current
directory from @INC
- Fixed an invalid test in the RequireBarewordsIncludes test (GH#751)
- If an element contained blank lines then the source "%r" displayed for a
violation was wrong (GH#702, GH#734)
Dependencies
- Perl::Critic now requires PPI 1.224; PPI is the underlying Perl parser on
which Perl::Critic is built, and 1.224 introduces many parsing fixes such
as:
- Fixes for dot-in-@INC
- Parse left side of => as bareword even if it looks like a keyword or op
- $::x now works
- Higher accuracy when deciding whether certain characters are operators or
variable type casts (*&% etc.)
- Subroutine attributes parsed correctly
Performance Enhancements
- Sped up BuiltinFunctions::ProhibitUselessTopic ~7% (GH#656)
Documentation
- Fixed incorrect explanation of capture variables in
ProhibitCaptureWithoutTest
- Fixed incorrect links
- Fixed incorrect example for returning a sorted list
- Fixed invalid POD (GH#735)
- Updated docs on ProhibitYadaOperator (GH#662)
- Removed all the references to the old mailing list and code repository at
tigris.org (GH#757)
- This release by PETDANCE → update source URL
- New upstream release 1.126
- Added a policy: ControlStructures::ProhibitYadaOperator - Never use ... in
production code
- Fixed problems arising from having -b in your .perltidyrc file
- Removed extra newline from policy names returned by P::C::Config->policies
- 'fc' and 'say' are now covered by ProhibitUselessTopic
- Add more strict/warnings importer modules
- Path::Tiny is now recommended over File::Slurp
- Micro-optimize by calling ->content() directly instead of going through the
overloads
- Square brackets are now allowed around your '## no critic' policy list
- New upstream release 1.125
- Corrected dependency on List::Util::any() to List::MoreUtils::any()
- Revised and updated documentation
- Drop upstreamed patch for GH #626
- New upstream release 1.124
- The ProhibitUnusedPrivateSubroutines policy can now ignore files that use
particular modules with the 'skip_when_using' option, which allows, for
example, skipping the policy for roles
- The RequireUseStrict and RequireUseWarnings policies now regard Moose, Moo,
Mouse, Dancer, Mojolicious, and several other modules as equivalent to the
strict and warnings pragma
- The RequireChecked* family of policies has been fixed to accommodate
version numbers when use-ing the autodie pragma (GH #612)
- Add patch to avoid the need for List::Util ≥ 1.33 (GH #626)
- New upstream release 1.123
- Now requires PPI-1.220 which has numerous bug fixes; this may eliminate
the need for some "## no critic" markers you inserted to work around those
bugs - the "ProhibitUselessNoCritic" policy should help you find them
- Fixed a typo in the Variables::ProhibitPerl4PackageNames message
- New upstream release 1.122
- Now requires PPI-1.218, which has numerous enahncements and bug fixes
- Also now requires Readonly-2.00, which obviates the need for Readonly::XS
to get fast constants
- File::HomeDir, File::Which, and Term::ANSIColor are all required now
instead of being optional or recommended; this simplifies our test code
and ensures consistent optimal behavior for all users
- Added two new policies: BuiltinFunctions::ProhibitUselessTopic and
RegularExpressions::ProhibitUselessTopic
- Updated the perlcritic.el script to use modern Emacs hooks (GH #556)
- Removed all the internal RCS keyword boilerplate blocks that were never
getting expanded
- Use %license where possible
- Drop upstreamed patches
- xt/author/82_optional_modules.t shouldn't be trying to use Readonly::XS (#1092921)
- Run the author tests using "Build test" rather than "Build authortest" because the
latter ends up deleting META.yml and that causes the kwalitee test to fail
- New upstream release 1.121
- Added new themes based on CERT guidelines
- The source code repository for Perl-Critic has been moved to GitHub at
http://github.com/Perl-Critc/Perl-Critic; all tickets from the RT queue
have also been moved there - please use GitHub for submitting any new bugs
or corresponding about existing ones
- The change log was reformatted to comply with CPAN::Changes::Spec
- BR: perl(Perl::Critic::Policy::Miscellanea::RequireRcsKeywords) for the
extra tests
- Bump perl(Test::Kwalitee) version requirement to 1.15
- New upstream release 1.119
- Tests were failing with Config::Tiny 2.17 or later, due to a change in the
error messages produced by that module (CPAN RT#88679, CPAN RT#88889,
https://github.com/Perl-Critic/Perl-Critic/pull/16)
- BuiltinFunctions::ProhibitVoidGrep and ::ProhibitVoidMap: grep and map
called as functions are now allowed in slice operations (CPAN RT#79289)
- Subroutines::RequireArgUnpacking: most tests of the size of @_ are now
allowed (CPAN RT#79138)
- Modernized our usage of Exporter (CPAN RT#75300)
- Drop redundant patch for CPAN RT#87875