Skip to content

Commit 398949e

Browse files
authored
Merge pull request #68 from xsawyerx/template_test_requires
default templates: use test_requires for test requirements, add EUMM compatibility boilerplate
2 parents 2e7a8ed + d429ce7 commit 398949e

File tree

2 files changed

+35
-19
lines changed

2 files changed

+35
-19
lines changed

lib/Module/Starter/Simple.pm

+26-6
Original file line numberDiff line numberDiff line change
@@ -761,18 +761,17 @@ use strict;
761761
use $warnings
762762
use ExtUtils::MakeMaker;
763763
764-
WriteMakefile(
764+
my %WriteMakefileArgs = (
765765
NAME => '$main_module',
766766
AUTHOR => q{$author},
767767
VERSION_FROM => '$main_pm_file',
768768
ABSTRACT_FROM => '$main_pm_file',
769769
LICENSE => '$slname',
770-
PL_FILES => {},
771770
MIN_PERL_VERSION => '$self->{minperl}',
772771
CONFIGURE_REQUIRES => {
773772
'ExtUtils::MakeMaker' => '0',
774773
},
775-
BUILD_REQUIRES => {
774+
TEST_REQUIRES => {
776775
'Test::More' => '0',
777776
},
778777
PREREQ_PM => {
@@ -782,6 +781,26 @@ WriteMakefile(
782781
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
783782
clean => { FILES => '$self->{distro}-*' },
784783
);
784+
785+
# Compatibility with old versions of ExtUtils::MakeMaker
786+
unless (eval { ExtUtils::MakeMaker->VERSION('6.64'); 1 }) {
787+
my \$test_requires = delete \$WriteMakefileArgs{TEST_REQUIRES} || {};
788+
\@{\$WriteMakefileArgs{PREREQ_PM}}{keys %\$test_requires} = values %\$test_requires;
789+
}
790+
791+
unless (eval { ExtUtils::MakeMaker->VERSION('6.55_03'); 1 }) {
792+
my \$build_requires = delete \$WriteMakefileArgs{BUILD_REQUIRES} || {};
793+
\@{\$WriteMakefileArgs{PREREQ_PM}}{keys %\$build_requires} = values %\$build_requires;
794+
}
795+
796+
delete \$WriteMakefileArgs{CONFIGURE_REQUIRES}
797+
unless eval { ExtUtils::MakeMaker->VERSION('6.52'); 1 };
798+
delete \$WriteMakefileArgs{MIN_PERL_VERSION}
799+
unless eval { ExtUtils::MakeMaker->VERSION('6.48'); 1 };
800+
delete \$WriteMakefileArgs{LICENSE}
801+
unless eval { ExtUtils::MakeMaker->VERSION('6.31'); 1 };
802+
803+
WriteMakefile(%WriteMakefileArgs);
785804
HERE
786805

787806
}
@@ -834,7 +853,7 @@ configure_requires (
834853
'Module::Install' => '0',
835854
);
836855
837-
build_requires (
856+
test_requires (
838857
'Test::More' => '0',
839858
);
840859
@@ -902,6 +921,7 @@ use $self->{minperl};
902921
use strict;
903922
use $warnings
904923
use Module::Build;
924+
Module::Build->VERSION('0.4004');
905925
906926
my \$builder = Module::Build->new(
907927
module_name => '$main_module',
@@ -910,9 +930,9 @@ my \$builder = Module::Build->new(
910930
dist_version_from => '$main_pm_file',
911931
release_status => 'stable',
912932
configure_requires => {
913-
'Module::Build' => '0',
933+
'Module::Build' => '0.4004',
914934
},
915-
build_requires => {
935+
test_requires => {
916936
'Test::More' => '0',
917937
},
918938
requires => {

t/test-dist.t

+9-13
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,7 @@ sub parse_file_start {
560560
}
561561

562562
my $msw_re = qr{use \Q$minperl;\E\n\Quse strict;\E\n\Quse warnings;\E\n};
563-
my $mswb_re = $self->{builder} eq 'Module::Install' ? qr{\A$msw_re\Quse inc::$self->{builder};\E\n\n} : qr{\A$msw_re\Quse $self->{builder};\E\n\n};
563+
my $mswb_re = $self->{builder} eq 'Module::Install' ? qr{\A$msw_re\Quse inc::$self->{builder};\E\n\n} : qr{\A$msw_re\Quse $self->{builder};\E\n};
564564
my $mswt_re = qr{\A\Q#!perl -T\E\n$msw_re\Quse Test::More;\E\n\n};
565565

566566
if ($basefn eq 'README') {
@@ -621,13 +621,13 @@ sub parse_file_start {
621621
);
622622

623623
$self->parse(
624-
qr/\A\s*configure_requires => \{\n *\Q'$self->{builder}' => '0'\E,\n\s*\},\n/ms,
624+
qr/\A\s*configure_requires => \{\n *\Q'$self->{builder}' => '0.4004'\E,\n\s*\},\n/ms,
625625
"Configure Requires",
626626
);
627627

628628
$self->parse(
629-
qr/\A\s*build_requires => \{\n *\Q'Test::More' => '0'\E,\n\s*\},\n/ms,
630-
"Build Requires",
629+
qr/\A\s*test_requires => \{\n *\Q'Test::More' => '0'\E,\n\s*\},\n/ms,
630+
"Test Requires",
631631
);
632632

633633
$self->parse(
@@ -641,7 +641,7 @@ sub parse_file_start {
641641
);
642642
}
643643
elsif ($basefn eq 'Makefile.PL' && $self->{builder} eq 'ExtUtils::MakeMaker') {
644-
plan tests => 11;
644+
plan tests => 10;
645645
$self->parse($mswb_re,
646646
"Min/Strict/Warning/Builder"
647647
);
@@ -666,10 +666,6 @@ sub parse_file_start {
666666
"LICENSE",
667667
);
668668

669-
$self->parse(qr{\A\s*PL_FILES *=> *\{\},\n}ms,
670-
"PL_FILES",
671-
);
672-
673669
$self->parse(qr{\A\s*MIN_PERL_VERSION *=> *\Q'$minperl',\E\n}ms,
674670
"MIN_PERL_VERSION",
675671
);
@@ -680,8 +676,8 @@ sub parse_file_start {
680676
);
681677

682678
$self->parse(
683-
qr/\A\s*BUILD_REQUIRES => \{\n *\Q'Test::More' => '0'\E,\n\s*\},\n/ms,
684-
"BUILD_REQUIRES",
679+
qr/\A\s*TEST_REQUIRES => \{\n *\Q'Test::More' => '0'\E,\n\s*\},\n/ms,
680+
"TEST_REQUIRES",
685681
);
686682

687683
$self->parse(
@@ -737,8 +733,8 @@ EOT
737733
);
738734

739735
$self->parse(
740-
qr/\A\s*build_requires \(\n *\Q'Test::More' => '0'\E,\n\s*\);\n/ms,
741-
"build_requires",
736+
qr/\A\s*test_requires \(\n *\Q'Test::More' => '0'\E,\n\s*\);\n/ms,
737+
"test_requires",
742738
);
743739

744740
$self->parse(

0 commit comments

Comments
 (0)