Add permanent plumbing for _TempExtlib (d0435d75)
Peter Rabbitson [Tue, 24 May 2016 12:36:41 +0000 (14:36 +0200)]
Since this is the second time we need this, there likely will be more down the
road. Split the permanenet and temporary parts into two commits so reverting
is less of a PITA.

This commit contains the pieces that are perfectly fine to lay dormant until
times we need _TempExtlib

12 files changed:
.gitignore
lib/DBIx/Class/StartupCheck.pm
lib/DBIx/Class/_Util.pm
maint/careless_ssh.bash [new file with mode: 0755]
maint/gen_pod_inherit
t/00describe_environment.t
xt/dist/loadable_standalone_testschema_resultclasses.t
xt/dist/pod_coverage.t
xt/dist/postdistdir/pod_footers.t
xt/dist/strictures.t
xt/extra/internals/namespaces_cleaned.t
xt/extra/internals/optional_deps.t

index c8cda3e..81d2445 100644 (file)
@@ -19,3 +19,5 @@ t/var/
 *~
 maint/.Generated_Pod
 examples/Schema/db
+
+lib/DBIx/Class/_TempExtlib
index dff403b..4986eb5 100644 (file)
@@ -1,8 +1,5 @@
 package DBIx::Class::StartupCheck;
 
-use strict;
-use warnings;
-
 1;
 
 __END__
index 3f60d3f..a20705d 100644 (file)
@@ -1,6 +1,8 @@
 package # hide from PAUSE
   DBIx::Class::_Util;
 
+use DBIx::Class::StartupCheck;  # load es early as we can, usually a noop
+
 use warnings;
 use strict;
 
diff --git a/maint/careless_ssh.bash b/maint/careless_ssh.bash
new file mode 100755 (executable)
index 0000000..1b9e0bc
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+/usr/bin/ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$@"
index e441e88..4164da6 100755 (executable)
@@ -47,6 +47,7 @@ Pod::Inherit->new({
       lib/DBIx/Class/DB.pm
       lib/DBIx/Class/CDBICompat/
       lib/DBIx/Class/CDBICompat.pm
+      lib/DBIx/Class/_TempExtlib/
    ),
    # skip the ::Storage:: family for now
    qw(
index 37e3da9..e24249f 100644 (file)
@@ -167,6 +167,8 @@ find({
   wanted => sub {
     -f $_ or return;
 
+    $_ =~ m|lib/DBIx/Class/_TempExtlib| and return;
+
     # can't just `require $fn`, as we need %INC to be
     # populated properly
     my ($mod) = $_ =~ /^ lib [\/\\] (.+) \.pm $/x
index 5416df8..95dd24f 100644 (file)
@@ -15,7 +15,7 @@ use File::Find;
 my $worker = sub {
   my $fn = shift;
 
-  if (my @offenders = grep { $_ !~ m{DBIx/Class/(?:_Util|Carp)\.pm} } grep { $_ =~ /(^|\/)DBI/ } keys %INC) {
+  if (my @offenders = grep { $_ !~ m{DBIx/Class/(?:_Util|Carp|StartupCheck)\.pm} } grep { $_ =~ /(^|\/)DBI/ } keys %INC) {
     die "Wtf - DBI* modules present in %INC: @offenders";
   }
 
index 4505af4..b98a555 100644 (file)
@@ -116,6 +116,8 @@ my $exceptions = {
         /]
     },
 
+    'DBIx::Class::_TempExtlib*'                     => { skip => 1 },
+
     'DBIx::Class::Admin::*'                         => { skip => 1 },
     'DBIx::Class::ClassResolver::PassThrough'       => { skip => 1 },
     'DBIx::Class::Componentised'                    => { skip => 1 },
index 4b14ded..ee2ac9d 100644 (file)
@@ -29,6 +29,7 @@ find({
 
     return unless -f $fn;
     return unless $fn =~ / \. (?: pm | pod ) $ /ix;
+    return if $fn =~ qr{\Qlib/DBIx/Class/_TempExtlib/};
 
     my $data = slurp_bytes $fn;
 
index c896c95..93feda8 100644 (file)
@@ -46,6 +46,10 @@ find({
       t/lib/ANFANG.pm                                 # no stictures by design (load speed sensitive)
         |
       lib/DBIx/Class/Optional/Dependencies.pm         # no stictures by design (load speed sensitive)
+        |
+      lib/DBIx/Class/StartupCheck.pm                  # no stictures by design (load speed sensitive)
+        |
+      lib/DBIx/Class/_TempExtlib/.+
     )$}x;
 
     my $f = $_;
index 36e12b1..8584bd3 100644 (file)
@@ -208,6 +208,7 @@ sub find_modules {
   find( {
     wanted => sub {
       -f $_ or return;
+      $_ =~ m|lib/DBIx/Class/_TempExtlib| and return;
       s/\.pm$// or return;
       s/^ (?: lib | blib . (?:lib|arch) ) . //x;
       push @modules, join ('::', File::Spec->splitdir($_));
index de45ae0..c1aa96e 100644 (file)
@@ -20,6 +20,9 @@ use List::Util 'shuffle';
 use Config;
 
 SKIP: {
+  skip 'Lean load pattern testing makes no sense with TempExtlib', 1
+    if grep { $_ =~ /TempExtlib/ } @INC;
+
   skip 'Lean load pattern testing unsafe with $ENV{PERL5OPT}', 1
     if $ENV{PERL5OPT};