From: Peter Rabbitson Date: Tue, 24 May 2016 11:16:34 +0000 (+0200) Subject: Bring back _TempExtlib (d0435d75), this time for Sub::Quote X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=b46b85376;p=dbsrgits%2FDBIx-Class-Historic.git Bring back _TempExtlib (d0435d75), this time for Sub::Quote 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 --- diff --git a/Makefile.PL b/Makefile.PL index 412aa52..ce145a7 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -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 diff --git a/lib/DBIx/Class/Optional/Dependencies.pm b/lib/DBIx/Class/Optional/Dependencies.pm index 4bb44ff..4a15356 100644 --- a/lib/DBIx/Class/Optional/Dependencies.pm +++ b/lib/DBIx/Class/Optional/Dependencies.pm @@ -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 { diff --git a/lib/DBIx/Class/StartupCheck.pm b/lib/DBIx/Class/StartupCheck.pm index 4986eb5..986e452 100644 --- a/lib/DBIx/Class/StartupCheck.pm +++ b/lib/DBIx/Class/StartupCheck.pm @@ -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__ diff --git a/xt/extra/lean_startup.t b/xt/extra/lean_startup.t index b5f5491..d5a0b0a 100644 --- a/xt/extra/lean_startup.t +++ b/xt/extra/lean_startup.t @@ -141,6 +141,7 @@ BEGIN { Sub::Name Sub::Defer Sub::Quote + File::Spec Scalar::Util Storable