Merge branch 'distar' into release-candidates/rc-5.90116
John Napiorkowski [Thu, 18 Jan 2018 20:32:28 +0000 (14:32 -0600)]
1  2 
.travis.yml
Changes
Makefile.PL
t/aggregate.t
t/something/Makefile.PL
t/something/script/foo/bar/for_dist

diff --cc .travis.yml
@@@ -12,27 -12,9 +12,18 @@@ perl
     - "5.8"
  
  install:
-    # for testing
-    - cpanm --notest --metacpan --skip-satisfied YAML
-    # M::I deps
-    - cpanm --notest --metacpan --skip-satisfied Module::Install Module::Install::AuthorRequires Module::Install::CheckConflicts Module::Install::AuthorTests Module::Install::Authority
-    # author deps -- wish there was a better way
-    - cpanm --notest --metacpan --skip-satisfied CatalystX::LeakChecker Catalyst::Devel Catalyst::Engine::PSGI Starman MooseX::Daemonize Test::WWW::Mechanize::Catalyst Catalyst::Plugin::Params::Nested
-    - cpanm --notest --metacpan --skip-satisfied Test::Without::Module Test::NoTabs Test::Pod Test::Pod::Coverage Test::Spelling Pod::Coverage::TrustPod Type::Tiny
-    - cpanm --notest --metacpan --skip-satisfied --installdeps .
-    - echo y | perl Makefile.PL
+    - cpanm --notest --metacpan --skip-satisfied --with-develop --installdeps .
+    - perl Makefile.PL
  
 +   # installing Catalyst::Devel above causes the latest release of
 +   # Catalyst::Runtime to be installed, but the version we're testing might
 +   # have additional deps that aren't yet satisfied. so we should try
 +   # installing deps again now that the MYMETA has been created (and we'll also
 +   # need to delete the now-unneeded cpanfile so that cpanm doesn't choose it
 +   # in preference to the MYMETA)
 +   - rm -f cpanfile
 +   - cpanm --notest --metacpan --skip-satisfied --installdeps .
 +
     # enable various test options, including parallel testing
     - export AUTOMATED_TESTING=1 HARNESS_OPTIONS=j10:c HARNESS_TIMER=1
  
diff --cc Changes
+++ b/Changes
@@@ -1,5 -1,5 +1,10 @@@
  # This file documents the revision history for Perl extension Catalyst.
  
++5.90116 - TBA
++  - Switch from Module::Install to Distar (solves problems that MI has with newer Perl) haarg++
++  - Killed Test::Aggregate since its clearly doomed
++  -
++
  5.90115 - 2017-05-01
    - fixes for silent bad behavior in Catalyst::ScriptRole and 'ensure_class_loaded'
      (hobbs++)
diff --cc Makefile.PL
  use strict;
  use warnings;
