X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.PL;h=953aff39ec11576fc79c36dfea75b68dd93c8489;hb=54859563673e4a200fa8c83956bc3aca809dfdfb;hp=d877c790ac792263aa4c83c0f48a277bffbd88df;hpb=1cdcbcf5cbb370999326c22f79e4e013914de7b0;p=catagits%2FCatalyst-Runtime.git diff --git a/Makefile.PL b/Makefile.PL index d877c79..953aff3 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -9,7 +9,7 @@ requires 'namespace::clean'; requires 'Scope::Upper' => '0.06'; requires 'MooseX::Emulate::Class::Accessor::Fast' => '0.00801'; requires 'Moose' => '0.73'; -requires 'MooseX::MethodAttributes::Inheritable' => '0.06'; +requires 'MooseX::MethodAttributes::Inheritable' => '0.08'; requires 'Carp'; requires 'Class::C3::Adopt::NEXT' => '0.07'; requires 'Class::MOP' => '0.79'; @@ -40,33 +40,16 @@ recommends 'B::Hooks::OP::Check::StashChange'; test_requires 'Class::Data::Inheritable'; test_requires 'Test::MockObject'; -# NOTE - This is the version number which the user must upgrade to to be ok, -my %conflicts = ( - 'Catalyst::Plugin::ConfigLoader' => '0.23', # Older versions work but - # throw Data::Visitor warns - 'Catalyst::Devel' => '0.10', - 'Catalyst::Plugin::SmartURI' => '0.030', - 'CatalystX::CRUD' => '0.38', - 'Catalyst::Action::RenderView' => '0.08', - 'Catalyst::Plugin::DebugCookie' => '0.999003', - 'Catalyst::Plugin::Authentication' => '0.100092', - 'CatalystX::Imports' => '0.04', - 'Catalyst::Plugin::HashedCookies' => '1.04', - 'Catalyst::Action::REST' => '0.68', -); -check_conflicts(%conflicts); - -# Run aggregate tests if AGGREGATE_TESTS environment = 1, but not if it = 0 -# Otherwise default to using Test::Aggregate if installed, but not requiring it. -if ( ( exists $ENV{AGGREGATE_TESTS} && !$ENV{AGGREGATE_TESTS}) - || (!exists $ENV{AGGREGATE_TESTS} && !can_use('Test::Aggregate', '0.34_01'))) { +# aggregate tests if AGGREGATE_TESTS is set and a recent Test::Aggregate is available +if ($ENV{AGGREGATE_TESTS} && can_use('Test::Aggregate', '0.34_01')) { + test_requires('Test::Aggregate', '0.34_01'); +} +else { tests join q{ }, grep { $_ ne 't/aggregate.t' } map { glob } qw[t/*.t t/aggregate/*.t]; } -else { - test_requires('Test::Aggregate', '0.34_01'); -} + my @force_build_requires_if_author = qw( Test::NoTabs Test::Pod @@ -89,11 +72,7 @@ if ($Module::Install::AUTHOR) { # Strip out the author only build_requires from META.yml # Need to do this _after_ WriteAll else it looses track of them - strip_build_requires(@force_build_requires_if_author); - - # Strip out any conflicts, so that even if the author has a conflicting - # module installed, we don't end up with META.fail - strip_requires(keys %conflicts); + strip_author_only_build_requires(@force_build_requires_if_author); Meta->{values}{resources} = [ [ 'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst' ], @@ -124,6 +103,23 @@ print <<"EOF"; Have fun! EOF +# NOTE - This is the version number of the _incompatible_ code, +# not the version number of the fixed version. +my %conflicts = ( + 'Catalyst::Plugin::ConfigLoader' => '0.22', # Older versions work but + # throw Data::Visitor warns + 'Catalyst::Devel' => '0.09', + 'Catalyst::Plugin::SmartURI' => '0.029', + 'CatalystX::CRUD' => '0.37', + 'Catalyst::Action::RenderView' => '0.07', + 'Catalyst::Plugin::DebugCookie' => '0.999002', + 'Catalyst::Plugin::Authentication' => '0.100091', + 'CatalystX::Imports' => '0.03', + 'Catalyst::Plugin::HashedCookies' => '1.03', + 'Catalyst::Action::REST' => '0.67', +); +check_conflicts(%conflicts); + # End of script, helper functions below. sub darwin_check_no_resource_forks { @@ -141,24 +137,18 @@ sub darwin_check_no_resource_forks { } } -sub strip_build_requires { - _strip_a_requires('build_requires', @_); -} -sub strip_requires { - _strip_a_requires('requires', @_); -} -sub _strip_a_requires { - my ($type, @to_strip) = @_; - Meta->{values}{$type} = [ grep { +sub strip_author_only_build_requires { + my @build_requires_to_strip = @_; + Meta->{values}{build_requires} = [ grep { my $ok = 1; - foreach my $module (@to_strip) { + foreach my $module (@build_requires_to_strip) { if ($_->[0] =~ /$module/) { $ok = 0; last; } } $ok; - } @{Meta->{values}{$type}} ]; + } @{Meta->{values}{build_requires}} ]; } sub check_conflicts { @@ -170,8 +160,7 @@ sub check_conflicts { next if $@; my $installed = $mod->VERSION(); - $conflicts_found{$mod} = $installed - if ( $installed lt $conflicts{$mod} ); + $conflicts_found{$mod} = $installed if ( $installed le $conflicts{$mod} ); } return unless scalar keys %conflicts_found; @@ -193,11 +182,11 @@ EOF foreach my $mod (keys %conflicts_found) { print sprintf(" %s => %s\n", $mod, $conflicts_found{$mod}); } - print "\n\n"; - return unless prompt("Would you like to upgrade these modules as part of this install?", 'N') =~ /Y/i; + print "\n"; - foreach my $mod (keys %conflicts_found) { - requires($mod, $conflicts{$mod}) - if prompt("Install $mod?", 'Y') =~ /Y/i; - } + # More or less copied from Module::Build, via Moose + return if $ENV{PERL_MM_USE_DEFAULT}; + return unless -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT)); + + sleep 4; }