RT58184: Depends on File::Path 2.06_05 (or so)
[dbsrgits/DBIx-Class.git] / Makefile.PL
index 01ef651..7aaeaa6 100644 (file)
@@ -1,4 +1,4 @@
-use inc::Module::Install 0.93;
+use inc::Module::Install 0.97;
 use strict;
 use warnings;
 use POSIX ();
@@ -12,6 +12,14 @@ use lib "$FindBin::Bin/lib";
 use Config;
 $ENV{PERL5LIB} = join ($Config{path_sep}, @INC);
 
+use Getopt::Long qw/:config gnu_getopt bundling_override no_ignore_case pass_through/;
+my $args = {
+  skip_author_deps => undef,
+};
+GetOptions ($args, 'skip_author_deps');
+if (@ARGV) {
+  warn "\nIgnoring unrecognized option(s): @ARGV\n\n";
+}
 
 ###
 ### DO NOT ADD OPTIONAL DEPENDENCIES HERE, EVEN AS recommends()
@@ -41,10 +49,11 @@ my $runtime_requires = {
   'Class::Inspector'         => '1.24',
   'Data::Page'               => '2.00',
   'DBI'                      => '1.609',
+  'File::Path'               => '2.07',
   'MRO::Compat'              => '0.09',
   'Module::Find'             => '0.06',
   'Path::Class'              => '0.18',
-  'SQL::Abstract'            => '1.66',
+  'SQL::Abstract'            => '1.67',
   'SQL::Abstract::Limit'     => '0.13',
   'Sub::Name'                => '0.04',
   'Data::Dumper::Concise'    => '1.000',
@@ -64,23 +73,45 @@ my $reqs = {
 
 
 # require extra modules for testing if we're in a checkout
+my $optdep_msg;
 if ($Module::Install::AUTHOR) {
-  warn <<'EOW';
+  if ($args->{skip_author_deps}) {
+    $optdep_msg = <<'EOW';
+
+******************************************************************************
+******************************************************************************
+***                                                                        ***
+*** IGNORING AUTHOR MODE: no optional test dependencies will be forced.    ***
+***                                                                        ***
+*** If you are using this checkout with the intention of submitting a DBIC ***
+*** patch, you are *STRONGLY ENCOURAGED* to install all dependencies, so   ***
+*** that every possible unit-test will run.                                ***
+***                                                                        ***
+******************************************************************************
+******************************************************************************
+
+EOW
+  }
+  else {
+    $optdep_msg = <<'EOW';
+
 ******************************************************************************
 ******************************************************************************
 ***                                                                        ***
 *** AUTHOR MODE: all optional test dependencies converted to hard requires ***
+***      ( to disabled re-run Makefile.PL with --skip_author_deps )        ***
 ***                                                                        ***
 ******************************************************************************
 ******************************************************************************
 
 EOW
 
-  require DBIx::Class::Optional::Dependencies;
-  $reqs->{test_requires} = {
-    %{$reqs->{test_requires}},
-    map { %$_ } (values %{DBIx::Class::Optional::Dependencies->req_group_list}),
-  };
+    require DBIx::Class::Optional::Dependencies;
+    $reqs->{test_requires} = {
+      %{$reqs->{test_requires}},
+      map { %$_ } (values %{DBIx::Class::Optional::Dependencies->req_group_list}),
+    };
+  }
 }
 
 # compose final req list, for alphabetical ordering
@@ -104,7 +135,10 @@ for my $mod (sort keys %final_req) {
   $rtype->($mod, $ver);
 }
 
+# output twice since the deplist is > 70 lines
+warn $optdep_msg if $Module::Install::AUTHOR;
 auto_install();
+warn $optdep_msg if $Module::Install::AUTHOR;
 
 # re-create various autogenerated documentation bits
 if ($Module::Install::AUTHOR) {
@@ -126,10 +160,24 @@ if ($Module::Install::AUTHOR) {
   #  PodInherit();
 }
 
+
 tests_recursive (qw|
     t
 |);
 
+# temporary(?) until I get around to fix M::I wrt xt/
+# needs Module::Install::AuthorTests
+eval {
+  recursive_author_tests (qw/xt/);
+  1;
+} || do {
+  my $err = $@;
+  eval { require Module::Install::AuthorTests }
+    || die "\nYou need Module::Install::AuthorTests installed to run this Makefile.PL:\n\n$@\n";
+  die $@;
+};
+
+
 install_script (qw|
     script/dbicadmin
 |);
@@ -157,11 +205,10 @@ create_distdir : manifest
 
 EOP
 
-
-
+homepage 'http://www.dbix-class.org/';
 resources 'IRC'         => 'irc://irc.perl.org/#dbix-class';
 resources 'license'     => 'http://dev.perl.org/licenses/';
-resources 'repository'  => 'http://dev.catalyst.perl.org/repos/bast/DBIx-Class/';
+resources 'repository'  => 'git://git.shadowcat.co.uk/dbsrgits/DBIx-Class.git';
 resources 'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class';
 
 # Deprecated/internal modules need no exposure
@@ -180,7 +227,7 @@ WriteAll();
 
 
 # Re-write META.yml to _exclude_ all forced requires (we do not want to ship this)
-if ($Module::Install::AUTHOR) {
+if ($Module::Install::AUTHOR && ! $args->{skip_author_deps} ) {
 
   # FIXME test_requires is not yet part of META
   my %original_build_requires = ( %$build_requires, %$test_requires );