From: Peter Rabbitson Date: Fri, 25 Jan 2013 13:14:31 +0000 (+0100) Subject: Make `perl Makefile.PL` runs more user friendly - better diagnostics X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=4a51243f734714ee80370ede83b4a67e7fa005b7;p=dbsrgits%2FDBIx-Class-Historic.git Make `perl Makefile.PL` runs more user friendly - better diagnostics --- diff --git a/maint/Makefile.PL.inc/11_authortests.pl b/maint/Makefile.PL.inc/11_authortests.pl index e29b542..f9f78ee 100644 --- a/maint/Makefile.PL.inc/11_authortests.pl +++ b/maint/Makefile.PL.inc/11_authortests.pl @@ -34,7 +34,7 @@ test_xt : pm_to_blib # perl cmd join( ' ', '$(ABSPERLRUN)', - map { $mm_proto->quote_literal($_) } qw(-e $ENV{RELEASE_TESTING}=1;) + map { $mm_proto->quote_literal($_) } qw(-e $ENV{RELEASE_TESTING}=1;$ENV{DBICTEST_NO_MAKEFILE_VERIFICATION}=1;) ), # test list join( ' ', diff --git a/maint/Makefile.PL.inc/52_autogen_README.pl b/maint/Makefile.PL.inc/52_autogen_README.pl index b2ce205..0f4a38c 100644 --- a/maint/Makefile.PL.inc/52_autogen_README.pl +++ b/maint/Makefile.PL.inc/52_autogen_README.pl @@ -1,4 +1,4 @@ -# When a long-standing branch is updated a README may still inger around +# When a long-standing branch is updated a README may still linger around unlink 'README' if -f 'README'; # Makefile syntax allows adding extra dep-specs for already-existing targets, diff --git a/maint/Makefile.PL.inc/53_autogen_pod.pl b/maint/Makefile.PL.inc/53_autogen_pod.pl index 2496a47..4efe837 100644 --- a/maint/Makefile.PL.inc/53_autogen_pod.pl +++ b/maint/Makefile.PL.inc/53_autogen_pod.pl @@ -21,6 +21,9 @@ else { # generate the OptDeps pod both in the clone-dir and during the makefile distdir { print "Regenerating Optional/Dependencies.pod\n"; + + # this should always succeed - hence no error checking + # if someone breaks OptDeps - travis should catch it require DBIx::Class::Optional::Dependencies; DBIx::Class::Optional::Dependencies->_gen_pod ($ver, "$pod_dir/lib"); @@ -50,8 +53,19 @@ EOP my $pod_fn = "$pod_dir/dbicadmin.pod"; # if the author doesn't have the prereqs, don't fail the initial "perl Makefile.pl" step - # therefore no error checking - system($^X, qw( -Ilib -- script/dbicadmin --documentation-as-pod ), $pod_fn); + my $great_success; + { + local @ARGV = ('--documentation-as-pod', $pod_fn); + local *CORE::GLOBAL::exit = sub { $great_success++; die; }; + do 'script/dbicadmin'; + } + if (!$great_success and ($@ || $!) ) { + printf ("FAILED!!! Subsequent `make dist` will fail. %s\n", + $ENV{DBICDIST_DEBUG} + ? 'Full error: ' . ($@ || $!) + : 'Re-run with $ENV{DBICDIST_DEBUG} set for more info' + ); + } postamble <<"EOP"; @@ -64,13 +78,9 @@ EOP } -# generate the inherit pods both in the clone-dir and during the makefile distdir +# generate the inherit pods only during distbuilding phase +# it is too slow to do at regular Makefile.PL { - print "Regenerating project documentation to include inherited methods\n"; - - # if the author doesn't have the prereqs, don't fail the initial "perl Makefile.pl" step - do "maint/gen_pod_inherit" or print "\n!!! FAILED: $@\n"; - postamble <<"EOP"; clonedir_generate_files : dbic_clonedir_gen_inherit_pods diff --git a/maint/Makefile.PL.inc/56_autogen_testddl.pl b/maint/Makefile.PL.inc/56_autogen_testddl.pl index c383708..21903bf 100644 --- a/maint/Makefile.PL.inc/56_autogen_testddl.pl +++ b/maint/Makefile.PL.inc/56_autogen_testddl.pl @@ -6,10 +6,14 @@ my $ddl_fn = File::Spec->catfile(qw(t lib sqlite.sql)); # on error # The EUMM build-stage generation will run unconditionally and # errors will not be trapped -if (my $out = ` "$^X" -Ilib maint/gen_schema `) { - open (my $fh, '>:unix', $ddl_fn) or die "Unable to open $ddl_fn: $!"; - print $fh $out; - close $fh; +require DBIx::Class::Optional::Dependencies; +if ( DBIx::Class::Optional::Dependencies->req_ok_for ('deploy') ) { + print "Regenerating t/lib/sqlite.sql\n"; + if (my $out = ` "$^X" -Ilib maint/gen_schema `) { + open (my $fh, '>:unix', $ddl_fn) or die "Unable to open $ddl_fn: $!"; + print $fh $out; + close $fh; + } } postamble <<"EOP"; @@ -21,7 +25,5 @@ dbic_clonedir_regen_test_ddl : @{[ $crlf_fixup->($ddl_fn) ]} EOP - - # keep the Makefile.PL eval happy 1;