# changelog

author: Paul Howarth <paul@city-fan.org> - 1.271-1
changelog:
  - Update to 1.271
    - Return correct name for lexical subroutines
    - Silence uninitialized warning in t/07_token.t
    - Bump minimum Test::More version to 0.96
    - Fix some typos in Pod
    - Moved repository to Perl-Critic GitHub org:
      https://github.com/Perl-Critic/PPI
  - Assume we have rpm ≥ 4.9
  - Use %license unconditionally


author: Paul Howarth <paul@city-fan.org> - 0.079-1
changelog:
  - Update to 0.079
    - Get prerequisites up to snuff, and add xt/author/prereq.t to ensure they
      stay that way
    - Add rt.cpan.org back to bug reporting methods; long live RT!


author: Paul Howarth <paul@city-fan.org> - 0.081-1
changelog:
  - Update to 0.081
    - Any use of the postderef argument is now fatal
    - Correct generation of 'provides' metadata
    - Add YAPE::Regex to SEE ALSO
  - Fix dist tags for Alma and Rocky Linux


author: Paul Howarth <paul@city-fan.org> - 0.082-1
changelog:
  - Update to 0.082
    - Add --version to eg/predump, and document all options with double dashes
    - Silence 'uninitialized' warning generated by /(?<=.{35})/
    - Try to quell weird Win32 test failures that seem to occur only in tests
      where I am using 'use open' to put the standard handles into UTF-8 mode;
      the fix (I hope) is to do this to the Test::Harness handles at run time
      instead of to the standard handles at compile time
    - Add file CONTRIBUTING


author: Paul Howarth <paul@city-fan.org> - 0.083-1
changelog:
  - Update to 0.083
    - Correct and optimize the computation of logical column position (the one
      that takes account of tabs)
  - Work around package note files breaking xt/author/manifest.t


author: Paul Howarth <paul@city-fan.org> - 0.084-1
changelog:
  - Update to 0.084
    - Require PPI 1.238 for postfix deref support, and recode the postfix deref
      logic in terms of 1.238's functionality
    - Parse '@{[ ... ]}' as code, not interpolation; this is more in line with
      what it actually represents, and allows correct versioning of postfix
      dereferences (but it is an incompatible change)


author: Paul Howarth <paul@city-fan.org> - 0.085-1
changelog:
  - Update to 0.085
    - Remove 'postderef' argument to PPIx::Regexp->new(); postfix dereference is
      always recognized


author: Paul Howarth <paul@city-fan.org> - 0.086-1
changelog:
  - Update to 0.086
    - Add width(), which returns the number of characters matched
      Note that an indefinite upper bound is represented as IEEE 754 Inf if that
      appears to be supported; otherwise by a singleton object overloaded to
      allow stringification, numification, and numeric tests
    - Use width() to enhance the detection of variable-width look-behinds
    - Serious clean-up on accepts_perl() subsystem
  - Use SPDX-format license tag


author: Paul Howarth <paul@city-fan.org> - 0.087-1
changelog:
  - Update to 0.087
    - Add support for code in optimized regex, a.k.a. (*{...}); this involved
      making the recognition of backtracking control more specific, since it also
      uses (?*...)
    - If (*{...}) and (**{...}) are removed from Perl before Perl 5.38.0, support
      for them will be removed from this package


author: Paul Howarth <paul@city-fan.org> - 0.088-1
changelog:
  - Update to 0.088
    - Remove support for (**{ ... code ... })
      This was introduced in Perl 5.37.8 along with a single-splat version
      The double-splat version was removed without deprecation in Perl 5.37.9, so
      it is being removed without deprecation here as well, per my stated policy
      about development functionality
      The single-splat version still exists (and is documented) in Perl 5.37.9,
      and in this package


author: Paul Howarth <paul@city-fan.org> - 1.001000-27
changelog:
  - BR: perl-generators unconditionally
  - BR: perl-interpreter rather than perl
  - Drop support for EOL distributions prior to F-13
    - Drop BuildRoot: and Group: tags
    - Drop explicit buildroot cleaning in %install section
    - Drop explicit %clean section


