Move the SQLite test dependency specification to optdeps
Peter Rabbitson [Mon, 9 Feb 2015 23:05:01 +0000 (00:05 +0100)]
Even though this is a hard test_requires (for now), move things to a proper
specification within OptDeps like all other RDBMS (will make icdt specs
much easier).

The OptDep module is very lightweight anyway, and loading it on all installs
will be a good exercise before spinning it off.

Makefile.PL
lib/DBIx/Class/Optional/Dependencies.pm
maint/Makefile.PL.inc/12_authordeps.pl

index 08a48fa..172cb66 100644 (file)
@@ -3,7 +3,13 @@ use warnings;
 
 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)
@@ -81,19 +87,13 @@ my $test_requires = {
   '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 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
@@ -107,8 +107,6 @@ my $test_requires = {
 # envvar *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 $deploy_req = DBIx::Class::Optional::Dependencies->req_list_for('deploy');
   for (keys %$deploy_req) {
     test_requires ($_ => $deploy_req->{$_})
index 8568be7..ae8abaf 100644 (file)
@@ -380,6 +380,19 @@ my $dbic_reqs = {
     },
   },
 
+  test_rdbms_sqlite => {
+    include => 'rdbms_sqlite',
+    req => {
+      ###
+      ### 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',
+    },
+  },
+
   test_rdbms_pg => {
     include => 'rdbms_pg',
     env => [
index b91d1de..398722e 100644 (file)
@@ -43,6 +43,9 @@ EOW
     } keys %{DBIx::Class::Optional::Dependencies->req_group_list}
   ]);
 
+  # this one is "special" - we need it both in optdeps and as a hard dep
+  delete $opt_testdeps->{'DBD::SQLite'};
+
   print "Including all optional deps\n";
   $reqs->{test_requires} = {
     %{$reqs->{test_requires}},