Alien-Selenium
view release on metacpan or search on metacpan
t/maintainer/dependencies.t view on Meta::CPAN
exit;
}
}
plan tests => 3;
=pod
=head1 TWEAKABLES
=head2 %is_subpackage_of
A hash table that associates dependent packages
(e.g. C<DBIx::Class::Schema>, C<Catalyst::Controller>) to the
canonical top-level package in their distribution
(e.g. C<DBIx::Class>, C<Catalyst>). Requirements and dependencies
that name a key in %is_subpackage_of will be treated as though they
were the corresponding value instead.
=cut
# TODO: use Module::Depends or some such to compute this
# automatically.
our %is_subpackage_of =
( "Catalyst::Controller" => "Catalyst",
"Catalyst::View" => "Catalyst",
"Catalyst::Model" => "Catalyst",
"Catalyst::Runtime" => "Catalyst",
"Catalyst::Utils" => "Catalyst",
"Catalyst::Action" => "Catalyst",
"Catalyst::Test" => "Catalyst",
"DBIx::Class::Schema" => "DBIx::Class",
"DateTime::Duration" => "DateTime",
);
=head2 @pervasives
The list of modules that can be assumed to always be present
regardless of the version of Perl, and need not be checked for. By
default only pragmatic modules (starting with a lowercase letter) and
modules that already were in 5.000 according to L<Module::CoreList>
are listed.
=cut
our @pervasives = qw(base warnings strict overload utf8 vars constant
Config Exporter Data::Dumper Carp
Getopt::Std Getopt::Long
DynaLoader ExtUtils::MakeMaker
POSIX Fcntl Cwd Sys::Hostname
IO::File IPC::Open2 IPC::Open3
File::Basename File::Find
UNIVERSAL);
=head2 @maintainer_dependencies
The list of modules that are used in C<t/maintainer>, and for which
there should be provisions to bail out cleanly if they are missing (as
demonstrated at the top of this very test script). Provided such
modules are not listed as dependencies outside of C<t/maintainer>,
they will be ignored. (Incidentally this means that dependencies in
C<t/maintainer> are actually accounted for and not just thrown out, as
it may be the case that I'm not the B<only> maintainer of a given
module.)
=cut
our @maintainer_dependencies =
qw(Pod::Text Pod::Checker Test::Pod Test::Pod::Coverage
Test::NoBreakpoints Module::ScanDeps
Test::Kwalitee Module::CPANTS::Analyse Module::CPANTS::Kwalitee::Files);
=head2 @sunken_dependencies
Put in there any modules that can get required without our crude
source code parser being able to spot them.
=cut
our @sunken_dependencies =
("Catalyst::Engine::Apache", # Required by simply running under mod_perl
);
=head2 @ignore
Put any other modules that cause false positives in there. Consider
adding them to Build.PL instead, or rewriting your source code in a
more contrived way so that L<Module::ScanDeps> won't spot them
anymore.
=cut
our @ignore = ("IO", # False positive by Module::ScanDeps
);
=head1 IMPLEMENTATION
We load the C<Build> script so as to be able to enumerate the
dependencies and call I<<find_pm_files()> and I<<find_test_files()>>
on it.
=cut
my $buildcode = read_file("Build");
die "Cannot read Build: $!" if ! defined $buildcode;
$buildcode =~ s|\$build->dispatch|\$build|g;
our $build = do {
local @INC = @INC; # lest Module::Build mess with it
eval <<"STUFF" or die $@;
no warnings "redefine";
local *Module::Build::Base::up_to_date = sub {1}; # Shuts warning
$buildcode
STUFF
};
ok($build->isa("Module::Build"));
=pod
The run-time dependencies are examined in the C<blib> directory, as
the Build script will often muck around with .pm files e.g. to remove
( run in 0.514 second using v1.01-cache-2.11-cpan-d59ab9ce9b0 )