Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2019, 2021 Kevin Ryde
This file is part of Perl-Critic-Pulp.
Perl-Critic-Pulp is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3, or (at
your option) any later version.
Perl-Critic-Pulp is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along
with Perl-Critic-Pulp. If not, see <http://www.gnu.org/licenses/>.
Version 99, February 2021
- RequireFinalSemicolon keep the "List" check for PPI 1.220
Version 98, February 2021
- ProhibitUnknownBackslash new charnames option
Version 97, October 2019
- RequireFinalSemicolon allow hashref in arrayref (which PPI 1.270
says code block), as reported by Andy Lester RT#130725
Version 96, December 2017
- ProhibitUnknownBackslash allow for non-ascii in strings, as
reported by Mark Fowler RT#123922
Version 95, October 2017
- RequireFinalSemicolon also sort{} blocks are an expression
Version 94, June 2017
- ProhibitUnknownBackslash \N also Perl 5.16, as reported by
Ed Davis RT#122064
Version 93, April 2017
- some doubtfulness in Makefile.PL meta bits
Version 92, November 2016
- ProhibitPOSIXimport oops, don't use // operator, per paul RT#118959
Version 91, November 2016
- RequireFinalCut allow no blank line before =cut, as reported by
Andy Lester RT#118722
- RequireLinkedURLs allow example.com
Version 90, March 2015
- PerlMinimumVersionAndWhy actually check Modern::Perl
- ProhibitNullStatements beware of extra stuff after try/catch
Version 89, January 2015
- PerlMinimumVersionAndWhy experiment Modern::Perl meaning 5.10,
as proposed by Ed Avis RT#100290
- RequireFinalSemicolon recognise try/catch of Try.pm, TryCatch.pm
and Syntax::Feature::Try, as proposed by Ed Avis RT#100291.
Various List::Util functions as expression blocks.
- RequireTrailingCommaAtNewline exception for single here-documents,
as proposed by Ed Avis RT#100292
- ProhibitNullStatements report null ; on try/catch, and look
inside try/catch/finally blocks
Version 88, November 2014
- ConstantBeforeLt oops again, PPI incompatibility too much, must
do and depend on its 1.220
Version 87, November 2014
- ConstantBeforeLt really allow for PPI
Version 86, November 2014
- ConstantBeforeLt allow for PPI incompatible change to ->prototype()
Version 85, May 2014
- oops forgot Pod::Escapes in PREREQ_PM, per Petr Pisar RT#95440
Version 84, May 2014
- new Documentation::RequireFilenameMarkup
Version 83, May 2014
- PerlMinimumVersionAndWhy new 5.10 -e -x stacked filetest per
Kent Fredric RT#95208
Version 82, April 2014
- ProhibitAdjacentLinks, ProhibitLinkToSelf,
ProhibitParagraphTwoDots, ProhibitUnbalancedParens,
ProhibitVerbatimMarkup, RequireLinkedURLs check =begin blocks
only for POD-type ":"
- ProhibitBadAproposMarkup check =begin :man and :roff only
- ProhibitDuplicateSeeAlso ignore all =begin blocks
Version 81, April 2014
- ProhibitAdjacentLinks fix warnings when internal and external
links adjacent, as reported by Mike O'Regan RT#94318
- ConstantPragmaHash and ConstantLeadingUnderscore pass ->content
to version.pm as it enquires too much into a PPI object ref,
per RT#92100 dmacks and ppisar
Version 80, July 2013
- new policy Documentation::ProhibitParagraphEndComma
- tests UnexpandedSpecialLiteral.t don't exercise __PACKAGE__ =>
across newline since that might be going to change in Perl 5.20,
as reported by Reini Urban RT#87307
Version 79, March 2013
- fix ProhibitFatCommaNewline load version.pm for perl 5.8, as
reported by paul RT#83990
Version 78, March 2013
- new policies CodeLayout::ProhibitIfIfSameLine,
CodeLayout::ProhibitFatCommaNewline
Version 77, February 2013
- new policy Documentation::ProhibitDuplicateHeadings
- fix POD parse losing violations across =cut gaps
Version 76, January 2013
- RequireNumericVersion explicit check for exponential strings "1e6"
Version 75, November 2012
- ProhibitEmptyCommas fix for [{%a},{}] reported by Mike O'Regan
RT#81390
Version 74, October 2012
- tests RequireNumericVersion skip version.pm 1e6 uncertain quite yet
Version 73, June 2012
- tests fix for File::Temp in perl pre-5.10
Version 72, June 2012
- TextDomainPlaceholders fix #line regexp plain \2 for perl before 5.10
Version 71, June 2012
- RequireLinkedURLs - skip "=begin html" etc blocks
- RequireFinalCut - cut not required if only =begin foo/=end foo block
Version 70, May 2012
- new policy Documentation::RequireFinalCut
Version 69, January 2012
- new policy ValuesAndExpressions::ProhibitDuplicateHashKeys
- PerlMinimumVersionAndWhy
- new keys @array, values @array and each @array are 5.12
- new eval '#line' with #line the very first thing is 5.8
- Perl::Critic::Pulp::Utils new elem_is_comma_operator()
Version 68, January 2012
- RequireNumericVersion
- recognise fully-qualified $Foo::VERSION
- recognise "$VERSION = eval $VERSION" trick
Version 67, December 2011
- RequireTrailingCommaAtNewline allow "return(123 newline );"
Version 66, December 2011
- new policy Documentation::ProhibitDuplicateSeeAlso
Version 65, September 2011
- PerlMinimumVersionAndWhy
- new UNIVERSAL.pm methods in 5.004 and 5.10
- new "Foo->$method" no-args without parens is 5.6
Version 64, August 2011
- fix ProhibitLinkToSelf warnings on no L<> display part
Version 63, August 2011
- new policy Documentation::ProhibitLinkToSelf
Version 62, July 2011
- Makefile.PL depends PPI 1.212 for literal()
Version 61, June 2011
- new policies ProhibitArrayAssignAref, RequireTrailingCommaAtNewline,
ProhibitUnbalancedParens
Version 60, May 2011
- PerlMinimumVersionAndWhy new 5.6 open(my $fh,...)
Version 59, May 2011
- tests don't die on a deliberately induced version.pm warning
Version 58, May 2011
- new policy Documentation::ProhibitParagraphTwoDots
Version 57, May 2011
- ProhibitUnknownBackslash
- allow \: etc stopping interpolation
- \N only when "use charnames" in scope
Version 56, April 2011
- new policy Documentation::ProhibitAdjacentLinks
- PerlMinimumVersionAndWhy new 5.6 syswrite() length optional
Version 55, April 2011
- PerlMinimumVersionAndWhy add 5.8 pack() "[123]" brackets
Version 54, April 2011
- PerlMinimumVersionAndWhy
- new check 5.005 for "my (undef,$x)",
- fix for "delete $array[0]{'key'}" is hash not array
- document 5.8 for "=>" across newline
- document 5.004 for "$coderef->()" call and "sysseek()" func
Version 53, April 2011
- new policy Documentation::RequireLinkedURLs
Version 52, April 2011
- new policy Compatibility::ConstantLeadingUnderscore
- Perl::Critic::Pulp::Utils new elem_in_BEGIN()
Version 51, April 2011
- depend on Pod::MinimumVersion 50 for fix to =item C<< >> detection
Version 50, March 2011
- fix Compatibility::PodMinimumVersion to use its documented
"above_version", as reported by Mark Gardner
- fix Perl::Critic::Pulp::Utils parameter_parse_version() to store
with __set_parameter_value(), so field "_foo" not "foo"
Version 49, March 2011
- split Pod::MinimumVersion to its own distribution
Version 48, March 2011
- PerlMinimumVersionAndWhy some bits now in Perl::MinimumVersion itself
Version 47, February 2011
- fix Makefile.PL for perl 5.6
- UnexpandedSpecialLiteral allow fat comma after newline
- PerlMinimumVersionAndWhy report pragmas too
Version 46, January 2011
- new policy ValuesAndExpressions::RequireNumericVersion
Version 45, December 2010
- oops, tests really fix ProhibitVerbatimMarkup.t
Version 44, December 2010
- tests fix ProhibitVerbatimMarkup.t some version number checks
Version 43, September 2010
- test manifest only as an author test
- tests drop backslash of more wide chars which bomb on 5.8.x, maybe
Version 42, September 2010
- tests avoid warnings from Pod::Parser 1.37 on empty =encoding
- tests and docs Perl::Critic 1.110 for annotations past __END__
Version 41, July 2010
- TextDomainPlaceholders allow literal number for __xn() count
Version 40, July 2010
- new policy Modules::ProhibitModuleShebang
Version 39, July 2010
- PerlMinimumVersionAndWhy add
- 0b110011 binary literals new in 5.006
- new policy Documentation::ProhibitVerbatimMarkup
Version 38, June 2010
- new policy CodeLayout::RequireFinalSemicolon
Version 37, May 2010
- tests don't try wide chars in PPI input string, doesn't work in
5.8.6 and not sure if it's meant to
Version 36, May 2010
- PerlMinimumVersionAndWhy add
- "foreach my $foo" lexical loop variable new in 5.004
- "$coderef->()" call new in 5.004
Version 35, April 2010
- PerlMinimumVersionAndWhy add
- special __PACKAGE__ new in 5.004
- "use VERSION" or "use MODULE VERSION" new in 5.004
Version 34, April 2010
- new policy ValuesAndExpressions::ProhibitBarewordDoubleColon
- PerlMinimumVersionAndWhy new option skip_checks
Version 33, April 2010
- ProhibitBadAproposMarkup and Pod::MinimumVersion quietly ignore
POD parse errors
Version 32, March 2010
- PerlMinimumVersionAndWhy add
- exists() and delete() subs and arrays new in 5.006
- Foo::Bar:: double-colon bareword new in 5.005
Version 31, February 2010
- ProhibitUnknownBackslash fix for interpolated "$#array"
Version 30, January 2010
- PerlMinimumVersionAndWhy new pack/unpack format string checks
Version 29, January 2010
- fix dependency, P::C 1.084 for highest_explicit_perl_version()
Version 28, January 2010
- new policy Compatibility::ProhibitUnixDevNull
Version 27, December 2009
- ProhibitUnknownBackslash also \c control chars
Version 26, December 2009
- new policy ValuesAndExpressions::ProhibitUnknownBackslash
Version 25, December 2009
- new policy ValuesAndExpressions::ProhibitFiletest_f
Version 24, December 2009
- new policy Documentation::ProhibitBadAproposMarkup
Version 23, November 2009
- PodMinimumVersion 5.004 for =for, =begin, =end
Version 22, September 2009
- new policy Modules::ProhibitPOSIXimport
- TextDomainPlaceholders -- allow non-ascii keys
Version 21, August 2009
- PodMinimumVersion -- update the location offset hack
Version 20, August 2009
- PerlMinimumVersionAndWhy -- add report qr//m needs 5.10
- fix some "use" module version cases
- ProhibitNullStatements -- workaround incompatible changes in PPI 1.205
Version 19, June 2009
- new policy Compatibility::PerlMinimumVersionAndWhy
- new policy Compatibility::PodMinimumVersion
Version 18, June 2009
- new policy Compatibility::Gtk2Constants
- TextDomainPlaceholders -- check __px() and __npx(), and try to
notice a missing count arg in __nx(), __xn() and __npx()
Version 17, May 2009
- TextDomainUnused -- recognise __p() etc new in libintl-perl
1.17, as advised by Guido Flohr
Version 16, April 2009
- new policy Modules::ProhibitUseQuotedVersion
Version 15, March 2009
- new policy Miscellanea::TextDomainUnused
Version 14, January 2009
- ConstantPragmaHash -- fix for document with no includes at all
Version 13, January 2009
- ConstantPragmaHash -- fix location reported
Version 12, January 2009
- new policy Compatibility::ConstantPragmaHash
Version 11, December 2008
- oops, in the tests PPI 1.203 doesn't like an empty document
Version 10, December 2008
- new policy Documentation::RequireEndBeforeLastPod
Version 9, December 2008
- new policy ValuesAndExpressions::ProhibitEmptyCommas
Version 8, October 2008
- UnexpandedSpecialLiteral -- rename from LiteralSpecialLiteral,
for clarity
Version 7, August 2008
- new policy LiteralSpecialLiteral
Version 6, August 2008
- new policy Miscellanea::TextDomainPlaceholders
Version 5, July 2008
- new policy ValuesAndExpressions::NotWithCompare
Version 4, July 2008
- another go at the CPAN indexing
Version 3, July 2008
- fixes for CPAN indexing
Version 2, July 2008
- new toplevel module Perl::Critic::Pulp
- ConstantBeforeLt -- depends on prototyping, not perl version
Version 1, June 2008
- the first version, with ConstantBeforeLt and ProhibitNullStatements