@@ -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' );