0.053006 -- 2021-12-27

    [Compatibility]

    - Fix versions of used modules for Perl 5.14.1
        If we claim to to be compatible with Perl 5.14, then we should
        make sure that the minimum required version of modules included
        in the default distribution match up with what we require.

        Files modified:
            lib/**/*.pm
            t/**/*.t

    - Use `bsd_glob` instead of `:bsd_glob`
        `File::Glob` in Perl 5.14 didn't have the `:bsd_glob` tag yet.
        Since we only need the `bsd_glob()` function, just import the
        function.

        Files modified:
            lib/Term/CLI/Argument/Filename.pm

    [Bug Fixes]

    - Make sure Term::ReadKey uses a "TTY" filehandle
        In cases of automatic builds, STDIN and STDOUT may be
        redirected. Term::ReadLine can handle that, Term::ReadKey
        cannot, so we need to be explicit.

        Files modified:
            lib/Term/CLI/ReadLine.pm

    - Minor POD fixes.

0.053005 -- 2021-12-23

    - Validate keyboard signal names before using them.

        Files modified:
            lib/Term/CLI/ReadLine.pm

    - Add back the dependency on Term::ReadLine::Gnu
        Tests will break on MSWIN if the ::Perl backend is chosen.

        Files modified:
            dist.ini

0.053004 -- 2021-12-23

    [Bug Fixes]

    - Don't use `state` hash; not supported on older Perls
      Use `state $xx = { ... }` instead.

        Files modified:
            lib/Term/CLI/ReadLine.pm

0.053003 -- 2021-12-23

    [Packaging]

    - Remove author tests from MANIFEST.SKIP

0.053002 -- 2021-12-23

    [Packaging]

    - Fix MANIFEST.

