The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
CONTRIBUTING 1000
CONTRIBUTING.mkdn 087
Changes 129
MANIFEST 24
META.json 1925
META.yml 1116
Makefile.PL 146
README 110
Todo 160
cpanfile 710
dist.ini 21
lib/CPAN/Reporter/API.pm 23
lib/CPAN/Reporter/Config.pm 310
lib/CPAN/Reporter/FAQ.pm 23
lib/CPAN/Reporter/History.pm 23
lib/CPAN/Reporter/PrereqCheck.pm 316
lib/CPAN/Reporter.pm 357
t/00-report-prereqs.dd 077
t/00-report-prereqs.t 154129
t/06_prompt_text.t 01
t/10_prereq_check.t 071
t/13_record_command.t 01
t/62_duplicate_reports.t 01
t/63_config_send_report.t 01
t/65_skipfile.t 01
t/73_autoflush.t 01
t/Helper.pm 01
xt/author/00-compile.t 45
xt/author/pod-spell.t 412
xt/release/test-version.t 22
30 files changed (This is a version diff) 352583
@@ -1,100 +0,0 @@
-## HOW TO CONTRIBUTE
-
-Thank you for considering contributing to this distribution.  This file
-contains instructions that will help you work with the source code.
-
-The distribution is managed with Dist::Zilla.  This means than many of the
-usual files you might expect are not in the repository, but are generated at
-release time (e.g. Makefile.PL).
-
-Generally, **you do not need Dist::Zilla to contribute patches**.  You do need
-Dist::Zilla to create a tarball and/or install from the repository.  See below
-for guidance.
-
-### Getting dependencies
-
-See the included `cpanfile` file for a list of dependencies.  If you have
-App::cpanminus 1.6 or later installed, you can use `cpanm` to satisfy
-dependencies like this:
-
-    $ cpanm --installdeps .
-
-Otherwise, you can install Module::CPANfile 1.0002 or later and then satisfy
-dependencies with the regular `cpan` client and `cpanfile-dump`:
-
-    $ cpan `cpanfile-dump`
-
-### Running tests
-
-You can run tests directly using the `prove` tool:
-
-    $ prove -l
-    $ prove -lv t/some_test_file.t
-
-For most of my distributions, `prove` is entirely sufficient for you to test any
-patches you have. I use `prove` for 99% of my testing during development.
-
-### Code style and tidying
-
-Please try to match any existing coding style.  If there is a `.perltidyrc`
-file, please install Perl::Tidy and use perltidy before submitting patches.
-
-If there is a `tidyall.ini` file, you can also install Code::TidyAll and run
-`tidyall` on a file or `tidyall -a` to tidy all files.
-
-### Patching documentation
-
-Much of the documentation Pod is generated at release time.  Depending on the
-distribution, some of my documentation may be written in a Pod dialect called
-WikiDoc. (See Pod::WikiDoc on CPAN.)
-
-If you would like to submit a documentation edit, please limit yourself to the
-documentation you see.
-
-If you see typos or documentation issues in the generated docs, please
-email or open a bug ticket instead of patching.
-
-### Installing from the repository
-
-If you want to install directly from the repository, you need to have
-Dist::Zilla installed (see below).  If this is a burden to you, I welcome
-patches against a CPAN tarball instead of the repository.
-
-### Installing and using Dist::Zilla
-
-Dist::Zilla is a very powerful authoring tool, optimized for maintaining a
-large number of distributions with a high degree of automation, but it has a
-large dependency chain, a bit of a learning curve and requires a number of
-author-specific plugins.
-
-To install it from CPAN, I recommend one of the following approaches for
-the quickest installation:
-
-    # using CPAN.pm, but bypassing non-functional pod tests
-    $ cpan TAP::Harness::Restricted
-    $ PERL_MM_USE_DEFAULT=1 HARNESS_CLASS=TAP::Harness::Restricted cpan Dist::Zilla
-
-    # using cpanm, bypassing *all* tests
-    $ cpanm -n Dist::Zilla
-
-In either case, it's probably going to take about 10 minutes.  Go for a walk,
-go get a cup of your favorite beverage, take a bathroom break, or whatever.
-When you get back, Dist::Zilla should be ready for you.
-
-Then you need to install any plugins specific to this distribution:
-
-    $ cpan `dzil authordeps`
-    $ dzil authordeps | cpanm
-
-Once installed, here are some dzil commands you might try:
-
-    $ dzil build
-    $ dzil test
-    $ dzil xtest
-
-To install from the repository, use:
-
-    $ dzil install
-
-You can learn more about Dist::Zilla at http://dzil.org/
-
@@ -0,0 +1,87 @@
+## HOW TO CONTRIBUTE
+
+Thank you for considering contributing to this distribution.  This file
+contains instructions that will help you work with the source code.
+
+The distribution is managed with Dist::Zilla.  This means than many of the
+usual files you might expect are not in the repository, but are generated at
+release time, as is much of the documentation.  Some generated files are
+kept in the repository as a convenience (e.g. Makefile.PL or cpanfile).
+
+Generally, **you do not need Dist::Zilla to contribute patches**.  You do need
+Dist::Zilla to create a tarball.  See below for guidance.
+
+### Getting dependencies
+
+If you have App::cpanminus 1.6 or later installed, you can use `cpanm` to
+satisfy dependencies like this:
+
+    $ cpanm --installdeps .
+
+Otherwise, look for either a `Makefile.PL` or `cpanfile` file for
+a list of dependencies to satisfy.
+
+### Running tests
+
+You can run tests directly using the `prove` tool:
+
+    $ prove -l
+    $ prove -lv t/some_test_file.t
+
+For most of my distributions, `prove` is entirely sufficient for you to test any
+patches you have. I use `prove` for 99% of my testing during development.
+
+### Code style and tidying
+
+Please try to match any existing coding style.  If there is a `.perltidyrc`
+file, please install Perl::Tidy and use perltidy before submitting patches.
+
+If there is a `tidyall.ini` file, you can also install Code::TidyAll and run
+`tidyall` on a file or `tidyall -a` to tidy all files.
+
+### Patching documentation
+
+Much of the documentation Pod is generated at release time.  Some is
+generated boilerplate; other documentation is built from pseudo-POD
+directives in the source like C<=method> or C<=func>.
+
+If you would like to submit a documentation edit, please limit yourself to
+the documentation you see.
+
+If you see typos or documentation issues in the generated docs, please
+email or open a bug ticket instead of patching.
+
+### Installing and using Dist::Zilla
+
+Dist::Zilla is a very powerful authoring tool, optimized for maintaining a
+large number of distributions with a high degree of automation, but it has a
+large dependency chain, a bit of a learning curve and requires a number of
+author-specific plugins.
+
+To install it from CPAN, I recommend one of the following approaches for
+the quickest installation:
+
+    # using CPAN.pm, but bypassing non-functional pod tests
+    $ cpan TAP::Harness::Restricted
+    $ PERL_MM_USE_DEFAULT=1 HARNESS_CLASS=TAP::Harness::Restricted cpan Dist::Zilla
+
+    # using cpanm, bypassing *all* tests
+    $ cpanm -n Dist::Zilla
+
+In either case, it's probably going to take about 10 minutes.  Go for a walk,
+go get a cup of your favorite beverage, take a bathroom break, or whatever.
+When you get back, Dist::Zilla should be ready for you.
+
+Then you need to install any plugins specific to this distribution:
+
+    $ cpan `dzil authordeps`
+    $ dzil authordeps | cpanm
+
+Once installed, here are some dzil commands you might try:
+
+    $ dzil build
+    $ dzil test
+    $ dzil xtest
+
+You can learn more about Dist::Zilla at http://dzil.org/
+
@@ -1,5 +1,33 @@
 Revision history for Perl module CPAN::Reporter
 