- use inc::Module::Install 0.91;
- # Ensure that these get used - yes, M::I loads them for us, but if you're
- # in author mode and don't have them installed, then the error is tres
- # cryptic.
- if ($Module::Install::AUTHOR) { # We could just use them, but telling
-     my @fail;                   # people the set of things they need nicer
-     foreach my $module (qw/
-         Module::Install::AuthorRequires
-         Module::Install::CheckConflicts
-         Module::Install::AuthorTests
-         Module::Install::Authority
-     /) {
-         push(@fail, $module)
-             unless eval qq{require $module; 1;};
-     }
-     die("Module::Install extensions failed, not installed? \n"
-         . join("\n", map { "  $_" } @fail) . "\n") if @fail;
- }
+ use 5.008003;
+ my %META = (
+   name => 'Catalyst-Runtime',
+   license => 'perl_5',
+   prereqs => {
+     configure => { requires => {
+       'ExtUtils::MakeMaker'   => 0,
+     } },
+     build => { requires => {
+     } },
+     test => {
+       requires => {
+         'Test::Fatal' => 0,
+         'Test::More' => '0.88',
+         'HTTP::Request::Common' => 0,
+         'IO::Scalar' => 0,
+         'HTTP::Status' => 0,
+       },
+     },
+     runtime => {
+       requires => {
+         'perl'                  => 5.008003,
+         'List::Util'            => '1.45',
+         'namespace::autoclean'  => '0.28',
+         'namespace::clean'      => '0.23',
+         'MooseX::Emulate::Class::Accessor::Fast' => '0.00903',
+         'Class::Load'           => '0.12',
+         'Data::OptList'         => 0,
+         'Moose'                 => '1.03',
+         'MooseX::MethodAttributes::Role::AttrContainer::Inheritable' => '0.24',
+         'MooseX::Role::WithOverloading' => '0.09',
+         'Carp'                  => '1.25',
+         'Class::C3::Adopt::NEXT' => '0.07',
+         'CGI::Simple::Cookie'   => '1.109',
+         'Data::Dump'            => 0,
+         'Data::OptList'         => 0,
+         'HTML::Entities'        => 0,
+         'HTML::HeadParser'      => 0,
+         'HTTP::Body'            => '1.22',
+         'HTTP::Headers'         => '1.64',
+         'HTTP::Request'         => '5.814',
+         'HTTP::Response'        => '5.813',
+         'HTTP::Request::AsCGI'  => '1.0',
+         'Module::Pluggable'     => '4.7',
+         'Path::Class'           => '0.09',
+         'Scalar::Util'          => 0,
+         'Sub::Exporter'         => 0,
+         'Text::SimpleTable'     => '0.03',
+         'Time::HiRes'           => 0,
+         'Tree::Simple'          => '1.15',
+         'Tree::Simple::Visitor::FindByPath' => 0,
+         'Try::Tiny'             => '0.17',
+         'Safe::Isa'             => 0,
+         'Task::Weaken'          => 0,
+         'Text::Balanced'        => 0, # core in 5.8.x but mentioned for completeness
+         'MRO::Compat'           => 0,
+         'MooseX::Getopt'        => '0.48',
+         'String::RewritePrefix' => '0.004', # Catalyst::Utils::resolve_namespace
+         'Devel::InnerPackage'   => 0, # No longer core in blead
+         'Plack'                 => '0.9991', # IIS6+7 fix middleware
+         'Plack::Middleware::ReverseProxy' => '0.04',
+         'Plack::Test::ExternalServer' => 0,
+         'Class::Data::Inheritable' => 0,
+         'Encode'                => '2.49',
+         'LWP'                   => '5.837', # LWP had unicode fail in 5.8.26
+         'URI'                   => '1.65',
+         'URI::ws'               => '0.03',
+         'JSON::MaybeXS'         => '1.000000',
+         'Stream::Buffered'      => 0,
+         'Hash::MultiValue'      => 0,
+         'Plack::Request::Upload' => 0,
+         'CGI::Struct'           => 0,
+         "Plack::Middleware::Conditional" => 0,
+         "Plack::Middleware::IIS6ScriptNameFix" => 0,
+         "Plack::Middleware::IIS7KeepAliveFix" => 0,
+         "Plack::Middleware::LighttpdScriptNameFix" => 0,
+         "Plack::Middleware::ContentLength" => 0,
+         "Plack::Middleware::Head" => 0,
+         "Plack::Middleware::HTTPExceptions" => 0,
+         "Plack::Middleware::FixMissingBodyInRedirect" => '0.09',
+         "Plack::Middleware::MethodOverride" => '0.12',
+         "Plack::Middleware::RemoveRedundantBody" => '0.03',
+       },
+     },
+     develop   => {
+       requires => {
+         'Test::Aggregate'         => '0.364',
+         'Test::Simple'            => '0.88',
+         'CatalystX::LeakChecker'  => '0.05',
+         'Catalyst::Devel'         => '1.0', # For http server test
+         'Catalyst::Engine::PSGI'  => 0,
+         'Test::WWW::Mechanize::Catalyst' => '0.51',
+         'Test::TCP'               => '2.00', # ditto, ships Net::EmptyPort
 -        'File::Copy::Recursive'   => 0,
++        'File::Copy::Recursive'   => '0.40',
+         'Starman'                 => 0,
+         'MooseX::Daemonize'       => 0,
+         'Test::NoTabs'            => 0,
+         'Test::Pod'               => 0,
+         'Test::Pod::Coverage'     => 0,
+         'Test::Spelling'          => 0,
+         'Pod::Coverage::TrustPod' => 0,
+         'Catalyst::Plugin::Params::Nested' => 0,
+         'Catalyst::Plugin::ConfigLoader' => 0,
+       },
+     },
+   },
+   resources => {
+     repository => {
+       # r/w: catagits@git.shadowcat.co.uk:Catalyst-Runtime.git
+       url => 'git://git.shadowcat.co.uk/catagits/Catalyst-Runtime.git',
+       web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits/Catalyst-Runtime.git;a=summary',
+       type => 'git',
+     },
+     x_IRC => 'irc://irc.perl.org/#catalyst',
+     bugtracker => {
+       web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-Runtime',
+       mailto => 'bug-Catalyst-Runtime@rt.cpan.org',
+     },
+     license => [ 'http://dev.perl.org/licenses/' ],
+     x_MailingList => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst',
+     homepage => 'http://dev.catalyst.perl.org/',
+   },
+   no_index => {
+     directory => [ 't', 'xt' ]
+   },
+   x_breaks => {
+     'Catalyst::Plugin::SubRequest' => '<= 0.14',
+     'Catalyst::Model::Akismet' => '<= 0.02',
+     'Catalyst::Component::ACCEPT_CONTEXT' => '<= 0.06',
+     'Catalyst::Plugin::ENV' => 0, # This plugin is just stupid, full stop
+                                   # should have been a core fix.
+     'Catalyst::Plugin::Unicode::Encoding' => '<= 0.2',
+     'Catalyst::Plugin::Authentication' => '<= 0.10010', # _config accessor in ::Credential::Password
+     'Catalyst::Authentication::Credential::HTTP' => '<= 1.009',
+     'Catalyst::Plugin::Session::Store::File'     => '<= 0.16',
+     'Catalyst::Plugin::Session'                  => '<= 0.21',
+     'Catalyst::Plugin::Session::State::Cookie'   => '<= 0.10',
+     'Catalyst::Plugin::Session::Store::FastMmap' => '<= 0.09',
+     'Catalyst::Controller::AllowDisable'         => '<= 0.03',
+     'Reaction'                                   => '<= 0.001999',
+     'Catalyst::Plugin::Upload::Image::Magick'    => '<= 0.03',
+     'Catalyst::Plugin::ConfigLoader'             => '<= 0.22', # Older versions work but
+                                                   # throw Data::Visitor warns
+     'Catalyst::Devel'                            => '<= 1.19',
+     'Catalyst::Plugin::SmartURI'                 => '<= 0.032',
+     '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',
+     'CatalystX::CRUD'                            => '<= 0.42',
+     'CatalystX::CRUD::Model::RDBO'               => '<= 0.20',
+     'Catalyst::View::Mason'                      => '<= 0.17',
+ #    Note these are not actually needed - they fail tests against the
+ #    new version, but still work fine..
+ #    'Catalyst::ActionRole::ACL'                  => '<= 0.05',
+ #    'Catalyst::Plugin::Session::Store::DBIC'     => '<= 0.11',
+     'Test::WWW::Mechanize::Catalyst'            => '<= 0.53', # Dep warnings unless upgraded.
+   },
+   x_authority => 'cpan:MSTROUT',
+ );
  
