(optdep) last-from-block is a compile-time warning, silence properly
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Optional / Dependencies.pm
index 6ac9e50..786828a 100644 (file)
@@ -80,6 +80,7 @@ my $dbic_reqs = {
       'Class::Unload' => '0.07',
       'Time::Piece' => '0',
       'Time::Piece::MySQL' => '0',
+      'DBD::mysql' => '4.023',
     },
   },
 
@@ -98,8 +99,18 @@ my $dbic_reqs = {
     },
   },
 
+  config_file_reader => {
+    pod => {
+      title => 'Generic config reader',
+      desc => 'Modules required for generic config file parsing, currently Config::Any (rarely used at runtime)',
+    },
+    req => {
+      'Config::Any' => '0.20',
+    },
+  },
+
   admin => {
-    include => '_json_any',
+    include => [qw( _json_any config_file_reader )],
     req => {
       %$moose_basic,
       'MooseX::Types::Path::Class' => '0.05',
@@ -225,6 +236,17 @@ my $dbic_reqs = {
     },
   },
 
+  binary_data => {
+    pod => {
+      title => 'Binary datatype support (certain RDBMS)',
+      desc =>
+        'Some RDBMS engines require specific versions of the respective DBD '
+      . 'driver for binary data support. Note that this group does not '
+      . 'require anything on its own, but instead is augmented by various '
+      . 'RDBMS-specific groups. See the documentation of each rbms_* group '
+      . 'for details',
+    },
+  },
 
   # this is just for completeness as SQLite
   # is a core dep of DBIC for testing
@@ -264,13 +286,19 @@ my $dbic_reqs = {
   rdbms_pg => {
     include => '_ic_dt_pg_base',
     req => {
-      # when changing this list make sure to adjust xt/optional_deps.t
       'DBD::Pg' => 0,
     },
     pod => {
       title => 'PostgreSQL support',
       desc => 'Modules required to connect to PostgreSQL',
     },
+    augment => {
+      binary_data => {
+        req => {
+          'DBD::Pg' => '2.009002'
+        },
+      }
+    },
   },
 
   _rdbms_mssql_common => {
@@ -497,13 +525,6 @@ my $dbic_reqs = {
       DBICTEST_PG_USER => 0,
       DBICTEST_PG_PASS => 0,
     ],
-    req => {
-      # the order does matter because the rdbms support group might require
-      # a different version that the test group
-      #
-      # when changing this list make sure to adjust xt/optional_deps.t
-      'DBD::Pg' => '2.009002',  # specific version to test bytea
-    },
   },
 
   test_rdbms_mssql_odbc => {
@@ -840,7 +861,9 @@ sub skip_without {
   if ( my $err = $self->req_missing_for($groups) ) {
     my ($fn, $ln) = (caller(0))[1,2];
     $tb->skip("block in $fn around line $ln requires $err");
-    local $^W = 0;
+
+    BEGIN { ${^WARNING_BITS} = "" }
+
     last SKIP;
   }
 
@@ -878,7 +901,7 @@ sub __envvar_group_desc {
   join '/', @res;
 }
 
-my $groupname_re = qr/ [A-Z_a-z][0-9A-Z_a-z]* /x;
+my $groupname_re = qr/ [a-z_] [0-9_a-z]* /x;
 my $modname_re = qr/ [A-Z_a-z] [0-9A-Z_a-z]* (?:::[0-9A-Z_a-z]+)* /x;
 my $modver_re = qr/ [0-9]+ (?: \. [0-9]+ )? /x;