use 5.008001;
use inc::Module::Install 1.06;
-BEGIN { makemaker_args( NORECURS => 1 ) } # needs to happen early for old EUMM
+BEGIN {
+ # needs to happen early for old EUMM
+ makemaker_args( NORECURS => 1 );
+
+ local @INC = ('lib', @INC);
+ require DBIx::Class::Optional::Dependencies;
+}
##
## DO NOT USE THIS HACK IN YOUR DISTS!!! (it makes #toolchain sad)
##
## TEMPORARY (and non-portable)
-## Get trial SQLA
+## Get trial Moo
##
BEGIN {
my $target_libdir = 'lib/DBIx/Class/_TempExtlib';
`rm -rf $target_libdir`;
`mkdir $target_libdir`;
for (
- [ 'SQL-Abstract' => 'master' ],
+ [ 'Sub::Quote' => master => 'https://github.com/moose/Moo.git' ],
) {
my $tdir = "/tmp/dbictemplib/$_->[0]/";
`rm -rf $tdir`;
- `GIT_SSH=maint/careless_ssh.bash git clone --bare --quiet --branch=$_->[1] --depth=1 git://git.shadowcat.co.uk/dbsrgits/$_->[0] $tdir`;
+ `GIT_SSH=maint/careless_ssh.bash git clone --bare --quiet --branch=$_->[1] --depth=1 $_->[2] $tdir`;
printf "\nIncluding %s git rev %s\n",
$_->[0],
scalar `GIT_DIR=$tdir git rev-parse $_->[1]`,
### All of them *MUST* go to DBIx::Class::Optional::Dependencies
###
my $runtime_requires = {
- # FIXME - temporary, needs throwing out for something more efficient
- 'Data::Compare' => '1.22',
# DBI itself should be capable of installation and execution in pure-perl
# mode. However it has never been tested yet, so consider XS for the time
###
'DBI' => '1.57',
- # on older versions first() leaks
- # for the time being make it a hard dep - when we get
- # rid of Sub::Name will revisit this (possibility is
- # to use Devel::HideXS to force the pure-perl version
- # or something like that)
- 'List::Util' => '1.16',
-
# XS (or XS-dependent) libs
'Sub::Name' => '0.04',
# pure-perl (FatPack-able) libs
- 'Class::Accessor::Grouped' => '0.10010',
+ 'Class::Accessor::Grouped' => '0.10012',
'Class::C3::Componentised' => '1.0009',
- 'Class::Inspector' => '1.24',
- 'Config::Any' => '0.20',
'Context::Preserve' => '0.01',
- 'Data::Dumper::Concise' => '2.020',
'Data::Page' => '2.00',
'Devel::GlobalDestruction' => '0.09',
'Hash::Merge' => '0.12',
- 'Moo' => '1.004005',
+ 'Moo' => '2.000',
'MRO::Compat' => '0.12',
'Module::Find' => '0.07',
'namespace::clean' => '0.24',
- 'Path::Class' => '0.18',
'Scope::Guard' => '0.03',
- 'SQL::Abstract' => '1.78',
+ 'SQL::Abstract' => '1.81',
'Try::Tiny' => '0.07',
+ # Temp to satisfy TemptExtlib
+ 'Role::Tiny' => '2.000002',
+
# Technically this is not a core dependency - it is only required
# by the MySQL codepath. However this particular version is bundled
# since 5.10.0 and is a pure-perl module anyway - let it slide
'Test::Warn' => '0.21',
'Test::More' => '0.94',
- # needed for testing only, not for operation
- # we will move away from this dep eventually, perhaps to DBD::CSV or something
-###
-### IMPORTANT - do not raise this dependency
-### even though many bugfixes are present in newer versions, the general DBIC
-### rule is to bend over backwards for available DBDs (given upgrading them is
-### often *not* easy or even possible)
-###
- 'DBD::SQLite' => '1.29',
+ # This has a bug in the caller() override, ideally we need go get rid
+ # of it entirely, but that's for another maint
+ #
+ # FIXME - this does protect tests, but does *NOT* protect the rest of
+ # DBIC itself from a faulty caller() override. Something more substantial
+ # needs to be done in the guts of DBIC::Carp
+ #
+ 'Sub::Uplevel' => '0.19',
# this is already a dep of n::c, but just in case - used by t/55namespaces_cleaned.t
# remove and do a manual glob-collection if n::c is no longer a dep
'Package::Stash' => '0.28',
+
+ # needed for testing only, not for operation
+ # we will move away from this dep eventually, perhaps to DBD::CSV or something
+ %{ DBIx::Class::Optional::Dependencies->req_list_for('test_rdbms_sqlite') },
};
-# if the user has this env var set and no SQLT installed, tests will fail
-# Note - this is added as test_requires *directly*, so it gets properly
+# if the user has some of these env vars set and the deps are not available,
+# tests will fail
+# Note - these are added as test_requires *directly*, so they get properly
# excluded on META.yml cleansing (even though no dist can be created from this)
-# we force this req regarless of author_deps, worst case scenario it will
+# we force these reqs regarless of --with-optdeps, worst case scenario they will
# be specified twice
#
-# also note that we *do* set dynamic_config => 0, as this is the only thing
-# that we determine dynamically, and in all fairness if someone sets the
-# envvar *and* is not running a full Makefile/make/maketest cycle - they get
+# also note that we *do* set dynamic_config => 0, as these are the only things
+# that we determine dynamically, and in all fairness if someone sets these
+# envvars *and* is not running a full Makefile/make/maketest cycle - they get
# to keep the pieces
-if ($ENV{DBICTEST_SQLT_DEPLOY}) {
- local @INC = ('lib', @INC);
- require DBIx::Class::Optional::Dependencies;
- my $dep_req = DBIx::Class::Optional::Dependencies->req_list_for('deploy');
- for (keys %$dep_req) {
- test_requires ($_ => $dep_req->{$_})
+if ( my @optdeps = (
+ $ENV{DBICTEST_SQLT_DEPLOY} ? 'deploy' : (),
+ $ENV{DBICTEST_VIA_REPLICATED} ? 'replicated' : (),
+)) {
+ my $extra_deps = DBIx::Class::Optional::Dependencies->req_list_for(\@optdeps);
+ for (keys %$extra_deps) {
+ test_requires ($_ => $extra_deps->{$_})
}
}
-tests_recursive (qw|
- t
-|);
+tests_recursive ('t');
+tests_recursive ('xt') if (
+ $Module::Install::AUTHOR
+ or
+ $ENV{DBICTEST_RUN_ALL_TESTS}
+ or
+ ( $ENV{TRAVIS}||'' ) eq 'true'
+ or
+ ( $ENV{AUTOMATED_TESTING} and ! $ENV{PERL5_CPANM_IS_RUNNING} and ! $ENV{RELEASE_TESTING} )
+);
install_script (qw|
script/dbicadmin
# IFF we are running interactively
auto_install();
-WriteAll();
+{
+ # M::I understands unicode in meta but does not write with the right
+ # layers - fhtagn!!!
+ local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /Wide character in print/ };
+ WriteAll();
+}
exit 0;
config => [qw/gnu_getopt bundling_override no_ignore_case pass_through/]
);
my $args = {
- skip_author_deps => undef,
+ with_optdeps => undef,
};
$getopt->getoptions($args, qw/
- skip_author_deps|skip-author-deps
+ with_optdeps|with-optdeps
/);
if (@ARGV) {
warn "\nIgnoring unrecognized option(s): @ARGV\n\n";
"\t" . $mm_proto->oneliner( qq(\$ENV{PERLIO}='unix' and system( \$^X, qw( -MExtUtils::Command -e dos2unix -- ), $targets ) ) );
};
- # we are in the process of (re)writing the makefile - some things we
- # call below very well may fail
- local $ENV{DBICTEST_NO_MAKEFILE_VERIFICATION} = 1;
-
- require File::Spec;
# string-eval, not do(), because we need to provide the
# $mm_proto, $reqs and $*_requires lexicals to the included file
# (some includes *do* modify $reqs above)
- for my $inc (sort glob ( File::Spec->catfile('maint', 'Makefile.PL.inc', '*') ) ) {
+ for my $inc (sort glob ( 'maint/Makefile.PL.inc/*' ) ) {
my $src = do { local (@ARGV, $/) = $inc; <> } or die $!;
eval "use warnings; use strict; $src" or die sprintf
"Failed execution of %s: %s\n",