Bring back _TempExtlib (d0435d75), this time for Sub::Quote
Peter Rabbitson [Tue, 24 May 2016 11:16:34 +0000 (13:16 +0200)]
And this is the part that brings back the to-be-removed portion (unlike the
previous 399b9455 which is here to stay)

See next commit for why we need this, to be removed once Moo $next ships

Makefile.PL
lib/DBIx/Class/Optional/Dependencies.pm
lib/DBIx/Class/StartupCheck.pm
xt/extra/lean_startup.t

index 412aa52..ce145a7 100644 (file)
@@ -21,6 +21,40 @@ BEGIN {
   $Module::Install::AUTHOR = 0 if (grep { $ENV{"PERL5_${_}_IS_RUNNING"} } (qw/CPANM CPANPLUS CPAN/) );
 }
 
+##
+## TEMPORARY (and non-portable)
+## Get trial Moo
+##
+BEGIN {
+  my $target_libdir = 'lib/DBIx/Class/_TempExtlib';
+
+  if ( ($Module::Install::AUTHOR or $ENV{TRAVIS}) and ! $ENV{MAKELEVEL} ) {
+
+    `rm -rf $target_libdir`;
+    `mkdir $target_libdir`;
+    for (
+      [ '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 $_->[2] $tdir`;
+      printf "\nIncluding %s git rev %s\n",
+        $_->[0],
+        scalar `GIT_DIR=$tdir git rev-parse $_->[1]`,
+      ;
+      `git archive --format=tar --remote=file://$tdir $_->[1] lib/ | tar --strip-components=1 -xC $target_libdir`;
+
+      #`rm -rf $tdir`;
+    }
+
+    unshift @INC, $target_libdir;
+
+    no_index directory => $target_libdir;
+  }
+}
+
 name         'DBIx-Class';
 version_from 'lib/DBIx/Class.pm';
 perl_version '5.008001';
@@ -60,6 +94,9 @@ my $runtime_requires = {
   '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
index 4bb44ff..4a15356 100644 (file)
@@ -7,6 +7,10 @@ BEGIN {
     require warnings and warnings->import;
     require strict and strict->import;
   }
+
+  # Temporary to satisfy TempExtlib under tests
+  require DBIx::Class::StartupCheck
+    if $0 =~ /\.t$/;
 }
 
 sub croak {
index 4986eb5..986e452 100644 (file)
@@ -1,5 +1,38 @@
 package DBIx::Class::StartupCheck;
 
+# Temporary - tempextlib
+use warnings;
+use strict;
+use namespace::clean;
+BEGIN {
+  # There can be only one of these, make sure we get the bundled part and
+  # *not* something off the site lib
+  for (qw(
+    Sub::Quote
+  )) {
+    (my $incfn = "$_.pm") =~ s|::|/|g;
+
+    if ($INC{$incfn}) {
+      die "\n\t*TEMPORARY* TRIAL RELEASE REQUIREMENTS VIOLATED\n\n"
+        . "Unable to continue - a part of the bundled templib contents "
+        . "was already loaded (likely an older version from CPAN). "
+        . "Make sure that @{[ __PACKAGE__ ]} is loaded before $_\n"
+        . "\n\tThis *WILL NOT* be necessary for the official DBIC release\n\n"
+      ;
+    }
+  }
+
+  require File::Spec;
+  our ($HERE) = File::Spec->rel2abs(
+    File::Spec->catdir( (File::Spec->splitpath(__FILE__))[1], '_TempExtlib' )
+  ) =~ /^(.*)$/; # screw you, taint mode
+
+  die "TempExtlib $HERE does not seem to exist - perhaps you need to run `perl Makefile.PL` in the DBIC checkout?\n"
+    unless -d $HERE;
+
+  unshift @INC, $HERE;
+}
+
 1;
 
 __END__
index b5f5491..d5a0b0a 100644 (file)
@@ -141,6 +141,7 @@ BEGIN {
     Sub::Name
     Sub::Defer
     Sub::Quote
+    File::Spec
 
     Scalar::Util
     Storable