+1.2014    2015-04-06 12:08:28-04:00 America/New_York
+
+  - no changes from 1.2013-TRIAL
+
+1.2013    2015-03-29 21:52:11-04:00 America/New_York (TRIAL RELEASE)
+
+  [ADDED]
+
+  - Added experimental option to save output of hanging modules [CHORNY]
+
+  - Added experimental option to save list of hanging modules [CHORNY]
+
+  [CHANGED]
+
+  - C::R::PrereqCheck will read <> before checking modules
+
+  [FIXED]
+
+  - Fixed incorrect report grade edge case [CHORNY]
+
+  - Fixed tests for Perls on Windows with spaces in the path
+
+  - Added Dancer::Plugin::FlashNote to list of prereq-check conflicts
+
+  [TESTING]
+
+  - Tests for C::R::PrereqCheck added
+
 1.2011    2014-03-16 22:27:56+01:00 Europe/Paris
 
   [ADDED]
@@ -1286,4 +1314,4 @@ Revision history for Perl module CPAN::Reporter
     - first public release -- support not yet available in CPAN.pm
       main branch
 
-# vi:tw=75
+# vim: ts=2 sts=2 sw=2 et tw=75 :
@@ -1,5 +1,5 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.014.
-CONTRIBUTING
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.034.
+CONTRIBUTING.mkdn
 Changes
 LICENSE
 MANIFEST
@@ -276,6 +276,7 @@ lib/CPAN/Reporter/FAQ.pm
 lib/CPAN/Reporter/History.pm
 lib/CPAN/Reporter/PrereqCheck.pm
 perlcritic.rc
+t/00-report-prereqs.dd
 t/00-report-prereqs.t
 t/01_CPAN_Reporter.t
 t/02_config_env_vars.t
@@ -283,6 +284,7 @@ t/03_config_file.t
 t/04_option_parsing.t
 t/05_prompting.t
 t/06_prompt_text.t
+t/10_prereq_check.t
 t/10_prereq_pm.t
 t/11_env_config.t
 t/12_toolchain_versions.t
@@ -4,13 +4,13 @@
       "David Golden <dagolden@cpan.org>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 5.014, CPAN::Meta::Converter version 2.140640",
+   "generated_by" : "Dist::Zilla version 5.034, CPAN::Meta::Converter version 2.150001",
    "license" : [
       "apache_2_0"
    ],
    "meta-spec" : {
       "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
-      "version" : "2"
+      "version" : 2
    },
    "name" : "CPAN-Reporter",
    "no_index" : {
@@ -27,15 +27,16 @@
    "prereqs" : {
       "configure" : {
          "requires" : {
-            "ExtUtils::MakeMaker" : "6.17"
+            "ExtUtils::MakeMaker" : "6.17",
+            "perl" : "5.006"
          }
       },
       "develop" : {
          "requires" : {
-            "Dist::Zilla" : "5.014",
+            "Dist::Zilla" : "5",
             "Dist::Zilla::Plugin::Prereqs" : "0",
             "Dist::Zilla::Plugin::RemovePrereqs" : "0",
-            "Dist::Zilla::PluginBundle::DAGOLDEN" : "0.060",
+            "Dist::Zilla::PluginBundle::DAGOLDEN" : "0.072",
             "File::Spec" : "0",
             "File::Temp" : "0",
             "IO::Handle" : "0",
@@ -44,7 +45,9 @@
             "Test::CPAN::Meta" : "0",
             "Test::More" : "0",
             "Test::Pod" : "1.41",
-            "Test::Pod::Coverage" : "1.08"
+            "Test::Pod::Coverage" : "1.08",
+            "Test::Spelling" : "0.12",
+            "Test::Version" : "1"
          }
       },
       "runtime" : {
@@ -72,26 +75,26 @@
             "Probe::Perl" : "0",
             "Test::Reporter" : "1.54",
             "constant" : "0",
-            "perl" : "5.006",
+            "perl" : "5.008",
             "strict" : "0",
             "vars" : "0"
          }
       },
       "test" : {
          "recommends" : {
-            "CPAN::Meta" : "0",
-            "CPAN::Meta::Requirements" : "2.120900"
+            "CPAN::Meta" : "2.120900"
          },
          "requires" : {
             "Archive::Tar" : "1.54",
+            "ExtUtils::MakeMaker" : "6.36",
             "File::Copy::Recursive" : "0.35",
+            "File::Spec" : "3.19",
             "File::Spec::Functions" : "0",
             "File::pushd" : "0.32",
             "IO::CaptureOutput" : "1.03",
-            "List::Util" : "0",
             "Test::Harness" : "0",
             "Test::More" : "0.62",
-            "version" : "0",
+            "perl" : "5.008",
             "warnings" : "0"
          }
       }
@@ -99,27 +102,27 @@
    "provides" : {
       "CPAN::Reporter" : {
          "file" : "lib/CPAN/Reporter.pm",
-         "version" : "1.2011"
+         "version" : "1.2014"
       },
       "CPAN::Reporter::API" : {
          "file" : "lib/CPAN/Reporter/API.pm",
-         "version" : "1.2011"
+         "version" : "1.2014"
       },
       "CPAN::Reporter::Config" : {
          "file" : "lib/CPAN/Reporter/Config.pm",
-         "version" : "1.2011"
+         "version" : "1.2014"
       },
       "CPAN::Reporter::FAQ" : {
          "file" : "lib/CPAN/Reporter/FAQ.pm",
-         "version" : "1.2011"
+         "version" : "1.2014"
       },
       "CPAN::Reporter::History" : {
          "file" : "lib/CPAN/Reporter/History.pm",
-         "version" : "1.2011"
+         "version" : "1.2014"
       },
       "CPAN::Reporter::PrereqCheck" : {
          "file" : "lib/CPAN/Reporter/PrereqCheck.pm",
-         "version" : "1.2011"
+         "version" : "1.2014"
       }
    },
    "release_status" : "stable",
@@ -134,14 +137,17 @@
          "web" : "https://github.com/cpan-testers/CPAN-Reporter"
       }
    },