- perl_version '5.008003';
- name 'Catalyst-Runtime';
- author 'Sebastian Riedel <sri@cpan.org>';
- authority('cpan:MSTROUT');
- all_from 'lib/Catalyst/Runtime.pm';
- requires 'List::Util' => '1.45'; # for uniq()
- requires 'namespace::autoclean' => '0.28';
- requires 'namespace::clean' => '0.23';
- requires 'MooseX::Emulate::Class::Accessor::Fast' => '0.00903';
- requires 'Class::Load' => '0.12';
- requires 'Data::OptList';
- requires 'Moose' => '1.03';
- requires 'MooseX::MethodAttributes::Role::AttrContainer::Inheritable' => '0.24';
- requires 'MooseX::Role::WithOverloading' => '0.09' unless can_use('Moose', '2.1300');
- requires 'Carp' => '1.25';
- requires 'Class::C3::Adopt::NEXT' => '0.07';
- requires 'CGI::Simple::Cookie' => '1.109';
- requires 'Data::Dump';
- requires 'Data::OptList';
- requires 'HTML::Entities';
- requires 'HTML::HeadParser';
- requires 'HTTP::Body'    => '1.22';
- requires 'HTTP::Headers' => '1.64';
- requires 'HTTP::Request' => '5.814';
- requires 'HTTP::Response' => '5.813';
- requires 'HTTP::Request::AsCGI' => '1.0';
- requires 'Module::Pluggable' => '4.7';
- requires 'Path::Class' => '0.09';
- requires 'Scalar::Util';
- requires 'Sub::Exporter';
- requires 'Text::SimpleTable' => '0.03';
- requires 'Time::HiRes';
- requires 'Tree::Simple' => '1.15';
- requires 'Tree::Simple::Visitor::FindByPath';
- requires 'Try::Tiny' => '0.17';
- requires 'Safe::Isa';
- requires 'Task::Weaken';
- requires 'Text::Balanced'; # core in 5.8.x but mentioned for completeness
- requires 'MRO::Compat';
- requires 'MooseX::Getopt' => '0.48';
- requires 'String::RewritePrefix' => '0.004'; # Catalyst::Utils::resolve_namespace
- requires 'Devel::InnerPackage'; # No longer core in blead
- requires 'Plack' => '0.9991'; # IIS6+7 fix middleware
- requires 'Plack::Middleware::ReverseProxy' => '0.04';
- requires 'Plack::Test::ExternalServer';
- requires 'Class::Data::Inheritable';
- requires 'Encode' => '2.49';
- requires 'LWP' => '5.837'; # LWP had unicode fail in 5.8.26
- requires 'URI' => '1.65';
- requires 'URI::ws' => '0.03';
- requires 'JSON::MaybeXS' => '1.000000';
- requires 'Stream::Buffered';
- requires 'Hash::MultiValue';
- requires 'Plack::Request::Upload';
- requires 'CGI::Struct';
- requires "Plack::Middleware::Conditional";
- requires "Plack::Middleware::IIS6ScriptNameFix";
- requires "Plack::Middleware::IIS7KeepAliveFix";
- requires "Plack::Middleware::LighttpdScriptNameFix";
- requires "Plack::Middleware::ContentLength";
- requires "Plack::Middleware::Head";
- requires "Plack::Middleware::HTTPExceptions";
- requires "Plack::Middleware::FixMissingBodyInRedirect" => '0.09';
- requires "Plack::Middleware::MethodOverride" => '0.12';
- requires "Plack::Middleware::RemoveRedundantBody" => '0.03';
- test_requires 'Test::Fatal';
- test_requires 'Test::More' => '0.88';
- test_requires 'Data::Dump';
- test_requires 'HTTP::Request::Common';
- test_requires 'IO::Scalar';
- test_requires 'HTTP::Status';
- test_requires 'JSON::MaybeXS';
- # see also cpanfile for authordeps -- install via
- # cpanm --installdeps --with-develop .
- # aggregate tests if AGGREGATE_TESTS is set and a recent Test::Aggregate and a Test::Simple it works with is available
- my @author_requires;
- if ($ENV{AGGREGATE_TESTS} && can_use('Test::Simple', '0.88') && can_use('Test::Aggregate', '0.364')) {
-     push(@author_requires, 'Test::Aggregate', '0.364');
-     push(@author_requires, 'Test::Simple', '0.88');
-     open my $fh, '>', '.aggregating';
- }
- else {
-     unlink '.aggregating';
-     tests 't/*.t t/aggregate/*.t';
- }
 -my $tests = 't/*.t';
 -if ($ENV{AGGREGATE_TESTS} && eval { require Test::Aggregate; Test::Aggregate->VERSION(0.364); }) {
 -    open my $fh, '>', '.aggregating';
 -}
 -else {
 -    unlink '.aggregating';
 -    $tests .= ' t/aggregate/*.t';
 -}
