X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-Dist-Zilla-PluginBundle-Author-CCM;a=blobdiff_plain;f=lib%2FDist%2FZilla%2FPluginBundle%2FAuthor%2FCCM.pm;h=177b79b26989386930f31d419fedf0a46c13e8af;hp=fd3da4643a684e0514ca7b9b8c643ca85f7d9ba8;hb=b3d8e8697c056b409772cd63145088d5cec4d153;hpb=df5f0318e30bd90f863fedfc345898f088c42ebb diff --git a/lib/Dist/Zilla/PluginBundle/Author/CCM.pm b/lib/Dist/Zilla/PluginBundle/Author/CCM.pm index fd3da46..177b79b 100644 --- a/lib/Dist/Zilla/PluginBundle/Author/CCM.pm +++ b/lib/Dist/Zilla/PluginBundle/Author/CCM.pm @@ -13,7 +13,6 @@ You probably don't want to use this. ; VERSION [Git::NextVersion] - [NextRelease] [ReversionOnRelease] prompt = 1 @@ -92,6 +91,7 @@ You probably don't want to use this. [MakeMaker] ; override with the "installer" attribute ; RELEASE + [NextRelease] [CheckChangesHasContent] [Git::Check] [RunExtraTests] @@ -126,8 +126,25 @@ our $VERSION = '999.999'; # VERSION use Dist::Zilla::Util; use Moose; +use Perl::Version; use namespace::autoclean; +=attr max_target_perl + +Specify the minimum perl version. Defaults to C<5.10.1>. + +=cut + +has max_target_perl => ( + is => 'ro', + isa => 'Str', + lazy => 1, + default => sub { + my $self = shift; + $self->payload->{'Test::MinimumVersion.max_target_perl'} // $self->payload->{max_target_perl} // '5.10.1'; + }, +); + =attr authority Specify the release authority. Defaults to C. @@ -158,7 +175,7 @@ has installer => ( is => 'ro', isa => 'Str', lazy => 1, - default => sub { shift->payload->{installer} || 'MakeMaker' }, + default => sub { shift->payload->{installer} // 'MakeMaker' }, ); =attr airplane @@ -204,9 +221,8 @@ sub configure { my @allow_dirty = (@copy_from_build, qw(.travis.yml Changes LICENSE README.md)); my @git_remotes = qw(github origin); my @check_files = qw(:InstallModules :ExecFiles :TestFiles :ExtraTestFiles); - my $perl_version_target = '5.10.1'; - my $perl_version = '5.24 5.22 5.20 5.18 5.16 5.14'; - my $perl_version_build = $perl_version . ' 5.12 5.10 -5.8'; + my $perl_version_target = $self->max_target_perl; + my ($perl_version, $perl_version_build) = $self->_travis_perl_versions($perl_version_target); if ($self->no_upload) { say '[@Author::CCM] WARNING! WARNING! WARNING! *** You are in no_upload mode!! ***'; @@ -237,7 +253,6 @@ sub configure { # VERSION ['Git::NextVersion'], - ['NextRelease'], ['ReversionOnRelease' => {prompt => 1}], # GATHER @@ -293,6 +308,7 @@ sub configure { $self->installer, # e.g. MakeMaker # RELEASE + ['NextRelease'], ['CheckChangesHasContent'], ['Git::Check' => {allow_dirty => [@allow_dirty], untracked_files => 'ignore'}], ['RunExtraTests'], @@ -318,6 +334,29 @@ sub configure { $self->add_plugins(@plugins); } +sub _travis_perl_versions { + my $self = shift; + + my $perl_version_target = Perl::Version->new(shift or die 'Missing target version'); + my $min_version = Perl::Version->new('5.14'); + my $min_version_build = Perl::Version->new($perl_version_target); + $min_version_build->subversion(0); + + my @versions; + my @versions_build; + + for my $v (qw{5.26 5.24 5.22 5.20 5.18 5.16 5.14 5.12 5.10 5.8}) { + my $version = Perl::Version->new($v); + push @versions, "$version" if $version >= $min_version_build && $version >= $min_version; + push @versions_build, "$version" if $version >= $min_version_build; + } + + my $perl_version = join(' ', @versions); + my $perl_version_build = join(' ', @versions_build); + + return ($perl_version, $perl_version_build); +} + with 'Dist::Zilla::Role::PluginBundle::Easy'; with 'Dist::Zilla::Role::PluginBundle::PluginRemover'; with 'Dist::Zilla::Role::PluginBundle::Config::Slicer';