# DEV NOTE, CORRELATION #pt000: minimum Perl version to support "my array @foo;" & "my hash %bar;" Perl::Types syntax
requires 'perl', '5.012';

# developer dependencies, generated by `dzil authordeps` w/ "[AutoPrereqs]" in 'dist.ini' & then manually corrected;
# DEV NOTE: developer dependencies include author-only test dependencies
on 'develop' => sub {
    # DEV NOTE, CORRELATION #gt01: choose EITHER automatic dependencies (looks in all files, may not work perfectly)
#    requires 'Dist::Zilla::Plugin::AutoPrereqs';
    # OR manual dependencies (reads 'cpanfile' before searching, preferred)
    requires 'Dist::Zilla::Plugin::Prereqs::FromCPANfile';
    requires 'Dist::Zilla::Plugin::CheckChangesHasContent';
    requires 'Dist::Zilla::Plugin::InsertCopyright';
    requires 'Dist::Zilla::Plugin::MetaResources';
    requires 'Dist::Zilla::Plugin::NextRelease';
    requires 'Dist::Zilla::PluginBundle::Starter::Git';
    requires 'Software::License::GPL_3';
    # DEV NOTE, CORRELATION #gt02: enable the following line for projects using Inline::C, Inline::CPP, or XS
    requires 'Dist::Zilla::Plugin::MakeMaker::Awesome';
    requires 'Perl::Tidy';     # includes `perltidy`
    requires 'Perl::Critic';   # includes `perlcritic`
    requires 'Code::TidyAll';  # includes `tidyall`
    requires 'Code::TidyAll::Plugin::PerlTidy';
    requires 'Code::TidyAll::Plugin::PerlCritic';

    # DEV NOTE, CORRELATION #gt03: copy all author dependencies between 'cpanfile' & 'xt/author/00_depend.t';
    # used by 'xt/author/01_changes_lint.t'
    requires 'CPAN::Changes';
    requires 'version';

    # used by 'xt/author/02_markdown_lint.t'
# DEV NOTE, CORRELATION #gt05: deps of both author & normal tests must be in 'cpanfile' in both "develop" & "test"
#    requires 'File::Find';  # dependency from Perl core distribuion, don't actually try to install separately
    requires 'IPC::Run3';

    # NEED DELETE, RPERL REFACTOR: used by 'bin/dev/perl_types_refactor_names_parser.pl'
#    requires 'File::Copy';  # dependency from Perl core distribuion, don't actually try to install separately
    requires 'File::Path';
    requires 'Getopt::Long';
};

# DEV NOTE, CORRELATION #gt04: copy all build & normal & testing dependencies between 'cpanfile' & 't/00_depend.t';
# build dependencies, generated by `dzil listdeps` w/ "[AutoPrereqs]" in 'dist.ini' & then manually corrected
requires 'Alien::GMP';
requires 'Alien::GSL';
# NEED ANSWER: is Inline::Filters actually used by Perl::Types or only by Perl::Compiler?
requires 'Inline';
requires 'Inline::Filters';
requires 'Inline::C';
requires 'Inline::CPP';

# normal dependencies, generated by `dzil listdeps` w/ "[AutoPrereqs]" in 'dist.ini' & then manually corrected
requires 'Carp';
requires 'Data::Dumper';
#requires 'English';  # dependency from Perl core distribuion, don't actually try to install separately
requires 'Exporter';
#requires 'File::Basename';  # dependency from Perl core distribuion, don't actually try to install separately
requires 'File::Spec';
requires 'IPC::Cmd';
requires 'IPC::Run3';
requires 'Math::BigInt';
requires 'Math::GSL::BLAS';
requires 'Math::GSL::CBLAS';
requires 'Math::GSL::Matrix';
#requires 'overload';  # dependency from Perl core distribuion, don't actually try to install separately
requires 'PadWalker';
requires 'parent';
#requires 'POSIX';  # dependency from Perl core distribuion, don't actually try to install separately
requires 'Scalar::Util';
requires 'Term::ReadLine';

# testing dependencies, generated by `dzil listdeps` w/ "[AutoPrereqs]" in 'dist.ini' & then manually corrected
on 'test' => sub {
# NEED UPGRADE: migrate from Test to Test2
    requires 'Test2::V0';
#    requires 'Test2::Tools::Exception';
    requires 'Test2::Tools::LoadModule';
#    requires 'Test2::Tools::PerlCritic';
#    requires 'Test2::Plugin::Cover';
    requires 'Test::More';
    requires 'Test::Exception';
    requires 'Test::Number::Delta';
    requires 'Cwd';

# DEV NOTE, CORRELATION #gt05: deps of both author & normal tests must be in 'cpanfile' in both "develop" & "test"
#    requires 'File::Find';  # dependency from Perl core distribuion, don't actually try to install separately
};