++my $tests = 't/*.t t/aggregate/*.t';
+ my %MM_ARGS = (
+   test => { TESTS => $tests },
+   EXE_FILES => [ glob 'script/*.pl' ],
+   PREREQ_PM => {
+     (eval { require Moose; Moose->VERSION('2.1300') } ? () : (
+       'MooseX::Role::WithOverloading' => '0.09'
+     )),
+   },
+ );
  
- push(@author_requires, 'CatalystX::LeakChecker', '0.05');
- push(@author_requires, 'Catalyst::Devel', '1.0'); # For http server test
- push(@author_requires, 'Test::WWW::Mechanize::Catalyst', '0.51');
- push(@author_requires, 'Test::TCP', '2.00'); # ditto, ships Net::EmptyPort
- author_tests('t/author');
- author_requires(
-   @author_requires,
-   map {; $_ => 0 } qw(
-   File::Copy::Recursive
-   Starman
-   MooseX::Daemonize
-   Test::NoTabs
-   Test::Pod
-   Test::Pod::Coverage
-   Test::Spelling
-   Pod::Coverage::TrustPod
-   Catalyst::Plugin::Params::Nested
-   Catalyst::Plugin::ConfigLoader
- ));
- if ($Module::Install::AUTHOR) {
-     darwin_check_no_resource_forks();
+ ## BOILERPLATE ###############################################################
+ require ExtUtils::MakeMaker;
+ (do './maint/Makefile.PL.include' or die $@) unless -f 'META.yml';
+ # have to do this since old EUMM dev releases miss the eval $VERSION line
+ my $eumm_version  = eval $ExtUtils::MakeMaker::VERSION;
+ my $mymeta        = $eumm_version >= 6.57_02;
+ my $mymeta_broken = $mymeta && $eumm_version < 6.57_07;
+ ($MM_ARGS{NAME} = $META{name}) =~ s/-/::/g;
+ ($MM_ARGS{VERSION_FROM} = "lib/$MM_ARGS{NAME}.pm") =~ s{::}{/}g;
+ $META{license} = [ $META{license} ]
+   if $META{license} && !ref $META{license};
+ $MM_ARGS{LICENSE} = $META{license}[0]
+   if $META{license} && $eumm_version >= 6.30;
+ $MM_ARGS{NO_MYMETA} = 1
+   if $mymeta_broken;
+ $MM_ARGS{META_ADD} = { 'meta-spec' => { version => 2 }, %META }
+   unless -f 'META.yml';
+ for (qw(configure build test runtime)) {
+   my $key = $_ eq 'runtime' ? 'PREREQ_PM' : uc $_.'_REQUIRES';
+   my $r = $MM_ARGS{$key} = {
+     %{$META{prereqs}{$_}{requires} || {}},
+     %{delete $MM_ARGS{$key} || {}},
+   };
+   defined $r->{$_} or delete $r->{$_} for keys %$r;
  }
  
- resources(
-     'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst',
-     'IRC'         => 'irc://irc.perl.org/#catalyst',
-     'license',    => 'http://dev.perl.org/licenses/',
-     'homepage',   => 'http://dev.catalyst.perl.org/',
-     # r/w: catagits@git.shadowcat.co.uk:Catalyst-Runtime.git
-     # web: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits/Catalyst-Runtime.git;a=summary
-     'repository', => 'git://git.shadowcat.co.uk/catagits/Catalyst-Runtime.git',
- );
+ $MM_ARGS{MIN_PERL_VERSION} = delete $MM_ARGS{PREREQ_PM}{perl} || 0;
+ delete $MM_ARGS{MIN_PERL_VERSION}
+   if $eumm_version < 6.47_01;
+ $MM_ARGS{BUILD_REQUIRES} = {%{$MM_ARGS{BUILD_REQUIRES}}, %{delete $MM_ARGS{TEST_REQUIRES}}}
+   if $eumm_version < 6.63_03;
+ $MM_ARGS{PREREQ_PM} = {%{$MM_ARGS{PREREQ_PM}}, %{delete $MM_ARGS{BUILD_REQUIRES}}}
+   if $eumm_version < 6.55_01;
+ delete $MM_ARGS{CONFIGURE_REQUIRES}
+   if $eumm_version < 6.51_03;
  
- install_script glob('script/*.pl');
- auto_install;
- WriteAll;
+ ExtUtils::MakeMaker::WriteMakefile(%MM_ARGS);
+ ## END BOILERPLATE ###########################################################
  
  print <<"EOF";
  
diff --cc t/aggregate.t
index e071379,e071379..0000000
deleted file mode 100644,100644
+++ /dev/null
diff --cc t/something/Makefile.PL
index e69de29,e69de29..0000000
deleted file mode 100644,100644
+++ /dev/null
diff --cc t/something/script/foo/bar/for_dist
index e69de29,e69de29..0000000
deleted file mode 100644,100644
+++ /dev/null