0.053001 -- 2021-12-22

    [Features]

    - Now indepenent of Term::ReadLine implementation
        I.e. compatible with Term::ReadLine::Perl and Term::ReadLine::Stub
        as well (though Term::ReadLine::Gnu is still the best supported).

    - Improved signal handling:
        - Add `ignore_keyboard_signal`.
        - Ignore QUIT control sequence (makes ::Gnu behave like ::Perl).

    - Allow Term::CLI::Argument::Enum values to be provided dynamically
        Term::CLI::Argument::Enum's value_list attribute may be a coderef,
        which should return an array reference of valid values.
        (Pull request #13 from djerius/dynamic-enum.)

    - Add "cleanup" attribute.

    [Tutorial]

    - Formatting fixes.
    - Add SIGNAL HANDLING section.
    - Add HISTORY HANDLING section.
    - Add tutorial/example_17_suspend.pl
    - Use `local($SIG{...})` in `sleep` command.

    [Refactoring]

    - Move most history logic to Term::CLI::ReadLine
        Term::CLI::ReadLine is much more of a compatibility layer
        between Term::CLI and Term::ReadLine now, providing compatibility
        code to compensate for missing functionality in the underlying
        Term::ReadLine implementation.

    [Bug Fixes]

    - Fix Enum validation - closes #10
        Enum validation finds potential matches to an argument by performing
        prefix comparison against the list of valid values. This works fine
        as long as the valid values are not prefixes of each other; if they
        are, then the shorter strings will never be considered valid input.
        
    - GNU ReadLine - exclude prompt ornaments for leading/trailing whitespace.
        The Term::ReadLine::GNU implementation will just slap the prompt
        between the ornament-start/ornament-end sequences, but this looks
        ugly if there are leading/trailing spaces and the ornament is set
        to e.g. underline or standout. This is now brought in line with how
        the Term::ReadLine::Perl implementation handles it, by inserting
        relevant escape sequences where necessary.

    [Packaging]

    - Various build fixes.
    - Remove prereq on Term::ReadLine::Gnu.

0.052005 -- 2021-05-27

    - Increase coverage of Term::CLI.

        Files modified:
            lib/Term/CLI.pm
            t/055-Term-CLI.t

    - Remove reference to Modern::Perl

        Files modified:
            lib/Term/CLI/Tutorial.pod

    - Clean up `use` statements and `#!` in examples and tutorials.

        Files modified:
            examples/*
            tutorial/*

0.052004 -- 2021-05-27

    - Ignore; tagged without changelog, see 0.052005 instead.

0.052003 -- 2021-05-26

    - Packaging fixes
    - Get rid of Term::CLI::PerlFeatures again
        CPANTS kwalitee indicator complains about missing `use strict`
        and `use warnings`. :-(
    - Add test coverage for `help --all --pod`
    - CLI::Tutorial POD: fix link to "Term::CLI/History Control".

0.052002 -- 2021-05-19
    - Packaging fixes.
    - POD fixes.
    - Get rid of `Modern::Perl` dependency (add `Term::CLI::PerlFeatures`)

    - Force use of `Term::ReadLine::Gnu`
        `Term::ReadLine` *always* looks at the `PERL_RL` environment variable.
        This is a problem if your applications depends on not just
        `Term::ReadLine`, but features of `Term::ReadLine::Gnu` in particular.

        The way we can force the issue, is to make sure we override `PERL_RL`
        before loading `Term::ReadLine`.

        The workaround only works if `Term::ReadLine` has not been loaded by
        another module yet.

        Hopefully, this fixes the CPAN tests on FreeBSD as well.

0.052001 -- 2021-04-30

    - Update copyright.

    - Packaging fixes.

    - Improve "help":
        - Fix "help" test suite to fit new POD format.
        - Add "--all" flag to "help" command.
        - Refactor help text generation.
        - POD fixes.
        - Update tutorial.

    - POD and whitespace fixes.

0.051007 -- 2019-11-18

    - Get rid of bogus file "xx".

0.051006 -- 2019-11-18

    - Add script to get current version.

        Files added:
            scratch/get_version.pl

    - Autoincrement version if argument is +1.

        Files modified:
            scratch/fix_version_number.pl

    - Do not try to load Term::ReadLine::Gnu directly.
        Term::ReadLine::Gnu should not be loaded directly. Instead,
        the Term::CLI::ReadLine->new method will check whether a
        newly created Term::ReadLine object is of the "::Gnu" variety.
        If not, it will call "Carp::confess()".

        Files modified:
            lib/Term/CLI/ReadLine.pm

0.051005 -- 2019-11-06

    - Bad lexical scope for $has_terminator
        Re-declared $has_terminator as "my" in the case
        of Getopt::Long < 2.51, which made it pretty much a no-op.

        Files modified:
            lib/Term/CLI/Command.pm

    - Fix BuildRequires and Provides in Fedora pkg spec.

        Files modified:
            pkg/fedora/perl-Term-CLI.spec

0.051004 -- 2019-11-05

    - Work around changed Getopt::Long 2.51 behaviour
        Getopt::Long 2.51 fixed its documented behaviour ("--" is kept
        in the argument list if "pass_through" is specified). Previous
        versions removed it. Term::CLI now checks for the Getopt::Long
        version and adapts where necessary.

        Files modified:
            lib/Term/CLI/Command.pm

    - Add perl-generators to BuildRequires

        Files modified:
            pkg/fedora/perl-Term-CLI.spec

    - Fix hint on tagging/pushing.

        Files modified:
            RELEASING

0.051003 -- 2018-07-11

    - POD fixes:
        - Minor POD polishing.

            Files modified:
                lib/Term/CLI.pm
                lib/Term/CLI/Command.pm
                lib/Term/CLI/Intro.pod

        - Fix ::Int -> ::Float in POD.

            Files modified:
                lib/Term/CLI/Argument/Number/Float.pm

        - "bss>" -> "bssh>"

            Files modified:
                lib/Term/CLI/Tutorial.pod

        - Fix examples.

            Files modified:
                lib/Term/CLI/Tutorial.pod

        - fix missing comma on callback option

            Files modified:
                lib/Term/CLI.pm

0.051002 -- 2018-03-16

    - Fix version number.
        0.05002 might look like "0.05.2", but is in fact "0.50.20".
        Insert a digit to make fix this: "0.051002" translates to
        "0.51.2".

        Files modified:
            lib/**/*.pm

0.05002 -- 2018-03-16

    [Bug Fixes]

    - Don't "reset_after_signal" after re-throwing.

        Files modified:
            lib/Term/CLI.pm

0.05001 -- 2018-03-16

    [Bug Fixes]

    - Fix signal handling
        - WINCH is now handled correctly.
        - TTIN, TTOU, HUP, and TERM are now handled as well.

        Files modified:
            lib/Term/CLI.pm

    - Fix heuristic =over determination.

        Files modified:
            lib/Term/CLI/Command/Help.pm

    [Features]

    - Expand tutorial(s).

        Files modified:
            tutorial/*.t
            lib/Term/CLI/Tutorial.pod

    [POD fixes]

    - Term::CLI::L10N: Add EXAMPLES and DESCRIPTION.
    - Term::CLI::Intro: Include L10N modules and Bool argument class.
    - Term::CLI: Bring POD in line with code.
    - Term::CLI::L10N::nl: its => it's

    [Miscellaneous Changes]

    - pkg/fedora/perl-Term-CLI.spec: Fix packager.

    - lib/**/*.pm: Reduce length of "#==...==" lines.

    - Update POD on signal handling.

        Files modified:
            lib/Term/CLI.pm

    - Fix tutorial file names.

        Files modified:
            lib/Term/CLI/Tutorial.pod

    - Update with dzil build.

        Files modified:
            MANIFEST

0.04009 -- 2018-03-14

    - Use $^X to find current Perl interpreter.
      Also, remove "#!" line from "fake pager".

        Files modified:
            t/065-Term-CLI-Command-Help.t
            t/scripts/pager.pl

    - Lower versions for FindBin, strict, subs, warnings.

        Files modified:
            t/*
            lib/*

0.04008 -- 2018-03-13

  [Bug Fixes]

    - Fake pager should drain STDIN before exiting.
      This should finally fix the failing test in
      t/065-Term-CLI-Command-Help.t

        Files modified:
            t/scripts/pager.pl

  [Other Changes]

    - Better check and diagnostics for pager error.

        Files modified:
            t/065-Term-CLI-Command-Help.t

0.04007 -- 2018-03-13

  [Bug Fixes]

    - Try to add a "diag" to failing test.

        Files modified:
            t/065-Term-CLI-Command-Help.t

  [Other Changes]

    - $SIG instead of $::SIG.

        Files modified:
            lib/Term/CLI/Command/Help.pm

0.04006 -- 2018-03-12

  [Other Changes]

    - Lower min. version for Moo, drop Moo::Role version.

        Files modified:
            lib/**/*.pm

    - Remove use of POSIX.

        Files modified:
            lib/Term/CLI/Argument/Number/Float.pm
            Makefile.PL
            cpanfile

0.04005 -- 2018-03-12

  [Bug Fixes]
    - Separate STDOUT/pager output for help a bit more.
        Also, set "status" to $? regardless of close() result.
        Some tests for status still fail, and I'm suspecting a
        race condition, making close() return "true". If this
        fails as well, then I'll just skip the test. :-(

        Files modified:
            lib/Term/CLI/Command/Help.pm

  [Other Changes]
    - Require specific versions of modules.
        Minimal versions come from Debian jessie (8) install. Wheezy has
        a version of "Moo" that is too old.

        Files modified: (almost all)

    - Use MetaProvides::Package in dist.ini

        Files modified:
            dist.ini

    - Clean up MANIFEST and gitignore

        Files modified:
            MANIFEST.SKIP, MANIFEST, .gitignore

    - Add script to extract RPM provides from PM files.

        Files added:
            scratch/get_rpm_provides.pl

    - Fix dependencies and provides.

        Files modified:
            pkg/fedora/perl-Term-CLI.spec

0.04004 -- 2018-03-10

  [Bug Fixes]

    - Don't check STDERR on pager error.
        Something's off in checking STDERR when running an external
        pager. Could be race condition? Anyway, we only care about
        propagation of the exit status, so just test that.

        Tests work in my dev. environment, but fail about 30-50% of
        the time on CPAN testers.

        Files modified:
            t/065-Term-CLI-Command-Help.t
            t/scripts/pager.pl

0.04003 -- 2018-03-09

  [Bug Fixes]

    - Use custom script for pager error exit.
        Running external commands in tests is not as easy
        as it seems...

        Files added:
            t/scripts/pager.pl

        Files modified:
            t/065-Term-CLI-Command-Help.t

  [Other Changes]

    - Copy MANIFEST from D::Z build.

        Files modified:
            dist.ini

    - Add MANIFEST from D::Z build.

        Files added:
            MANIFEST

0.04002 -- 2018-03-09

  [Bug Fixes]

    - Ignore SIGPIPE in _execute_help -- closes #5

        Files modified:
            lib/Term/CLI/Command/Help.pm

    - Select raw STDOUT for help output.

        Files modified:
            t/065-Term-CLI-Command-Help.t

    - Fix English-centred error message check.

        Files modified:
            t/075-Term-CLI-History.t

  [Features]

    - Allow empty "pager" (dump to STDOUT)
        Instead of falling back to "cat", fall back to
        raw STDOUT printing. An empty pager list will
        select STDOUT as well.

        Files modified:
            lib/Term/CLI/Command/Help.pm

  [Other Changes]

    - Clean up commented-out code.

        Files modified:
            lib/Term/CLI/Command/Help.pm

0.04001 -- 2018-03-08

  [Features]

    - Multi-language support through Locale::Maketext.

      Files: many

    - Add min_len and max_len restrictions to
      Term::CLI::Argument::String.

      Files:
        lib/Term/CLI/Argument/String.pm

    - Improve usage text formatting.

      Files:
        lib/Term/CLI/Role/HelpText.pm

  [New Modules]

    - Add Term::CLI::L10N
    - Add Term::CLI::L10N::en
    - Add Term::CLI::L10N::nl

      Files:
        lib/Term/CLI/L10N.pm
        lib/Term/CLI/L10N/en.pm
        lib/Term/CLI/L10N/nl.pm

    - Add Term::CLI::Argument::Bool

      Files:
        lib/Term/CLI/Argument/Bool.pm

  [Bug Fixes]

    - Fix various (POD and diagnostic message) typos.

    - Don't use POSIX's strtod() and strtol() for number conversions;
      rely on regex and looks_like_number() instead.

      Files:
        lib/Term/CLI/Argument/Number.pm
        lib/Term/CLI/Argument/Number/Float.pm
        lib/Term/CLI/Argument/Number/Int.pm

    - Tests now force the 'en' language where necessary.
      Error messages are hard to verify without forcing
      a particular language.

      Files:
        lib/Term/CLI/Role/HelpText.pm

    - Fix usage text with variable number of arguments.

      Files:
        lib/Term/CLI/Role/HelpText.pm

    - Check SUPER's validate with defined(), not boolean eval.

      Files:
        lib/Term/CLI/Argument/Enum.pm

    - Fix "=over" size in command summary to a maximum.

      Files:
        lib/Term/CLI/Command/Help.pm

    - Fix test on FreeBSD - closes #2

      Error message from "cat" on invalid option differs from
      Linux to FreeBSD. Just check for "cat:" in the error
      message instead.

      Files:
        t/065-Term-CLI-Command-Help.t

    - Fix tests for non-English locales - closes #3

      Tests were assuming that external commands
      communicate their diagnostics in English.

      Files:
        t/065-Term-CLI-Command-Help.t
        t/075-Term-CLI-History.t

    - Turn off "-T"

      Files:
        t/065-Term-CLI-Command-Help.t

0.03002 -- 2018-02-26

  [Bug Fixes]

    - Fix float comparision in test -- fixes #1
      On Perl installs compiled with -Duselongdouble,
      1.23e-4 is 0.000123000000000000008, not 0.000123.

    - dist.ini: add dependencies not picked up by AutoPrereqs

  [Other Changes]

    - Update version and dependencies.

0.03001 -- 2018-02-26

  - Switch to using Dist::Zilla.
  - Some code cleanups (remove unnecessary "use" clauses).
  - Fix some POD pages.

0.02 -- 2018-02-24

  - Fix version numbers: package Foo 0.02 { ... }

0.01 -- 2018-02-24

  - First release.
