X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=maint%2FMakefile.PL.inc%2F12_authordeps.pl;h=405bc1e094948f0acca4e137eb253011c31db4d4;hb=9ab03b7c122ecdf0779aaaa599423a6a92a8533a;hp=3a8a2b7e65155697888e61abf7bdf2382c6e8b8d;hpb=344f1f52e93998d0805fc6d1163817fa6d34c506;p=dbsrgits%2FDBIx-Class.git diff --git a/maint/Makefile.PL.inc/12_authordeps.pl b/maint/Makefile.PL.inc/12_authordeps.pl index 3a8a2b7..405bc1e 100644 --- a/maint/Makefile.PL.inc/12_authordeps.pl +++ b/maint/Makefile.PL.inc/12_authordeps.pl @@ -1,6 +1,6 @@ my ($optdep_msg, $opt_testdeps); -if ($args->{skip_author_deps}) { +unless ($args->{with_optdeps}) { $optdep_msg = <<'EOW'; ****************************************************************************** @@ -9,8 +9,12 @@ if ($args->{skip_author_deps}) { *** 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. *** +*** patch you may want to aim at running more tests by re-configuring via: *** +*** *** +*** perl Makefile.PL --with-optdeps *** +*** *** +*** which will install all optional dependencies. This is not a mandatory *** +*** step - the extensive CI setup will likely catch your mistakes anyway. *** *** *** ****************************************************************************** ****************************************************************************** @@ -23,8 +27,8 @@ else { ****************************************************************************** ****************************************************************************** *** *** -*** AUTHOR MODE: all optional test dependencies converted to hard requires *** -*** ( to disable re-run Makefile.PL with --skip-author-deps ) *** +*** --with-optdeps specified: converting all optional test dependencies to *** +*** hard requires ( to disable re-run Makefile.PL without options ) *** *** *** ****************************************************************************** ****************************************************************************** @@ -32,12 +36,19 @@ else { EOW require DBIx::Class::Optional::Dependencies; - my %reqs_for_group = %{DBIx::Class::Optional::Dependencies->req_group_list}; # exclude the rdbms_* groups which are for DBIC users - $opt_testdeps = { - map { %{$reqs_for_group{$_}} } grep { !/^rdbms_|^dist_/ } keys %reqs_for_group - }; + # and the moose-related stuff iff we are under 5.8.3 + $opt_testdeps = DBIx::Class::Optional::Dependencies->req_list_for([ + grep { + !/^rdbms_|^dist_/ + and + ( "$]" > 5.008002 or !/^ (?: test_ )? (?: admin | admin_script | replicated ) $/x ) + } keys %{DBIx::Class::Optional::Dependencies->req_group_list} + ]); + + # this one is "special" - we need it both in optdeps and as a hard dep + delete $opt_testdeps->{'DBD::SQLite'}; print "Including all optional deps\n"; $reqs->{test_requires} = { @@ -91,6 +102,9 @@ END { if (keys %removed_build_requires) { print "Regenerating META with author requires excluded\n"; + # M::I understands unicode in meta but does not write with the right + # layers - fhtagn!!! + local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /Wide character in print/ }; Meta->write; } @@ -106,7 +120,13 @@ END { unlink 'Makefile'; exit 1; } - my $meta = do { local @ARGV = 'META.yml'; local $/; <> }; + my $meta = do { local (@ARGV, $/) = 'META.yml'; <> }; + + $meta =~ /^\Qname: DBIx-Class\E$/m or do { + warn "Seemingly malformed META.yml...?\n"; + unlink 'Makefile'; + exit 1; + }; # this is safe as there is a fatal check earlier in the main Makefile.PL # to make sure there are no duplicates (i.e. $opt_testdeps does not contain