-   "version" : "1.2011",
+   "version" : "1.2014",
    "x_authority" : "cpan:DAGOLDEN",
    "x_contributors" : [
       "Alexandr Ciornii <alexchorny@gmail.com>",
       "Breno G. de Oliveira <garu@cpan.org>",
       "Christian Walde <walde.christian@googlemail.com>",
+      "Ed J <mohawk2@users.noreply.github.com>",
       "Kent Fredric <kentfredric@gmail.com>",
-      "Matthew Musgrove <mr.muskrat@gmail.com>"
+      "Matthew Musgrove <mr.muskrat@gmail.com>",
+      "Scott Wiersdorf <scott@perlcode.org>",
+      "Slaven Rezic <slaven@rezic.de>"
    ]
 }
 
@@ -4,19 +4,21 @@ author:
   - 'David Golden <dagolden@cpan.org>'
 build_requires:
   Archive::Tar: '1.54'
+  ExtUtils::MakeMaker: '6.36'
   File::Copy::Recursive: '0.35'
+  File::Spec: '3.19'
   File::Spec::Functions: '0'
   File::pushd: '0.32'
   IO::CaptureOutput: '1.03'
-  List::Util: '0'
   Test::Harness: '0'
   Test::More: '0.62'
-  version: '0'
+  perl: '5.008'
   warnings: '0'
 configure_requires:
   ExtUtils::MakeMaker: '6.17'
+  perl: '5.006'
 dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.014, CPAN::Meta::Converter version 2.140640'
+generated_by: 'Dist::Zilla version 5.034, CPAN::Meta::Converter version 2.150001'
 license: apache
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -33,22 +35,22 @@ no_index:
 provides:
   CPAN::Reporter:
     file: lib/CPAN/Reporter.pm
-    version: '1.2011'
+    version: '1.2014'
   CPAN::Reporter::API:
     file: lib/CPAN/Reporter/API.pm
-    version: '1.2011'
+    version: '1.2014'
   CPAN::Reporter::Config:
     file: lib/CPAN/Reporter/Config.pm
-    version: '1.2011'
+    version: '1.2014'
   CPAN::Reporter::FAQ:
     file: lib/CPAN/Reporter/FAQ.pm
-    version: '1.2011'
+    version: '1.2014'
   CPAN::Reporter::History:
     file: lib/CPAN/Reporter/History.pm
-    version: '1.2011'
+    version: '1.2014'
   CPAN::Reporter::PrereqCheck:
     file: lib/CPAN/Reporter/PrereqCheck.pm
-    version: '1.2011'
+    version: '1.2014'
 requires:
   CPAN: '1.94'
   CPAN::Version: '0'
@@ -73,18 +75,21 @@ requires:
   Probe::Perl: '0'
   Test::Reporter: '1.54'
   constant: '0'
-  perl: '5.006'
+  perl: '5.008'
   strict: '0'
   vars: '0'
 resources:
   bugtracker: https://github.com/cpan-testers/CPAN-Reporter/issues
   homepage: https://github.com/cpan-testers/CPAN-Reporter
   repository: https://github.com/cpan-testers/CPAN-Reporter.git
-version: '1.2011'
+version: '1.2014'
 x_authority: cpan:DAGOLDEN
 x_contributors:
   - 'Alexandr Ciornii <alexchorny@gmail.com>'
   - 'Breno G. de Oliveira <garu@cpan.org>'
   - 'Christian Walde <walde.christian@googlemail.com>'
+  - 'Ed J <mohawk2@users.noreply.github.com>'
   - 'Kent Fredric <kentfredric@gmail.com>'
   - 'Matthew Musgrove <mr.muskrat@gmail.com>'
+  - 'Scott Wiersdorf <scott@perlcode.org>'
+  - 'Slaven Rezic <slaven@rezic.de>'
@@ -1,24 +1,21 @@
-
-# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.014.
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.034.
 use strict;
 use warnings;
 
-use 5.006;
+use 5.008;
 
 use ExtUtils::MakeMaker 6.17;
 