author: Paul Howarth <paul@city-fan.org> - 1.140-1
changelog:
  - Update to 1.140
    - Subroutines::RequireFinalReturn now lets you specify a terminal_methods
      parameter to specify methods that should be seen as terminal; this is like
      the terminal_funcs parameter, but for methods (GH#920)
    - Removed an extra /x in RequireInterpolationOfMetachars.pm that caused
      deprecation warnings in Perl 5.22 and higher  (GH#822)
    - Documentation::RequirePackageMatchesPodName now recognizes the package
      name if it's in 'I<>' or 'B<>' markup (GH#913)
  - Always use hunspell as spell-checker
  - Use %license unconditionally


author: Paul Howarth <paul@city-fan.org> - 1.142-1
changelog:
  - Update to 1.142
    - This is the last version of Perl::Critic that will run on Perl 5.6.1; the
      next release will require Perl 5.10.1
    New Features
    - Add new policy InputOutput::ProhibitBarewordDirHandles, comparable to
      ProhibitBarewordFilehandles (GH#912)
    - References::ProhibitDoubleSigils policy now allows for Perl's postfix
      dereference syntax and does not report a policy violation (GH#578)
    - Added Test::Class::Moose and MooseX::MethodAttributes::Role to the list of
      modules that are equivalent to "use strict" (GH#808, GH#886)
    - Subroutines::RequireArgUnpacking now detects anonymous subroutines with
      attributes, prototypes or signatures (GH#684)
    - ProhibitVoidMap and ProhibitVoidGrep now detect void context inside subs
      (GH#905), such as: sub { map { foo($_) } @list; return }
    - RequireArgUnpacking now allows a closure to be recognized as a way that
      subroutine arguments can be unpacked; this is specified with an optional
      allow_closures configuration option (GH#737)
    - ProhibitTwoArgOpen now disallows one-arg opens as well; also, it no longer
      allows two-arg opening of STDIN/STDOUT/STDERR (GH#652, GH#653)
    Fixes
    - ProhibitLeadingZeros would not handle sysopen and lexical variables
      correctly; this has been fixed (GH#789)
    Documentation
    - We note that the any() function is available in both List::MoreUtils and
      List::SomeUtils
    - Added instructions to perlcritic on how to integrate with Visual Studio
      Code
    Internals
    - Switch to using List::SomeUtils instead of List::MoreUtils
  - Use SPDX-format license tag


author: Paul Howarth <paul@city-fan.org> - 1.144-1
changelog:
  - Update to 1.144
    - Perl::Critic now requires Perl 5.10.1
    New features
    - The ProhibitAugmentedAssignmentInDeclaration policy now allows augmented
      assignments to "our" variables, if the allow_our option is enabled (GH#993)
    - ProhibitExplicitISA now recommends "use parent" instead of "use base"
      (GH#987)
    - RequireUseWarnings now recognizes that "use v5.36" implies warnings (GH#984)
    - Subroutines::ProhibitNestedSubs now allows that lexical subroutines can be
      inside other subroutines (GH#946, GH#971, GH#972)
    - RequireUseStrict now knows that Test::Spec enables it (GH#906)
    - ProhibitUnusedCapture now understands @{^CAPTURE} and %{^CAPTURE_ALL} that
      were added in Perl 5.26.0 (GH#778)
    - Allow numeric operators on special number strings 'NaN' and 'inf' (GH#803)
    Fixes
    - Miscellanea::ProhibitUselessNoCritic no longer filters out errors about
      itself, just as Miscellanea::ProhibitUnrestrictedNoCritic cannot (GH#939)
    - Fixed GH#878: bareword filehandle dies on "open(CHECK, '/foo');"
    Internals
    - Updated to using Perl 5.10.1; starting migrating to Perl 5.10-isms like
      defined-or
    Documentation
    - Updated some outdated docs in Perl::Critic::Utils (GH#951)


author: Paul Howarth <paul@city-fan.org> - 1.146-1
changelog:
  - Update to 1.146
    New features
    - ProhibitBarewordDirHandles now checks for sysopen as well as open (GH#732)
    - Added a Dockerfile in the extras/ directory for those who want to run P::C
      in a container (GH#832)
    - Subroutines::ProhibitBuiltinHomonyms now can take an "allows" parameter to
      specify subroutines that won't violate the policy (GH#14, GH#932)
    - ProhibitStringyEval now allows package declarations in evals when
      allow_includes = true; this is a common way packages are declared (GH#908)
    Bug Fixes
    - Fixed some problems with how Perl::Critic determined scope (GH#793)
    - Fixed improper violation for lexical subroutines in
      Subroutines::ProhibitBuiltinHomonyms (GH#973, GH#955, GH#546)
    - ValuesAndExpressions::RequireNumberSeparators no longer complains if your
      version numbers do not have number separators in them (GH#856, GH#904)
    - Fixed a false positive with split() in ProhibitUnusedCapture (GH#888)
    Internals
    - We no longer use or need IO::String (GH#997)
    - Removed requirements and mentions of modules no longer used:
      - Fatal
      - IO::String
      - IPC::Open2
      - Pod::Parser
      - Task::Weaken


author: Paul Howarth <paul@city-fan.org> - 1.148-1
changelog:
  - Update to 1.148
    Possible breakage
    - Removed Perl::Critic::Utils::DataConversion; any add-on policies that used
      it will need to copy the functions from there into their own code
    Documentation
    - ProhibitCascadingIfElse no longer suggests using given/when
    Internals
    - We no longer require Test::Deep for testing
    - Test::Kwalitee is now only recommended, not required
    - Random micro-optimizations, like using hashes for array contents checking,
      and using any() instead of calling grep as a boolean


author: Paul Howarth <paul@city-fan.org> - 1.150-1
changelog:
  - Update to 1.150 (rhnz#2175475)
    Enhancements
    - Added Test::Builder and Text::Wrap to the list of default exceptions in
      Variables::ProhibitPackageVars (GH#1025)
    Internals
    - We now use PPIx::Utils instead of PPIx::Utilities, which is more recently
      maintained