-
-
 my %WriteMakefileArgs = (
   "ABSTRACT" => "Adds CPAN Testers reporting to CPAN.pm",
   "AUTHOR" => "David Golden <dagolden\@cpan.org>",
-  "BUILD_REQUIRES" => {},
   "CONFIGURE_REQUIRES" => {
     "ExtUtils::MakeMaker" => "6.17"
   },
   "DISTNAME" => "CPAN-Reporter",
   "EXE_FILES" => [],
   "LICENSE" => "apache",
+  "MIN_PERL_VERSION" => "5.008",
   "NAME" => "CPAN::Reporter",
   "PREREQ_PM" => {
     "CPAN" => "1.94",
@@ -49,17 +46,17 @@ my %WriteMakefileArgs = (
   },
   "TEST_REQUIRES" => {
     "Archive::Tar" => "1.54",
+    "ExtUtils::MakeMaker" => "6.36",
     "File::Copy::Recursive" => "0.35",
+    "File::Spec" => "3.19",
     "File::Spec::Functions" => 0,
     "File::pushd" => "0.32",
     "IO::CaptureOutput" => "1.03",
-    "List::Util" => 0,
     "Test::Harness" => 0,
     "Test::More" => "0.62",
-    "version" => 0,
     "warnings" => 0
   },
-  "VERSION" => "1.2011",
+  "VERSION" => "1.2014",
   "test" => {
     "TESTS" => "t/*.t"
   }
@@ -91,7 +88,6 @@ my %FallbackPrereqs = (
   "IO::CaptureOutput" => "1.03",
   "IO::File" => 0,
   "IPC::Cmd" => "0.76",
-  "List::Util" => 0,
   "Parse::CPAN::Meta" => 0,
   "Probe::Perl" => 0,
   "Test::Harness" => 0,
@@ -100,7 +96,6 @@ my %FallbackPrereqs = (
   "constant" => 0,
   "strict" => 0,
   "vars" => 0,
-  "version" => 0,
   "warnings" => 0
 );
 
@@ -115,6 +110,3 @@ delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
   unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
 
 WriteMakefile(%WriteMakefileArgs);
-
-
-
@@ -2,7 +2,7 @@ NAME
     CPAN::Reporter - Adds CPAN Testers reporting to CPAN.pm
 
 VERSION
-    version 1.2011
+    version 1.2014
 
 SYNOPSIS
     From the CPAN shell:
@@ -144,6 +144,9 @@ PRIVACY WARNING
     prior to sending it.
 
 BUGS
+    Using command_timeout on Linux may cause problems. See
+    <https://rt.cpan.org/Ticket/Display.html?id=62310>
+
     Please report any bugs or feature using the CPAN Request Tracker. Bugs
     can be submitted through the web interface at
     <http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Reporter>
@@ -190,10 +193,16 @@ CONTRIBUTORS
 
     *   Christian Walde <walde.christian@googlemail.com>
 
+    *   Ed J <mohawk2@users.noreply.github.com>
+
     *   Kent Fredric <kentfredric@gmail.com>
 
     *   Matthew Musgrove <mr.muskrat@gmail.com>
 
+    *   Scott Wiersdorf <scott@perlcode.org>
+
+    *   Slaven Rezic <slaven@rezic.de>
+
 COPYRIGHT AND LICENSE
     This software is Copyright (c) 2006 by David Golden.
 
@@ -65,22 +65,6 @@ TODO list for Perl module CPAN::Reporter
 
 - refactor t/Helper.pm
 
-- add warnings::compat to toolchain or else add config to allow local
-  modules to be added to toolchain report
-    - SAPER: 
-        Hmm... ok. The fact is that warnings::compat isn't listed in
-        Sys::Syslog prereqs, but it should in order to make it work under
-        5.5. So I guess that Slaven manually installed it in his 5.5.5 smoker
-        in order to ease the process, but in that case, it becomes (in a
-        sense) part of the toolchain, because it masks a potentially missing
-        prereq (this is what happened here). warnings::compat is a little
-        special because it provides a way to make a core module available on
-        old Perls. So maybe CPAN::Reporter should allow one to add locally
-        installed modules in the toolchain section.
-    - SREZIC:
-        To add my 0.02EUR: maybe warnings::compat could/should be shown only
-        if 5.5.x is used.
-
 - switch from a single flat file for history. e.g.
     - SDBM_File for history (key on subject line, with phase as value?
       Or key on distro name/perl with result and phase as value? ) -- but
@@ -21,37 +21,38 @@ requires "Parse::CPAN::Meta" => "0";
 requires "Probe::Perl" => "0";
 requires "Test::Reporter" => "1.54";
 requires "constant" => "0";
-requires "perl" => "5.006";
+requires "perl" => "5.008";
 requires "strict" => "0";
 requires "vars" => "0";
 
 on 'test' => sub {
   requires "Archive::Tar" => "1.54";
+  requires "ExtUtils::MakeMaker" => "6.36";
   requires "File::Copy::Recursive" => "0.35";
+  requires "File::Spec" => "3.19";
   requires "File::Spec::Functions" => "0";
   requires "File::pushd" => "0.32";
   requires "IO::CaptureOutput" => "1.03";
-  requires "List::Util" => "0";
   requires "Test::Harness" => "0";
   requires "Test::More" => "0.62";
-  requires "version" => "0";
+  requires "perl" => "5.008";
   requires "warnings" => "0";
 };
 
 on 'test' => sub {
-  recommends "CPAN::Meta" => "0";
-  recommends "CPAN::Meta::Requirements" => "2.120900";
+  recommends "CPAN::Meta" => "2.120900";
 };
 
 on 'configure' => sub {
   requires "ExtUtils::MakeMaker" => "6.17";
+  requires "perl" => "5.006";
 };
 
 on 'develop' => sub {
-  requires "Dist::Zilla" => "5.014";
+  requires "Dist::Zilla" => "5";
   requires "Dist::Zilla::Plugin::Prereqs" => "0";
   requires "Dist::Zilla::Plugin::RemovePrereqs" => "0";
-  requires "Dist::Zilla::PluginBundle::DAGOLDEN" => "0.060";
+  requires "Dist::Zilla::PluginBundle::DAGOLDEN" => "0.072";
   requires "File::Spec" => "0";
   requires "File::Temp" => "0";
   requires "IO::Handle" => "0";
@@ -61,4 +62,6 @@ on 'develop' => sub {
   requires "Test::More" => "0";
   requires "Test::Pod" => "1.41";
   requires "Test::Pod::Coverage" => "1.08";
+  requires "Test::Spelling" => "0.12";
+  requires "Test::Version" => "1";
 };
@@ -5,8 +5,7 @@ copyright_holder  = David Golden
 copyright_year    = 2006
 
 [@DAGOLDEN]
-:version = 0.060
--remove = MinimumPerlFast
+:version = 0.072
 stopwords = cpanreporter
 stopwords = exe
 stopwords = metabase
@@ -1,6 +1,7 @@
 use strict; # make CPANTS happy
 package CPAN::Reporter::API;
-our $VERSION = '1.2011'; # VERSION
+
+our $VERSION = '1.2014';
 
 1;
 
@@ -18,7 +19,7 @@ CPAN::Reporter::API - Programmer's interface to CPAN::Reporter
 
 =head1 VERSION
 
-version 1.2011
+version 1.2014
 
 =head1 FUNCTIONS
 
@@ -1,6 +1,7 @@
 use strict;
 package CPAN::Reporter::Config;
-our $VERSION = '1.2011'; # VERSION
+
+our $VERSION = '1.2014';
 
 use Config::Tiny 2.08 ();
 use File::Glob ();
@@ -295,6 +296,12 @@ HERE
     retry_submission => {
         default => undef,
     },
+    '_store_problems_in_dir' => { #experimental
+        default => undef,
+    },
+    '_problem_log' => { #experimental
+        default => undef,
+    },
 );
 
 sub _config_spec { return %option_specs }
@@ -664,7 +671,7 @@ CPAN::Reporter::Config - Config file options for CPAN::Reporter
 
 =head1 VERSION
 
-version 1.2011
+version 1.2014
 
 =head1 SYNOPSIS
 
@@ -852,7 +859,7 @@ C<<< inactivity_timeout >>> is not set, then any commands executed by CPAN::Repo
 will be halted after this many seconds; useful for unattended smoke testing
 to stop after some amount of time; generally, this should be large --
 900 seconds or more -- as some distributions' tests take quite a long time to
-run.  On MSWin32, L<Win32::Job> is a needed and trying to kill a processes may
+run.  On MSWin32, L<Win32::Job> is a needed and trying to kill a process may
 actually deadlock in some situations -- so use at your own risk.
 
 =item *
@@ -1,6 +1,7 @@
 use strict; # make CPANTS happy
 package CPAN::Reporter::FAQ;
-our $VERSION = '1.2011'; # VERSION
+
+our $VERSION = '1.2014';
 
 1;
 
@@ -18,7 +19,7 @@ CPAN::Reporter::FAQ - Answers and tips for using CPAN::Reporter
 
 =head1 VERSION
 
-version 1.2011
+version 1.2014
 
 =head1 REPORT GRADES
 
@@ -1,6 +1,7 @@
 use strict;
 package CPAN::Reporter::History;
-our $VERSION = '1.2011'; # VERSION
+
+our $VERSION = '1.2014';
 
 use vars qw/@ISA @EXPORT_OK/;
 
@@ -322,7 +323,7 @@ CPAN::Reporter::History - Read or write a CPAN::Reporter history log
 
 =head1 VERSION
 
-version 1.2011
+version 1.2014
 
 =head1 SYNOPSIS
 
@@ -1,6 +1,7 @@
 use strict;
 package CPAN::Reporter::PrereqCheck;
-our $VERSION = '1.2011'; # VERSION
+
+our $VERSION = '1.2014';
 
 use ExtUtils::MakeMaker 6.36;
 use File::Spec;
@@ -11,11 +12,16 @@ _run() if ! caller();
 sub _run {
     my %saw_mod;
     # read module and prereq string from STDIN
+    # do this as early as possible: https://github.com/cpan-testers/CPAN-Reporter/issues/20
+    my @modules;
+    while ( <> ) {
+        push @modules, $_;
+    }
     local *DEVNULL;
     open DEVNULL, ">" . File::Spec->devnull; ## no critic
     # ensure actually installed, not ./inc/... or ./t/..., etc.
     local @INC = grep { $_ ne '.' } @INC;
-    while ( <> ) {
+    for (@modules) {
         m/^(\S+)\s+([^\n]*)/;
         my ($mod, $need) = ($1, $2);
         die "Couldn't read module for '$_'" unless $mod;
@@ -134,6 +140,7 @@ sub _try_load {
   my %loading_conflicts = (
     'signatures' => ['Catalyst'],
     'Dancer::Plugin::FlashMessage' => ['Dancer::Plugin::FlashNote'],
+    'Dancer::Plugin::FlashNote' => ['Dancer::Plugin::FlashMessage'],
     'Dancer::Plugin::Mongoose' => ['Dancer::Plugin::DBIC'],
     'Dancer::Plugin::DBIC' => ['Dancer::Plugin::Mongoose'],
   ); #modules that conflict with each other
@@ -142,11 +149,17 @@ sub _try_load {
     'Tk::Font' => 'Tk',
     'Tk::Widget' => 'Tk',
     'Tk::Label' => 'Tk',
+    'Tk::Menubutton' => 'Tk',
+    'Tk::Entry' => 'Tk',
     'Class::MOP::Class' => 'Class::MOP',
     'Moose::Meta::TypeConstraint::Role' => 'Moose',
     'Moose::Meta::TypeConstraint::Union' => 'Moose',
     'Moose::Meta::Attribute::Native' => 'Class::MOP',
+    'Moose::Meta::Role::Attribute' => 'Class::MOP',
     'Test::More::Hooks' => 'Test::More',
+    'Net::HTTP::Spore::Middleware::DefaultParams' => 'Net::HTTP::Spore::Meta::Method',
+    'Log::Log4perl::Filter' => 'Log::Log4perl',
+    'RDF::DOAP::Project' => 'RDF::Trine', #or other modules that use RDF::Trine will fail
   );
 
   # M::I < 0.95 dies in require, so we can't check if it loads
@@ -204,7 +217,7 @@ CPAN::Reporter::PrereqCheck - Modulino for prerequisite tests
 
 =head1 VERSION
 
-version 1.2011
+version 1.2014
 
 =head1 SYNOPSIS
 
@@ -1,6 +1,7 @@
 use strict;
 package CPAN::Reporter;
-our $VERSION = '1.2011'; # VERSION
+
+our $VERSION = '1.2014';
 
 use Config;
 use Capture::Tiny qw/ capture tee_merged /;
@@ -522,6 +523,39 @@ TRANSPORT_REQUIRED
     return;
 }
 
+sub _report_timeout {
+    my $result = shift;
+    if ($result->{exit_value} == 9) {
+        my $config_obj = CPAN::Reporter::Config::_open_config_file();
+        my $config;
+        $config = CPAN::Reporter::Config::_get_config_options( $config_obj )
+            if $config_obj;
+
+        if ($config->{'_store_problems_in_dir'}) {
+            my $distribution = $result->{dist}->base_id;
+            my $file = "e9.$distribution.${\(time)}.$$.log";
+            if (open my $to_log_fh, '>>', $config->{'_store_problems_in_dir'}.'/'.$file) {
+                print $to_log_fh $distribution,"\n";
+                print $to_log_fh "stage: ",$result->{phase},"\n";
+                print $to_log_fh $Config{archname},"\n";
+                print $to_log_fh _report_text( $result );
+            } else {
+                $CPAN::Frontend->mywarn( "CPAN::Reporter: writing ".
+                    $config->{'_store_problems_in_dir'}.'/'.$file. " failed\n");
+            }
+        }
+        if ($config->{'_problem_log'}) {
+            my $distribution = $result->{dist}->base_id;
+            if (open my $to_log_fh, '>>', $config->{'_problem_log'}) {
+                print $to_log_fh "$result->{phase} $distribution $Config{archname}\n";
+            } else {
+                $CPAN::Frontend->mywarn( "CPAN::Reporter: writing ".
+                    $config->{'_store_problems_in_dir'}. " failed\n");
+            }
+        }
+    }
+}
+
 #--------------------------------------------------------------------------#
 # _downgrade_known_causes
 # Downgrade failure/unknown grade if we can determine a cause
@@ -544,6 +578,8 @@ sub _downgrade_known_causes {
     # get prereqs
     _expand_result( $result );
 
+    _report_timeout( $result );
+
     # if process was halted with a signal, just set for discard and return
     if ( $result->{exit_value} & 127 ) {
         $result->{grade} = 'discard';
@@ -562,7 +598,8 @@ sub _downgrade_known_causes {
         $harness_error++;
         last;
       }
-      if( $line =~ /Perl .*? required.*?--this is only/ims ||
+      if( $line =~ /(?<!skipped: )Perl .*? required.*?--this is only/ims ||
+           #?<! - quick hack for https://github.com/cpan-testers/CPAN-Reporter/issues/23
         $line =~ /Perl version .*? or higher required\. We run/ims || #EU::MM
         $line =~ /ERROR: perl: Version .*? is installed, but we need version/ims ||
         $line =~ /ERROR: perl \(.*?\) is installed, but we need version/ims ||
@@ -1505,7 +1542,7 @@ CPAN::Reporter - Adds CPAN Testers reporting to CPAN.pm
 
 =head1 VERSION
 
-version 1.2011
+version 1.2014
 
 =head1 SYNOPSIS
 
@@ -1667,6 +1704,9 @@ prior to sending it.
 
 =head1 BUGS
 
+Using command_timeout on Linux may cause problems. See
+L<https://rt.cpan.org/Ticket/Display.html?id=62310>
+
 Please report any bugs or feature using the CPAN Request Tracker.
 Bugs can be submitted through the web interface at
 L<http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Reporter>
@@ -1733,6 +1773,8 @@ David Golden <dagolden@cpan.org>
 
 =head1 CONTRIBUTORS
 
+=for stopwords Alexandr Ciornii Breno G. de Oliveira Christian Walde Ed J Kent Fredric Matthew Musgrove Scott Wiersdorf Slaven Rezic
+
 =over 4
 
 =item *
@@ -1749,12 +1791,24 @@ Christian Walde <walde.christian@googlemail.com>
 
 =item *
 
+Ed J <mohawk2@users.noreply.github.com>
+
+=item *
+
 Kent Fredric <kentfredric@gmail.com>
 
 =item *
 
 Matthew Musgrove <mr.muskrat@gmail.com>
 
+=item *
+
+Scott Wiersdorf <scott@perlcode.org>
+
+=item *
+
+Slaven Rezic <slaven@rezic.de>
+
 =back
 
 =head1 COPYRIGHT AND LICENSE
@@ -0,0 +1,77 @@
+do { my $x = {
+       'configure' => {
+                        'requires' => {
+                                        'ExtUtils::MakeMaker' => '6.17',
+                                        'perl' => '5.006'
+                                      }
+                      },
+       'develop' => {
+                      'requires' => {
+                                      'Dist::Zilla' => '5',
+                                      'Dist::Zilla::Plugin::Prereqs' => '0',
+                                      'Dist::Zilla::Plugin::RemovePrereqs' => '0',
+                                      'Dist::Zilla::PluginBundle::DAGOLDEN' => '0.072',
+                                      'File::Spec' => '0',
+                                      'File::Temp' => '0',
+                                      'IO::Handle' => '0',
+                                      'IPC::Open3' => '0',
+                                      'Pod::Coverage::TrustPod' => '0',
+                                      'Test::CPAN::Meta' => '0',
+                                      'Test::More' => '0',
+                                      'Test::Pod' => '1.41',
+                                      'Test::Pod::Coverage' => '1.08',
+                                      'Test::Spelling' => '0.12',
+                                      'Test::Version' => '1'
+                                    }
+                    },
+       'runtime' => {
+                      'requires' => {
+                                      'CPAN' => '1.94',
+                                      'CPAN::Version' => '0',
+                                      'Capture::Tiny' => '0',
+                                      'Carp' => '0',
+                                      'Config::Tiny' => '2.08',
+                                      'Data::Dumper' => '0',
+                                      'Devel::Autoflush' => '0.04',
+                                      'Exporter' => '0',
+                                      'ExtUtils::MakeMaker' => '6.36',
+                                      'Fcntl' => '0',
+                                      'File::Basename' => '0',
+                                      'File::Find' => '0',
+                                      'File::Glob' => '0',
+                                      'File::HomeDir' => '0.58',
+                                      'File::Path' => '0',
+                                      'File::Spec' => '3.19',
+                                      'File::Temp' => '0.16',
+                                      'IO::File' => '0',
+                                      'IPC::Cmd' => '0.76',
+                                      'Parse::CPAN::Meta' => '0',
+                                      'Probe::Perl' => '0',
+                                      'Test::Reporter' => '1.54',
+                                      'constant' => '0',
+                                      'perl' => '5.008',
+                                      'strict' => '0',
+                                      'vars' => '0'
+                                    }
+                    },
+       'test' => {
+                   'recommends' => {
+                                     'CPAN::Meta' => '2.120900'
+                                   },
+                   'requires' => {
+                                   'Archive::Tar' => '1.54',
+                                   'ExtUtils::MakeMaker' => '6.36',
+                                   'File::Copy::Recursive' => '0.35',
+                                   'File::Spec' => '3.19',
+                                   'File::Spec::Functions' => '0',
+                                   'File::pushd' => '0.32',
+                                   'IO::CaptureOutput' => '1.03',
+                                   'Test::Harness' => '0',
+                                   'Test::More' => '0.62',
+                                   'perl' => '5.008',
+                                   'warnings' => '0'
+                                 }
+                 }
+     };
+  $x;
+ }
\ No newline at end of file
@@ -3,204 +3,179 @@
 use strict;
 use warnings;
 
-# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.013
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.021
 
 use Test::More tests => 1;
 
 use ExtUtils::MakeMaker;
-use File::Spec::Functions;
-use List::Util qw/max/;
-use version;
+use File::Spec;
+
+# from $version::LAX
+my $lax_version_re =
+    qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )?
+            |
+            (?:\.[0-9]+) (?:_[0-9]+)?
+        ) | (?:
+            v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )?
+            |
+            (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)?
+        )
+    )/x;
 
 # hide optional CPAN::Meta modules from prereq scanner
 # and check if they are available
 my $cpan_meta = "CPAN::Meta";
-my $cpan_meta_req = "CPAN::Meta::Requirements";
-my $HAS_CPAN_META = eval "require $cpan_meta"; ## no critic
-my $HAS_CPAN_META_REQ = eval "require $cpan_meta_req; $cpan_meta_req->VERSION('2.120900')";
+my $cpan_meta_pre = "CPAN::Meta::Prereqs";
+my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic
 
 # Verify requirements?
 my $DO_VERIFY_PREREQS = 1;
 
-sub _merge_requires {
+sub _max {
+    my $max = shift;
+    $max = ( $_ > $max ) ? $_ : $max for @_;
+    return $max;
+}
+
+sub _merge_prereqs {
     my ($collector, $prereqs) = @_;
-    for my $phase ( qw/configure build test runtime develop/ ) {
-        next unless exists $prereqs->{$phase};
-        if ( my $req = $prereqs->{$phase}{'requires'} ) {
-            my $cmr = CPAN::Meta::Requirements->from_string_hash( $req );
-            $collector->add_requirements( $cmr );
+
+    # CPAN::Meta::Prereqs object
+    if (ref $collector eq $cpan_meta_pre) {
+        return $collector->with_merged_prereqs(
+            CPAN::Meta::Prereqs->new( $prereqs )
+        );
+    }
+
+    # Raw hashrefs
+    for my $phase ( keys %$prereqs ) {
+        for my $type ( keys %{ $prereqs->{$phase} } ) {
+            for my $module ( keys %{ $prereqs->{$phase}{$type} } ) {
+                $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module};
+            }
         }
     }
+
+    return $collector;
 }
 
-my %include = map {; $_ => 1 } qw(
+my @include = qw(
 
 );
 
-my %exclude = map {; $_ => 1 } qw(
+my @exclude = qw(
 
 );
 
 # Add static prereqs to the included modules list
-my $static_prereqs = do { my $x = {
-       'configure' => {
-                        'requires' => {
-                                        'ExtUtils::MakeMaker' => '6.17'
-                                      }
-                      },
-       'develop' => {
-                      'requires' => {
-                                      'Dist::Zilla' => '5.014',
-                                      'Dist::Zilla::Plugin::Prereqs' => '0',
-                                      'Dist::Zilla::Plugin::RemovePrereqs' => '0',
-                                      'Dist::Zilla::PluginBundle::DAGOLDEN' => '0.060',
-                                      'File::Spec' => '0',
-                                      'File::Temp' => '0',
-                                      'IO::Handle' => '0',
-                                      'IPC::Open3' => '0',
-                                      'Pod::Coverage::TrustPod' => '0',
-                                      'Test::CPAN::Meta' => '0',
-                                      'Test::More' => '0',
-                                      'Test::Pod' => '1.41',
-                                      'Test::Pod::Coverage' => '1.08'
-                                    }
-                    },
-       'runtime' => {
-                      'requires' => {
-                                      'CPAN' => '1.94',
-                                      'CPAN::Version' => '0',
-                                      'Capture::Tiny' => '0',
-                                      'Carp' => '0',
-                                      'Config::Tiny' => '2.08',
-                                      'Data::Dumper' => '0',
-                                      'Devel::Autoflush' => '0.04',
-                                      'Exporter' => '0',
-                                      'ExtUtils::MakeMaker' => '6.36',
-                                      'Fcntl' => '0',
-                                      'File::Basename' => '0',
-                                      'File::Find' => '0',
-                                      'File::Glob' => '0',
-                                      'File::HomeDir' => '0.58',
-                                      'File::Path' => '0',
-                                      'File::Spec' => '3.19',
-                                      'File::Temp' => '0.16',
-                                      'IO::File' => '0',
-                                      'IPC::Cmd' => '0.76',
-                                      'Parse::CPAN::Meta' => '0',
-                                      'Probe::Perl' => '0',
-                                      'Test::Reporter' => '1.54',
-                                      'constant' => '0',
-                                      'perl' => '5.006',
-                                      'strict' => '0',
-                                      'vars' => '0'
-                                    }
-                    },
-       'test' => {
-                   'recommends' => {
-                                     'CPAN::Meta' => '0',
-                                     'CPAN::Meta::Requirements' => '2.120900'
-                                   },
-                   'requires' => {
-                                   'Archive::Tar' => '1.54',
-                                   'File::Copy::Recursive' => '0.35',
-                                   'File::Spec::Functions' => '0',
-                                   'File::pushd' => '0.32',
-                                   'IO::CaptureOutput' => '1.03',
-                                   'List::Util' => '0',
-                                   'Test::Harness' => '0',
-                                   'Test::More' => '0.62',
-                                   'version' => '0',
-                                   'warnings' => '0'
-                                 }
-                 }
-     };
-  $x;
- };
-
-delete $static_prereqs->{develop} if not $ENV{AUTHOR_TESTING};
-$include{$_} = 1 for map { keys %$_ } map { values %$_ } values %$static_prereqs;
-
-# Merge requirements for major phases (if we can)
-my $all_requires;
-if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META_REQ ) {
-    $all_requires = $cpan_meta_req->new;
-    _merge_requires($all_requires, $static_prereqs);
-}
+my $static_prereqs = do 't/00-report-prereqs.dd';
 
+# Merge all prereqs (either with ::Prereqs or a hashref)
+my $full_prereqs = _merge_prereqs(
+    ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
+    $static_prereqs
+);
 
 # Add dynamic prereqs to the included modules list (if we can)
 my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
 if ( $source && $HAS_CPAN_META ) {
-  if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
-    my $dynamic_prereqs = $meta->prereqs;
-    delete $dynamic_prereqs->{develop} if not $ENV{AUTHOR_TESTING};
-    $include{$_} = 1 for map { keys %$_ } map { values %$_ } values %$dynamic_prereqs;
-
-    if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META_REQ ) {
-        _merge_requires($all_requires, $dynamic_prereqs);
+    if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
+        $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
     }
-  }
 }
 else {
-  $source = 'static metadata';
+    $source = 'static metadata';
 }
 
-my @modules = sort grep { ! $exclude{$_} } keys %include;
-my @reports = [qw/Version Module/];
+my @full_reports;
 my @dep_errors;
-my $req_hash = defined($all_requires) ? $all_requires->as_string_hash : {};
-
-for my $mod ( @modules ) {
-  next if $mod eq 'perl';
-  my $file = $mod;
-  $file =~ s{::}{/}g;
-  $file .= ".pm";
-  my ($prefix) = grep { -e catfile($_, $file) } @INC;
-  if ( $prefix ) {
-    my $ver = MM->parse_version( catfile($prefix, $file) );
-    $ver = "undef" unless defined $ver; # Newer MM should do this anyway
-    push @reports, [$ver, $mod];
-
-    if ( $DO_VERIFY_PREREQS && $all_requires ) {
-      my $req = $req_hash->{$mod};
-      if ( defined $req && length $req ) {
-        if ( ! defined eval { version->parse($ver) } ) {
-          push @dep_errors, "$mod version '$ver' cannot be parsed (version '$req' required)";
-        }
-        elsif ( ! $all_requires->accepts_module( $mod => $ver ) ) {
-          push @dep_errors, "$mod version '$ver' is not in required range '$req'";
+my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
+
+# Add static includes into a fake section
+for my $mod (@include) {
+    $req_hash->{other}{modules}{$mod} = 0;
+}
+
+for my $phase ( qw(configure build test runtime develop other) ) {
+    next unless $req_hash->{$phase};
+    next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING});
+
+    for my $type ( qw(requires recommends suggests conflicts modules) ) {
+        next unless $req_hash->{$phase}{$type};
+
+        my $title = ucfirst($phase).' '.ucfirst($type);
+        my @reports = [qw/Module Want Have/];
+
+        for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) {
+            next if $mod eq 'perl';
+            next if grep { $_ eq $mod } @exclude;
+
+            my $file = $mod;
+            $file =~ s{::}{/}g;
+            $file .= ".pm";
+            my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC;
+
+            my $want = $req_hash->{$phase}{$type}{$mod};
+            $want = "undef" unless defined $want;
+            $want = "any" if !$want && $want == 0;
+
+            my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
+
+            if ($prefix) {
+                my $have = MM->parse_version( File::Spec->catfile($prefix, $file) );
+                $have = "undef" unless defined $have;
+                push @reports, [$mod, $want, $have];
+
+                if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) {
+                    if ( $have !~ /\A$lax_version_re\z/ ) {
+                        push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
+                    }
+                    elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) {
+                        push @dep_errors, "$mod version '$have' is not in required range '$want'";
+                    }
+                }
+            }
+            else {
+                push @reports, [$mod, $want, "missing"];
+
+                if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
+                    push @dep_errors, "$mod is not installed ($req_string)";
+                }
+            }
         }
-      }
-    }
 
-  }
-  else {
-    push @reports, ["missing", $mod];
+        if ( @reports ) {
+            push @full_reports, "=== $title ===\n\n";
+
+            my $ml = _max( map { length $_->[0] } @reports );
+            my $wl = _max( map { length $_->[1] } @reports );
+            my $hl = _max( map { length $_->[2] } @reports );
 
-    if ( $DO_VERIFY_PREREQS && $all_requires ) {
-      my $req = $req_hash->{$mod};
-      if ( defined $req && length $req ) {
-        push @dep_errors, "$mod is not installed (version '$req' required)";
-      }
+            if ($type eq 'modules') {
+                splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl];
+                push @full_reports, map { sprintf("    %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports;
+            }
+            else {
+                splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
+                push @full_reports, map { sprintf("    %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
+            }
+
+            push @full_reports, "\n";
+        }
     }
-  }
 }
 
-if ( @reports ) {
-  my $vl = max map { length $_->[0] } @reports;
-  my $ml = max map { length $_->[1] } @reports;
-  splice @reports, 1, 0, ["-" x $vl, "-" x $ml];
-  diag "\nVersions for all modules listed in $source (including optional ones):\n",
-    map {sprintf("  %*s %*s\n",$vl,$_->[0],-$ml,$_->[1])} @reports;
+if ( @full_reports ) {
+    diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports;
 }
 
 if ( @dep_errors ) {
-  diag join("\n",
-    "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
-    "The following REQUIRED prerequisites were not satisfied:\n",
-    @dep_errors,
-    "\n"
-  );
+    diag join("\n",
+        "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
+        "The following REQUIRED prerequisites were not satisfied:\n",
+        @dep_errors,
+        "\n"
+    );
 }
 
 pass;
@@ -30,6 +30,7 @@ local $Config{perl_patchlevel};
 #--------------------------------------------------------------------------#
 
 my $perl = Probe::Perl->find_perl_interpreter();
+$perl = qq{"$perl"};
 my $make = $Config{make};
 
 my $mock_dist = t::MockCPANDist->new( 
@@ -0,0 +1,71 @@
+#!perl
+use strict;
+BEGIN{ if (not $] < 5.006) { require warnings; warnings->import } }
+
+select(STDERR); $|=1;
+select(STDOUT); $|=1;
+
+use Test::More;
+
+my @load_pairs = (['Module::Install' => 0.90],
+                  ['Catalyst::DispatchType::Regex' => 5.90032],
+                  ['mylib' => undef],
+                  ['Acme::Fake' => undef]);
+
+plan tests => 6 + scalar @load_pairs;
+
+require_ok('CPAN::Reporter::PrereqCheck');
+
+#--------------------------------------------------------------------------#
+# _try_load tests
+#--------------------------------------------------------------------------#
+for my $pair (@load_pairs) {
+    my ($mod, $have) = @$pair;
+    is(CPAN::Reporter::PrereqCheck::_try_load($mod, $have), 1,
+       "_try_load for $mod");
+}
+
+$INC{'Catalyst.pm'} = '/fake/path/Catalyst.pm';
+is(CPAN::Reporter::PrereqCheck::_try_load('signatures', undef), 1,
+   "_try_load for loading_conflicts");
+delete $INC{'Catalyst.pm'};
+
+my $try = CPAN::Reporter::PrereqCheck::_try_load('Test::More::Hooks', undef);
+$try ||= $@ =~ qr(Can't locate Test/More/Hooks\.pm);
+
+ok($try, "_try_load for load_before");
+
+#--------------------------------------------------------------------------#
+# _run tests
+#--------------------------------------------------------------------------#
+
+use File::Temp 'tempfile';
+my ($tfh, $tfn) = tempfile(UNLINK => 1);
+print $tfh <<_INPUT_;
+Completely::Bogus 0
+Test::More 0,>=1,>2,<=3,<4,!=5
+Test::More 0
+perl
+_INPUT_
+close $tfh;
+
+push @ARGV, $tfn;  ## _run() uses <>; I tried writing to an in-memory
+                   ## variable first, but Devel::Cover reopens STDIN,
+                   ## which defeated the purpose of the test
+
+## open stdout to a variable
+open OLDOUT, ">&", \*STDOUT;
+close STDOUT;
+my $output = '';
+open STDOUT, ">", \$output;
+
+CPAN::Reporter::PrereqCheck::_run();
+
+## put things back
+open STDOUT, ">&", \*OLDOUT;
+
+like($output, qr(Completely::Bogus 0 n/a), "file is not installed");
+like($output, qr(Test::More \d \d), "module found");
+like($output, qr(perl 1 $]), "perl checked");
+
+exit;
@@ -18,6 +18,7 @@ use Probe::Perl ();
 #--------------------------------------------------------------------------#
 
 my $perl = Probe::Perl->find_perl_interpreter();
+$perl = qq{"$perl"};
 
 my $quote = $^O eq 'MSWin32' || $^O eq 'MSDOS' ? q{"} : q{'};
 
@@ -28,6 +28,7 @@ BEGIN {
 
 my $make = $Config{make};
 my $perl = Probe::Perl->find_perl_interpreter();
+$perl = qq{"$perl"};
 
 my %mock_dist_info = ( 
     prereq_pm       => {
@@ -18,6 +18,7 @@ use Probe::Perl;
 
 my $make = $Config{make};
 my $perl = Probe::Perl->find_perl_interpreter();
+$perl = qq{"$perl"};
 
 my $mock_dist = t::MockCPANDist->new( 
     pretty_id => "JOHNQP/Bogus-Module-1.23.tar.gz",
@@ -32,6 +32,7 @@ local $Config{perl_patchlevel};
 
 my $make = $Config{make};
 my $perl = Probe::Perl->find_perl_interpreter();
+$perl = qq{"$perl"};
 my $skipfile = File::Temp->new();
 print {$skipfile} << 'SKIPFILE';
 # comments should be ok
@@ -29,6 +29,7 @@ plan tests => 1 + @cases;
 #--------------------------------------------------------------------------#
 
 my $perl = Probe::Perl->find_perl_interpreter();
+$perl = qq{"$perl"};
 
 my ($stdout, $stderr, $output, $exit, $line);
 
@@ -34,6 +34,7 @@ use t::MockHomeDir;
 #--------------------------------------------------------------------------#
 
 my $perl = Probe::Perl->find_perl_interpreter();
+$perl = qq{"$perl"}; # protect from shell
 my $make = $Config{make};
 
 my $temp_stdout = File::Temp->new()
@@ -2,11 +2,11 @@ use 5.006;
 use strict;
 use warnings;
 
-# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.039
-
-use Test::More  tests => 6 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.052
 
+use Test::More;
 
+plan tests => 7;
 
 my @module_files = (
     'CPAN/Reporter.pm',
@@ -53,6 +53,7 @@ for my $lib (@module_files)
 
 
 
-is(scalar(@warnings), 0, 'no warnings found') if $ENV{AUTHOR_TESTING};
+is(scalar(@warnings), 0, 'no warnings found')
+    or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) );
 
 
@@ -2,7 +2,7 @@ use strict;
 use warnings;
 use Test::More;
 
-# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006007
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006008
 use Test::Spelling 0.12;
 use Pod::Wordlist;
 
@@ -28,17 +28,25 @@ garu
 Christian
 Walde
 walde
+Ed
+mohawk2
 Kent
 Fredric
 kentfredric
 Matthew
 Musgrove
 mr
+Scott
+Wiersdorf
+scott
+Slaven
+Rezic
+slaven
 lib
 CPAN
 Reporter
-FAQ
-PrereqCheck
-Config
 API
+Config
+FAQ
 History
+PrereqCheck
@@ -2,8 +2,8 @@ use strict;
 use warnings;
 use Test::More;
 
-# generated by Dist::Zilla::Plugin::Test::Version 0.002004
-BEGIN { eval "use Test::Version; 1;" or die $@; }
+# generated by Dist::Zilla::Plugin::Test::Version 0.003001
+use Test::Version;
 
 my @imports = ( 'version_all_ok' );