@@ -0,0 +1,100 @@
+## 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/
+
@@ -1,5 +1,17 @@
Revision history for Perl module CPAN::Reporter::Smoker
+0.26 2014-03-14 15:52:43+01:00 Europe/Paris
+
+ [ADDED]
+
+ - New option 'skip_dev_versions' to work on minicpans (CHORNY)
+
+0.25 2013-11-06 10:06:15 America/New_York
+
+ - Add reloading history of modules smoked (CHORNY)
+
+ - Add support for custom filtering (CHORNY)
+
0.24 2011-07-21 00:12:34 America/New_York
- Fixes test failures with CPAN::Reporter 1.19_04
@@ -1,4 +1,4 @@
-This software is Copyright (c) 2011 by David Golden.
+This software is Copyright (c) 2014 by David Golden.
This is free software, licensed under:
@@ -1,15 +1,18 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.013.
+CONTRIBUTING
Changes
LICENSE
MANIFEST
-MANIFEST.SKIP
META.json
META.yml
Makefile.PL
-README.PATCHING
+README
Todo
+cpanfile
dist.ini
lib/CPAN/Reporter/Smoker.pm
-t/00-compile.t
+perlcritic.rc
+t/00-report-prereqs.t
t/00load.t
t/CPAN/authors/01mailrc.txt.gz
t/CPAN/authors/id/A/AN/ANDK/Bogus-OSUnsupported-0.01.tar.gz
@@ -40,7 +43,12 @@ t/smoke-list-array.t
t/smoke-list-file.t
t/smoke-restart.t
t/smoke-reverse.t
+xt/author/00-compile.t
+xt/author/critic.t
+xt/author/pod-spell.t
xt/release/distmeta.t
+xt/release/minimum-version.t
xt/release/pod-coverage.t
xt/release/pod-syntax.t
+xt/release/portability.t
xt/release/test-version.t
@@ -1,3 +0,0 @@
-# scratch files from testing if left around
-^t/dot-cpan
-^t/dot-cpanreporter
@@ -4,7 +4,7 @@
"David Golden <dagolden@cpan.org>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 4.200009, CPAN::Meta::Converter version 2.110930",
+ "generated_by" : "Dist::Zilla version 5.013, CPAN::Meta::Converter version 2.140640",
"license" : [
"apache_2_0"
],
@@ -27,63 +27,94 @@
"prereqs" : {
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "6.30"
+ "ExtUtils::MakeMaker" : "6.17"
+ }
+ },
+ "develop" : {
+ "requires" : {
+ "Dist::Zilla" : "5.013",
+ "Dist::Zilla::Plugin::Encoding" : "0",
+ "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.93",
- "CPAN::HandleConfig" : 0,
+ "CPAN::HandleConfig" : "0",
"CPAN::Reporter::History" : "1.1702",
- "CPAN::Tarzip" : 0,
- "Carp" : 0,
+ "CPAN::Tarzip" : "0",
+ "Carp" : "0",
"Compress::Zlib" : "1.2",
- "Config" : 0,
- "Exporter" : 0,
+ "Exporter" : "0",
"ExtUtils::MakeMaker" : "6.46",
- "Fcntl" : 0,
- "File::Basename" : 0,
+ "Fcntl" : "0",
+ "File::Basename" : "0",
"File::Spec" : "3.27",
"File::Temp" : "0.20",
"Module::Build" : "0.30",
"Probe::Perl" : "0.01",
"Term::Title" : "0.01",
"Test::Reporter" : "1.58",
- "perl" : "5.006"
+ "perl" : "5.006",
+ "strict" : "0",
+ "warnings" : "0"
}
},
"test" : {
+ "recommends" : {
+ "CPAN::Meta" : "0",
+ "CPAN::Meta::Requirements" : "2.120900"
+ },
"requires" : {
- "CPAN::Checksums" : 0,
+ "CPAN::Checksums" : "0",
"Cwd" : "3.27",
- "File::Find" : 0,
- "File::Path" : 0,
+ "ExtUtils::MakeMaker" : "6.46",
+ "File::Find" : "0",
+ "File::Path" : "0",
+ "File::Spec::Functions" : "0",
"IO::CaptureOutput" : "1.06",
- "IO::File" : 0,
+ "IO::File" : "0",
+ "List::Util" : "0",
"Test::More" : "0.62",
- "vars" : 0
+ "vars" : "0",
+ "version" : "0"
}
}
},
"provides" : {
"CPAN::Reporter::Smoker" : {
"file" : "lib/CPAN/Reporter/Smoker.pm",
- "version" : "0.24"
+ "version" : "0.26"
}
},
"release_status" : "stable",
"resources" : {
"bugtracker" : {
- "mailto" : "bug-cpan-reporter-smoker at rt.cpan.org",
- "web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=CPAN-Reporter-Smoker"
+ "web" : "https://github.com/cpan-testers/CPAN-Reporter-Smoker/issues"
},
- "homepage" : "http://github.com/dagolden/cpan-reporter-smoker",
+ "homepage" : "https://github.com/cpan-testers/CPAN-Reporter-Smoker",
"repository" : {
"type" : "git",
- "url" : "http://github.com/dagolden/cpan-reporter-smoker",
- "web" : "http://github.com/dagolden/cpan-reporter-smoker"
+ "url" : "https://github.com/cpan-testers/CPAN-Reporter-Smoker.git",
+ "web" : "https://github.com/cpan-testers/CPAN-Reporter-Smoker"
}
},
- "version" : "0.24"
+ "version" : "0.26",
+ "x_authority" : "cpan:DAGOLDEN",
+ "x_contributors" : [
+ "Alexandr Ciornii <alexchorny@gmail.com>",
+ "Christian Walde <walde.christian@googlemail.com>"
+ ]
}
@@ -3,22 +3,26 @@ abstract: 'Turnkey CPAN Testers smoking'
author:
- 'David Golden <dagolden@cpan.org>'
build_requires:
- CPAN::Checksums: 0
- Cwd: 3.27
- File::Find: 0
- File::Path: 0
- IO::CaptureOutput: 1.06
- IO::File: 0
- Test::More: 0.62
- vars: 0
+ CPAN::Checksums: '0'
+ Cwd: '3.27'
+ ExtUtils::MakeMaker: '6.46'
+ File::Find: '0'
+ File::Path: '0'
+ File::Spec::Functions: '0'
+ IO::CaptureOutput: '1.06'
+ IO::File: '0'
+ List::Util: '0'
+ Test::More: '0.62'
+ vars: '0'
+ version: '0'
configure_requires:
- ExtUtils::MakeMaker: 6.30
+ ExtUtils::MakeMaker: '6.17'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.200009, CPAN::Meta::Converter version 2.110930'
+generated_by: 'Dist::Zilla version 5.013, CPAN::Meta::Converter version 2.140640'
license: apache
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: CPAN-Reporter-Smoker
no_index:
directory:
@@ -31,28 +35,33 @@ no_index:
provides:
CPAN::Reporter::Smoker:
file: lib/CPAN/Reporter/Smoker.pm
- version: 0.24
+ version: '0.26'
requires:
- CPAN: 1.93
- CPAN::HandleConfig: 0
- CPAN::Reporter::History: 1.1702
- CPAN::Tarzip: 0
- Carp: 0
- Compress::Zlib: 1.2
- Config: 0
- Exporter: 0
- ExtUtils::MakeMaker: 6.46
- Fcntl: 0
- File::Basename: 0
- File::Spec: 3.27
- File::Temp: 0.20
- Module::Build: 0.30
- Probe::Perl: 0.01
- Term::Title: 0.01
- Test::Reporter: 1.58
- perl: 5.006
+ CPAN: '1.93'
+ CPAN::HandleConfig: '0'
+ CPAN::Reporter::History: '1.1702'
+ CPAN::Tarzip: '0'
+ Carp: '0'
+ Compress::Zlib: '1.2'
+ Exporter: '0'
+ ExtUtils::MakeMaker: '6.46'
+ Fcntl: '0'
+ File::Basename: '0'
+ File::Spec: '3.27'
+ File::Temp: '0.20'
+ Module::Build: '0.30'
+ Probe::Perl: '0.01'
+ Term::Title: '0.01'
+ Test::Reporter: '1.58'
+ perl: '5.006'
+ strict: '0'
+ warnings: '0'
resources:
- bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=CPAN-Reporter-Smoker
- homepage: http://github.com/dagolden/cpan-reporter-smoker
- repository: http://github.com/dagolden/cpan-reporter-smoker
-version: 0.24
+ bugtracker: https://github.com/cpan-testers/CPAN-Reporter-Smoker/issues
+ homepage: https://github.com/cpan-testers/CPAN-Reporter-Smoker
+ repository: https://github.com/cpan-testers/CPAN-Reporter-Smoker.git
+version: '0.26'
+x_authority: cpan:DAGOLDEN
+x_contributors:
+ - 'Alexandr Ciornii <alexchorny@gmail.com>'
+ - 'Christian Walde <walde.christian@googlemail.com>'
@@ -1,70 +1,103 @@
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.013.
use strict;
use warnings;
use 5.006;
-use ExtUtils::MakeMaker 6.30;
+use ExtUtils::MakeMaker 6.17;
my %WriteMakefileArgs = (
- 'ABSTRACT' => 'Turnkey CPAN Testers smoking',
- 'AUTHOR' => 'David Golden <dagolden@cpan.org>',
- 'BUILD_REQUIRES' => {
- 'CPAN::Checksums' => '0',
- 'Cwd' => '3.27',
- 'File::Find' => '0',
- 'File::Path' => '0',
- 'IO::CaptureOutput' => '1.06',
- 'IO::File' => '0',
- 'Test::More' => '0.62',
- 'vars' => '0'
+ "ABSTRACT" => "Turnkey CPAN Testers smoking",
+ "AUTHOR" => "David Golden <dagolden\@cpan.org>",
+ "BUILD_REQUIRES" => {},
+ "CONFIGURE_REQUIRES" => {
+ "ExtUtils::MakeMaker" => "6.17"
},
- 'CONFIGURE_REQUIRES' => {
- 'ExtUtils::MakeMaker' => '6.30'
+ "DISTNAME" => "CPAN-Reporter-Smoker",
+ "EXE_FILES" => [],
+ "LICENSE" => "apache",
+ "NAME" => "CPAN::Reporter::Smoker",
+ "PREREQ_PM" => {
+ "CPAN" => "1.93",
+ "CPAN::HandleConfig" => 0,
+ "CPAN::Reporter::History" => "1.1702",
+ "CPAN::Tarzip" => 0,
+ "Carp" => 0,
+ "Compress::Zlib" => "1.2",
+ "Exporter" => 0,
+ "ExtUtils::MakeMaker" => "6.46",
+ "Fcntl" => 0,
+ "File::Basename" => 0,
+ "File::Spec" => "3.27",
+ "File::Temp" => "0.20",
+ "Module::Build" => "0.30",
+ "Probe::Perl" => "0.01",
+ "Term::Title" => "0.01",
+ "Test::Reporter" => "1.58",
+ "strict" => 0,
+ "warnings" => 0
},
- 'DISTNAME' => 'CPAN-Reporter-Smoker',
- 'EXE_FILES' => [],
- 'LICENSE' => 'apache',
- 'NAME' => 'CPAN::Reporter::Smoker',
- 'PREREQ_PM' => {
- 'CPAN' => '1.93',
- 'CPAN::HandleConfig' => '0',
- 'CPAN::Reporter::History' => '1.1702',
- 'CPAN::Tarzip' => '0',
- 'Carp' => '0',
- 'Compress::Zlib' => '1.2',
- 'Config' => '0',
- 'Exporter' => '0',
- 'ExtUtils::MakeMaker' => '6.46',
- 'Fcntl' => '0',
- 'File::Basename' => '0',
- 'File::Spec' => '3.27',
- 'File::Temp' => '0.20',
- 'Module::Build' => '0.30',
- 'Probe::Perl' => '0.01',
- 'Term::Title' => '0.01',
- 'Test::Reporter' => '1.58'
+ "TEST_REQUIRES" => {
+ "CPAN::Checksums" => 0,
+ "Cwd" => "3.27",
+ "ExtUtils::MakeMaker" => "6.46",
+ "File::Find" => 0,
+ "File::Path" => 0,
+ "File::Spec::Functions" => 0,
+ "IO::CaptureOutput" => "1.06",
+ "IO::File" => 0,
+ "List::Util" => 0,
+ "Test::More" => "0.62",
+ "vars" => 0,
+ "version" => 0
},
- 'VERSION' => '0.24',
- 'test' => {
- 'TESTS' => 't/*.t'
+ "VERSION" => "0.26",
+ "test" => {
+ "TESTS" => "t/*.t"
}
);
-unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {
- my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
- my $pp = $WriteMakefileArgs{PREREQ_PM};
- for my $mod ( keys %$br ) {
- if ( exists $pp->{$mod} ) {
- $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod};
- }
- else {
- $pp->{$mod} = $br->{$mod};
- }
- }
+my %FallbackPrereqs = (
+ "CPAN" => "1.93",
+ "CPAN::Checksums" => 0,
+ "CPAN::HandleConfig" => 0,
+ "CPAN::Reporter::History" => "1.1702",
+ "CPAN::Tarzip" => 0,
+ "Carp" => 0,
+ "Compress::Zlib" => "1.2",
+ "Cwd" => "3.27",
+ "Exporter" => 0,
+ "ExtUtils::MakeMaker" => "6.46",
+ "Fcntl" => 0,
+ "File::Basename" => 0,
+ "File::Find" => 0,
+ "File::Path" => 0,
+ "File::Spec" => "3.27",
+ "File::Spec::Functions" => 0,
+ "File::Temp" => "0.20",
+ "IO::CaptureOutput" => "1.06",
+ "IO::File" => 0,
+ "List::Util" => 0,
+ "Module::Build" => "0.30",
+ "Probe::Perl" => "0.01",
+ "Term::Title" => "0.01",
+ "Test::More" => "0.62",
+ "Test::Reporter" => "1.58",
+ "strict" => 0,
+ "vars" => 0,
+ "version" => 0,
+ "warnings" => 0
+);
+
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+ delete $WriteMakefileArgs{TEST_REQUIRES};
+ delete $WriteMakefileArgs{BUILD_REQUIRES};
+ $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
}
delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
@@ -0,0 +1,411 @@
+NAME
+ CPAN::Reporter::Smoker - Turnkey CPAN Testers smoking
+
+VERSION
+ version 0.26
+
+SYNOPSIS
+ $ perl -MCPAN::Reporter::Smoker -e start
+
+DESCRIPTION
+ Rudimentary smoke tester for CPAN Testers, built upon CPAN::Reporter.
+ Use at your own risk. It requires a recent version of CPAN::Reporter to
+ run.
+
+ Currently, CPAN::Reporter::Smoker requires zero independent
+ configuration; instead it uses configuration settings from CPAN.pm and
+ CPAN::Reporter.
+
+ Once started, it retrieves a list of distributions from the configured
+ CPAN mirror and begins testing them in reverse order of upload. It will
+ skip any distribution which has already had a report sent by
+ CPAN::Reporter.
+
+ Features (or bugs, depending on your point of view):
+
+ * No configuration needed
+
+ * Tests each distribution as a separate CPAN process -- each
+ distribution has prerequisites like build_requires satisfied from
+ scratch
+
+ * Automatically checks for new distributions every twelve hours or as
+ otherwise specified
+
+ * Continues until interrupted with CTRL-C
+
+ * Checks CPAN.pm "distroprefs" to see if distributions should be
+ skipped (before handing off to CPAN)
+
+ Current limitations:
+
+ * Does not attempt to retest distributions that had reports discarded
+ because of prerequisites that could not be satisfied
+
+ WARNING -- smoke testing is risky
+ Smoke testing will download and run programs that other people have
+ uploaded to CPAN. These programs could do anything to your system,
+ including deleting everything on it. Do not run CPAN::Reporter::Smoker
+ unless you are prepared to take these risks.
+
+USAGE
+ "start()"
+ Starts smoke testing using defaults already in CPAN::Config and
+ CPAN::Reporter's .cpanreporter directory. Runs until all distributions
+ are tested or the process is halted with CTRL-C or otherwise killed.
+
+ "start()" supports several optional arguments:
+
+ * "clean_cache_after" -- number of distributions that will be tested
+ before checking to see if the CPAN build cache needs to be cleaned
+ up (not including any prerequisites tested). Must be a positive
+ integer. Defaults to 100
+
+ * "list" -- if provided, this list of distributions will be tested
+ instead of all of CPAN. May be a reference to an array of
+ distribution names or may be a filename containing one distribution
+ name per line. Distribution names must be of the form
+ 'AUTHOR/Dist-Name-0.00.tar.gz'
+
+ * "restart_delay" -- number of seconds that must elapse before
+ restarting smoke testing. This will reload indices to search for new
+ distributions and restart testing from the most recent distribution.
+ Must be a positive integer; Defaults to 43200 seconds (12 hours)
+
+ * "skip_dev_versions" -- if true, unindexed distributions will not be
+ tested. Valid values are 0 or 1. Defaults to 0.
+
+ * "set_term_title" -- toggle for whether the terminal titlebar will be
+ updated with the distribution being smoke tested and the starting
+ time of the test. Helps determine if a test is hung and which
+ distribution might be responsible. Valid values are 0 or 1. Defaults
+ to 1
+
+ * "status_file" -- during testing, the name of the distribution under
+ test and a timestamp are written to this file. The file is removed
+ after the test is complete. This helps identify a problem
+ distribution if testing hangs or crashes the computer. If the
+ argument includes a path, all directories to the file must exist.
+ Defaults to "smoker-status-$$.txt" in File::Spec->tmpdir.
+
+ * "install" -- toggle for whether the distribution should be installed
+ after successful testing. Can be useful to avoid prerequisite
+ re-building and growing PERL5LIB for the cost of disk space used for
+ installed modules. Valid values are 0 or 1. Defaults to 0
+
+ * "reverse" -- toggle the order in which releases are tested. When set
+ to 1, testing starts from the older release not the most recent one
+ (or the last distribution if --list is provided). Valid values are 0
+ or 1. Defaults to 0
+
+ * "force_trust" -- toggle whether to override CPAN's
+ "trust_test_report_history" option. When set to 1,
+ "trust_test_report_history" is set to 1. When set to 0,
+ "trust_test_report_history" is left alone and whatever the user has
+ configured for their CPAN client is used. Valid values are 0 or 1.
+ Defaults to 0
+
+ * "reload_history_period" -- after this period in seconds, history of
+ modules smoked will be reloaded when possible. Default value 1800
+ seconds (30 minutes).
+
+HINTS
+ Selection of distributions to test
+ Only the most recently uploaded developer and normal releases will be
+ tested, and only if the developer release is newer than the regular
+ release indexed by PAUSE.
+
+ For example, if Foo-Bar-0.01, Foo-Bar-0.02, Foo-Bar-0.03_01 and
+ Foo-Bar-0.03_02 are on CPAN, only Foo-Bar-0.02 and Foo-Bar-0.03_02 will
+ be tested, and in reverse order of when they were uploaded. Once
+ Foo-Bar-0.04 is released and indexed, Foo-Bar-0.03_02 will not longer be
+ tested.
+
+ To avoid testing script or other tarballs, developer distributions
+ included must have a base distribution name that resembles a
+ distribution tarball already indexed by PAUSE. If the first upload of
+ distribution to PAUSE is a developer release -- Baz-Bam-0.00_01.tar.gz
+ -- it will not be tested as there is no indexed Baz-Bam appearing in
+ CPAN's 02packages.details.txt file.
+
+ Unauthorized tarballs are treated like developer releases and will be
+ tested if they resemble an indexed distribution and are newer than the
+ indexed tarball.
+
+ Perl, parrot, kurila, Pugs and similar distributions will not be tested.
+ The skip list is based on CPAN::Mini and matches as follows:
+
+ qr{(?:
+ /(?:emb|syb|bio)?perl-\d
+ | /(?:parrot|ponie|kurila|Perl6-Pugs)-\d
+ | /perl-?5\.004
+ | /perl_mlb\.zip
+ )}xi,
+
+ Bundles and mod_perl distributions will also not be tested, though
+ mod_perl is likely to be requested as a dependency by many modules. See
+ the next section for how to tell CPAN.pm not to test certain
+ dependencies.
+
+ Skipping additional distributions
+ If certain distributions hang, crash or otherwise cause trouble, you can
+ use CPAN's "distroprefs" system to disable them. If a distribution is
+ disabled, it won't be built or tested. If a distribution's dependency is
+ disabled, a failing test is just discarded.
+
+ The first step is configuring a directory for distroprefs files:
+
+ $ cpan
+ cpan> o conf init prefs_dir
+ cpan> o conf commit
+
+ Next, ensure that either the YAML or YAML::Syck module is installed.
+ (YAML::Syck is faster). Then create a file in the "prefs_dir" directory
+ to hold the list of distributions to disable, e.g. call it
+ "disabled.yml"
+
+ In that file, you can add blocks of YAML code to disable distributions.
+ The match criteria "distribution" is a regex that matches against the
+ canonical name of a distribution, e.g. "AUTHOR/Foo-Bar-3.14.tar.gz".
+
+ Here is a sample file to show you some syntax (don't actually use these,
+ though):
+
+ ---
+ comment: "Tests take too long"
+ match:
+ distribution: "^DAGOLDEN/CPAN-Reporter-\d"
+ disabled: 1
+ ---
+ comment: "Skip Win32 distributions"
+ match:
+ distribution: "/Win32"
+ disabled: 1
+ ---
+ comment: "Skip distributions by Andy Lester"
+ match:
+ distribution: "^PETDANCE"
+ disabled: 1
+
+ Please note that disabling distributions like this will also disable
+ them for normal, non-smoke usage of CPAN.pm.
+
+ One distribution that I would recommend either installing up front or
+ else disabling with distroprefs is mod_perl, as it is a common
+ requirement for many Apache:: modules but does not (easily) build and
+ test under automation.
+
+ ---
+ comment: "Don't build mod_perl if required by some other module"
+ match:
+ distribution: "/mod_perl-\d"
+ disabled: 1
+
+ Distroprefs are more powerful than this -- they can be used to automate
+ responses to prompts in distributions, set environment variables,
+ specify additional dependencies and so on. Read the docs for CPAN.pm for
+ more and look in the "distroprefs" directory in the CPAN distribution
+ tarball for examples.
+
+ Using a local CPAN::Mini mirror
+ Because distributions must be retrieved from a CPAN mirror, the smoker
+ may cause heavy network load and will repetitively download common build
+ prerequisites.
+
+ An alternative is to use CPAN::Mini to create a local CPAN mirror and to
+ point CPAN's "urllist" to the local mirror.
+
+ $ cpan
+ cpan> o conf urllist unshift file:///path/to/minicpan
+ cpan> o conf commit
+
+ However, CPAN::Reporter::Smoker needs the "find-ls.gz" file, which
+ CPAN::Mini does not mirror by default. Add it to a .minicpanrc file in
+ your home directory to include it in your local CPAN mirror.
+
+ also_mirror: indices/find-ls.gz
+
+ Note that CPAN::Mini does not mirror developer versions. Therefore, a
+ live, network CPAN Mirror will be needed in the urllist to retrieve
+ these.
+
+ Note that CPAN requires the LWP module to be installed to use a local
+ CPAN mirror.
+
+ Alternatively, you might experiment with the alpha-quality release of
+ CPAN::Mini::Devel, which subclasses CPAN::Mini to retrieve developer
+ distributions (and find-ls.gz) using the same logic as
+ CPAN::Reporter::Smoker.
+
+ Timing out hanging tests
+ CPAN::Reporter (since 1.08) supports a 'command_timeout' configuration
+ option. Set this option in the CPAN::Reporter configuration file to time
+ out tests that hang up or get stuck at a prompt. Set it to a high-value
+ to avoid timing out a lengthy tests that are still running -- 1000 or
+ more seconds is probably enough.
+
+ Warning -- on Win32, terminating processes via the command_timeout is
+ equivalent to SIGKILL and could cause system instability or later
+ deadlocks
+
+ This option is still considered experimental.
+
+ Avoiding repetitive prerequisite testing
+ Because CPAN::Reporter::Smoker satisfies all requirements from scratch,
+ common dependencies (e.g. Class::Accessor) will be unpacked, built and
+ tested repeatedly.
+
+ As of version 1.92_56, CPAN supports the "trust_test_report_history"
+ config option. When set, CPAN will check the last test report for a
+ distribution. If one is found, the results of that test are used instead
+ of running tests again.
+
+ $ cpan
+ cpan> o conf init trust_test_report_history
+ cpan> o conf commit
+
+ Avoiding repetitive prerequisite builds (EXPERIMENTAL)
+ CPAN has a "build_dir_reuse" config option. When set (and if a YAML
+ module is installed and configured), CPAN will attempt to make build
+ directories persistent. This has the potential to save substantial time
+ and space during smoke testing. CPAN::Reporter::Smoker will recognize if
+ this option is set and make adjustments to the test process to keep
+ PERL5LIB from growing uncontrollably as the number of persistent
+ directories increases.
+
+ NOTE: Support for "build_dir_reuse" is highly experimental. Wait for at
+ least CPAN version 1.92_62 before trying this option.
+
+ $ cpan
+ cpan> o conf init build_dir_reuse
+ cpan> o conf commit
+
+ Stopping early if a prerequisite fails
+ Normally, CPAN.pm continues testing a distribution even if a
+ prerequisite fails to build or fails testing. Some distributions may
+ pass their tests even without a listed prerequisite, but most just fail
+ (and CPAN::Reporter discards failures if prerequisites are not met).
+
+ As of version 1.92_57, CPAN supports the "halt_on_failure" config
+ option. When set, a prerequisite failure stops further processing.
+
+ $ cpan
+ cpan> o conf init halt_on_failure
+ cpan> o conf commit
+
+ However, a disadvantage of halting early is that no DISCARD grade is
+ recorded in the history. The next time CPAN::Reporter::Smoker runs, the
+ distribution will be tested again from scratch. It may be better to let
+ all prerequisites finish so the distribution can fail its test and be
+ flagged with DISCARD so it will be skipped in the future.
+
+ CPAN cache bloat
+ CPAN will use a lot of scratch space to download, build and test
+ modules. Use CPAN's built-in cache management configuration to let it
+ purge the cache periodically if you don't want to do this manually. When
+ configured, the cache will be purged on start and after a certain number
+ of distributions have been tested as determined by the
+ "clean_cache_after" option for the "start()" function.
+
+ $ cpan
+ cpan> o conf init build_cache scan_cache
+ cpan> o conf commit
+
+ CPAN verbosity
+ Recent versions of CPAN are verbose by default, but include some lesser
+ known configuration settings to minimize this for untarring
+ distributions and for loading support modules. Setting the verbosity for
+ these to 'none' will minimize some of the clutter to the screen as
+ distributions are tested.
+
+ $ cpan
+ cpan> o conf init /verbosity/
+ cpan> o conf commit
+
+ Saving reports to files instead of sending directly
+ In some cases, such as when smoke testing using a development or
+ prerelease toolchain module like Test-Harness, it may be preferable to
+ save reports to files in a directory for review prior to submitting
+ them. To do this, manually set the "transport" option in your
+ CPAN::Reporter config file to use the Test::Reporter::Transport::File
+ transport.
+
+ transport=File /path/to/directory
+
+ After review, send saved reports using Test::Reporter:
+
+ Test::Reporter->new()->read($filename)->send()
+
+ENVIRONMENT
+ Automatically sets the following environment variables to true values
+ while running:
+
+ * "AUTOMATED_TESTING" -- signal that tests are being run by an
+ automated smoke testing program (i.e. don't expect interactivity)
+
+ * "PERL_MM_USE_DEFAULT" -- accept ExtUtils::MakeMaker prompt()
+ defaults
+
+ * "PERL_EXTUTILS_AUTOINSTALL" -- set to '--defaultdeps' for default
+ dependencies
+
+ The following environment variables, if set, will modify the behavior of
+ CPAN::Reporter::Smoker. Generally, they are only required during the
+ testing of CPAN::Reporter::Smoker
+
+ * "PERL_CR_SMOKER_RUNONCE" -- if true, "start()" will exit after all
+ distributions are tested instead of sleeping for the "restart_delay"
+ and then continuing
+
+ * "PERL_CR_SMOKER_SHORTCUT" -- if true, "start()" will process
+ arguments (if any) but will return before starting smoke testing;
+ used for testing argument handling by "start()"
+
+BUGS
+ 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-Smoker>
+
+ When submitting a bug or request, please include a test-file or a patch
+ to an existing test-file that illustrates the bug or desired feature.
+
+SEE ALSO
+ * CPAN
+
+ * CPAN::Reporter
+
+ * CPAN::Testers
+
+ * CPAN::Mini
+
+ * CPAN::Mini::Devel
+
+SUPPORT
+ Bugs / Feature Requests
+ Please report any bugs or feature requests through the issue tracker at
+ <https://github.com/cpan-testers/CPAN-Reporter-Smoker/issues>. You will
+ be notified automatically of any progress on your issue.
+
+ Source Code
+ This is open source software. The code repository is available for
+ public review and contribution under the terms of the license.
+
+ <https://github.com/cpan-testers/CPAN-Reporter-Smoker>
+
+ git clone https://github.com/cpan-testers/CPAN-Reporter-Smoker.git
+
+AUTHOR
+ David Golden <dagolden@cpan.org>
+
+CONTRIBUTORS
+ * Alexandr Ciornii <alexchorny@gmail.com>
+
+ * Christian Walde <walde.christian@googlemail.com>
+
+COPYRIGHT AND LICENSE
+ This software is Copyright (c) 2014 by David Golden.
+
+ This is free software, licensed under:
+
+ The Apache License, Version 2.0, January 2004
+
@@ -1,42 +0,0 @@
-README.PATCHING
-
-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).
-
-However, you can run tests directly using the 'prove' tool:
-
- $ prove -l
- $ prove -lv t/some_test_file.t
-
-For most distributions, 'prove' is entirely sufficent for you to test any
-patches you have.
-
-Likewise, much of the documentation Pod is generated at release time.
-Depending on the distribution, some 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.
-
-Dist::Zilla is a very powerful authoring tool, but requires a number of
-author-specific plugins. If you would like to use it for contributing,
-install it from CPAN, then run one of the following commands, depending on
-your CPAN client:
-
- $ 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/
-
@@ -0,0 +1,60 @@
+requires "CPAN" => "1.93";
+requires "CPAN::HandleConfig" => "0";
+requires "CPAN::Reporter::History" => "1.1702";
+requires "CPAN::Tarzip" => "0";
+requires "Carp" => "0";
+requires "Compress::Zlib" => "1.2";
+requires "Exporter" => "0";
+requires "ExtUtils::MakeMaker" => "6.46";
+requires "Fcntl" => "0";
+requires "File::Basename" => "0";
+requires "File::Spec" => "3.27";
+requires "File::Temp" => "0.20";
+requires "Module::Build" => "0.30";
+requires "Probe::Perl" => "0.01";
+requires "Term::Title" => "0.01";
+requires "Test::Reporter" => "1.58";
+requires "perl" => "5.006";
+requires "strict" => "0";
+requires "warnings" => "0";
+
+on 'test' => sub {
+ requires "CPAN::Checksums" => "0";
+ requires "Cwd" => "3.27";
+ requires "ExtUtils::MakeMaker" => "6.46";
+ requires "File::Find" => "0";
+ requires "File::Path" => "0";
+ requires "File::Spec::Functions" => "0";
+ requires "IO::CaptureOutput" => "1.06";
+ requires "IO::File" => "0";
+ requires "List::Util" => "0";
+ requires "Test::More" => "0.62";
+ requires "vars" => "0";
+ requires "version" => "0";
+};
+
+on 'test' => sub {
+ recommends "CPAN::Meta" => "0";
+ recommends "CPAN::Meta::Requirements" => "2.120900";
+};
+
+on 'configure' => sub {
+ requires "ExtUtils::MakeMaker" => "6.17";
+};
+
+on 'develop' => sub {
+ requires "Dist::Zilla" => "5.013";
+ requires "Dist::Zilla::Plugin::Encoding" => "0";
+ requires "Dist::Zilla::Plugin::Prereqs" => "0";
+ requires "Dist::Zilla::Plugin::RemovePrereqs" => "0";
+ requires "Dist::Zilla::PluginBundle::DAGOLDEN" => "0.060";
+ requires "File::Spec" => "0";
+ requires "File::Temp" => "0";
+ requires "IO::Handle" => "0";
+ requires "IPC::Open3" => "0";
+ requires "Pod::Coverage::TrustPod" => "0";
+ requires "Test::CPAN::Meta" => "0";
+ requires "Test::More" => "0";
+ requires "Test::Pod" => "1.41";
+ requires "Test::Pod::Coverage" => "1.08";
+};
@@ -3,9 +3,23 @@ author = David Golden <dagolden@cpan.org>
license = Apache_2_0
copyright_holder = David Golden
-[@Filter]
-bundle = @DAGOLDEN
-remove = PortabilityTests
+[@DAGOLDEN]
+:version = 0.060
+stopwords = unindexed
+stopwords = Bam
+stopwords = Baz
+stopwords = CTRL
+stopwords = Distroprefs
+stopwords = SIGKILL
+stopwords = cpanreporter
+stopwords = defaultdeps
+stopwords = distroprefs
+stopwords = kurila
+stopwords = minicpanrc
+stopwords = prerelease
+stopwords = titlebar
+stopwords = untarring
+stopwords = urllist
[Prereqs]
ExtUtils::MakeMaker = 6.46
@@ -15,3 +29,8 @@ Test::Reporter = 1.58
[RemovePrereqs]
remove = YAML
+[Encoding]
+encoding = bytes
+match = ^t/CPAN/authors
+match = ^t/CPAN/indices
+match = ^t/CPAN/modules
@@ -2,7 +2,7 @@ use 5.006;
use strict;
use warnings;
package CPAN::Reporter::Smoker;
-our $VERSION = '0.24'; # VERSION
+our $VERSION = '0.26'; # VERSION
use Carp;
use Config;
@@ -67,6 +67,18 @@ my %spec = (
default => 0,
is_valid => sub { /^[01]$/ },
},
+ 'reload_history_period' => {
+ default => 30*60,
+ is_valid => sub { /^\d+$/ },
+ },
+ filter => {
+ default => undef,
+ is_valid => sub { !defined $_ || ref $_ eq 'SUB' }
+ },
+ skip_dev_versions => {
+ default => 0,
+ is_valid => sub { /^[01]$/ },
+ },
);
sub start {
@@ -113,6 +125,7 @@ sub start {
# global cache of distros smoked to speed skips on restart
my %seen = map { $_->{dist} => 1 } CPAN::Reporter::History::have_tested();
+ my $history_loaded_at = time;
SCAN_LOOP:
while ( 1 ) {
@@ -140,7 +153,7 @@ sub start {
CPAN::Index->reload;
$CPAN::Frontend->mywarn( "Smoker: scanning and sorting index\n");
- $dists = _parse_module_index( $package, $find_ls );
+ $dists = _parse_module_index( $package, $find_ls, $args{skip_dev_versions} );
$CPAN::Frontend->mywarn( "Smoker: found " . scalar @$dists . " distributions on CPAN\n");
}
@@ -179,6 +192,11 @@ sub start {
"Smoker: already tested $base [$count]\n");
next DIST;
}
+ elsif ( $args{filter} and $args{filter}->($dist) ) {
+ $CPAN::Frontend->mywarn(
+ "Smoker: dist skipped $base [$count]\n");
+ next DIST;
+ }
elsif ( CPAN::Distribution->new(%{$dist})->prefs->{disabled} ) {
$CPAN::Frontend->mywarn(
"Smoker: dist disabled $base [$count]\n");
@@ -215,6 +233,12 @@ sub start {
_clean_cache();
$dists_tested = 0;
}
+ if (time - $history_loaded_at > $args{reload_history_period}) { #_reload_history
+ %seen = map { $_->{dist} => 1 } CPAN::Reporter::History::have_tested();
+ $history_loaded_at = time;
+ $CPAN::Frontend->mywarn( "List of distros smoked updated\n");
+ }
+
next SCAN_LOOP if time - $loop_start_time > $args{restart_delay};
}
last SCAN_LOOP if $ENV{PERL_CR_SMOKER_RUNONCE};
@@ -361,7 +385,7 @@ sub _base_name {
#--------------------------------------------------------------------------#-
sub _parse_module_index {
- my ( $packages, $file_ls ) = @_;
+ my ( $packages, $file_ls, $skip_dev_versions ) = @_;
# first walk the packages list
# and build an index
@@ -450,6 +474,8 @@ sub _parse_module_index {
# skip unless there's a matching base from the packages file
next unless $latest{$base_name};
+ next if $skip_dev_versions;
+
# keep only the latest
$latest_dev{$base_name} ||= { datetime => 0 };
if ( $stat{datetime} > $latest_dev{$base_name}{datetime} ) {
@@ -485,17 +511,19 @@ sub _parse_module_index {
# ABSTRACT: Turnkey CPAN Testers smoking
-
+__END__
=pod
+=encoding UTF-8
+
=head1 NAME
CPAN::Reporter::Smoker - Turnkey CPAN Testers smoking
=head1 VERSION
-version 0.24
+version 0.26
=head1 SYNOPSIS
@@ -595,6 +623,11 @@ integer; Defaults to 43200 seconds (12 hours)
=item *
+C<<< skip_dev_versions >>> -- if true, unindexed distributions will not be tested.
+Valid values are 0 or 1. Defaults to 0.
+
+=item *
+
C<<< set_term_title >>> -- toggle for whether the terminal titlebar will be
updated with the distribution being smoke tested and the starting time
of the test. Helps determine if a test is hung and which distribution
@@ -630,6 +663,12 @@ is set to 1. When set to 0, C<<< trust_test_report_history >>> is left alone an
whatever the user has configured for their CPAN client is used.
Valid values are 0 or 1. Defaults to 0
+=item *
+
+C<<< reload_history_period >>> -- after this period in seconds, history of modules
+smoked will be reloaded when possible.
+Default value 1800 seconds (30 minutes).
+
=back
=head1 HINTS
@@ -731,7 +770,7 @@ examples.
=head2 Using a local CPAN::Mini mirror
Because distributions must be retrieved from a CPAN mirror, the smoker may
-cause heavy network load and will reptitively download common build
+cause heavy network load and will repetitively download common build
prerequisites.
An alternative is to use L<CPAN::Mini> to create a local CPAN mirror and to
@@ -804,7 +843,7 @@ CPAN version 1.92_62 before trying this option.
=head2 Stopping early if a prerequisite fails
-Normally, CPAN.pm continues testing a distribution even if a prequisite fails
+Normally, CPAN.pm continues testing a distribution even if a prerequisite fails
to build or fails testing. Some distributions may pass their tests even
without a listed prerequisite, but most just fail (and CPAN::Reporter discards
failures if prerequisites are not met).
@@ -849,7 +888,7 @@ minimize some of the clutter to the screen as distributions are tested.
=head2 Saving reports to files instead of sending directly
In some cases, such as when smoke testing using a development or prerelease
-toolchain module like Test-Harness, it may be prefereable to save reports to
+toolchain module like Test-Harness, it may be preferable to save reports to
files in a directory for review prior to submitting them. To do this,
manually set the C<<< transport >>> option in your CPAN::Reporter config file to use
the L<Test::Reporter::Transport::File> transport.
@@ -938,39 +977,49 @@ L<CPAN::Mini::Devel>
=back
-=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders
+=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan
=head1 SUPPORT
=head2 Bugs / Feature Requests
-Please report any bugs or feature requests by email to C<bug-cpan-reporter-smoker at rt.cpan.org>, or through
-the web interface at L<http://rt.cpan.org/Public/Dist/Display.html?Name=CPAN-Reporter-Smoker>. You will be automatically notified of any
-progress on the request by the system.
+Please report any bugs or feature requests through the issue tracker
+at L<https://github.com/cpan-testers/CPAN-Reporter-Smoker/issues>.
+You will be notified automatically of any progress on your issue.
=head2 Source Code
This is open source software. The code repository is available for
public review and contribution under the terms of the license.
-L<http://github.com/dagolden/cpan-reporter-smoker>
+L<https://github.com/cpan-testers/CPAN-Reporter-Smoker>
- git clone http://github.com/dagolden/cpan-reporter-smoker
+ git clone https://github.com/cpan-testers/CPAN-Reporter-Smoker.git
=head1 AUTHOR
David Golden <dagolden@cpan.org>
+=head1 CONTRIBUTORS
+
+=over 4
+
+=item *
+
+Alexandr Ciornii <alexchorny@gmail.com>
+
+=item *
+
+Christian Walde <walde.christian@googlemail.com>
+
+=back
+
=head1 COPYRIGHT AND LICENSE
-This software is Copyright (c) 2011 by David Golden.
+This software is Copyright (c) 2014 by David Golden.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004
=cut
-
-
-__END__
-
@@ -0,0 +1,26 @@
+severity = 5
+verbose = 8
+
+[Variables::ProhibitPunctuationVars]
+allow = $@ $!
+
+[TestingAndDebugging::ProhibitNoStrict]
+allow = refs
+
+[Variables::ProhibitEvilVariables]
+variables = $DB::single
+
+# Turn these off
+[-BuiltinFunctions::ProhibitStringyEval]
+[-ControlStructures::ProhibitPostfixControls]
+[-ControlStructures::ProhibitUnlessBlocks]
+[-Documentation::RequirePodSections]
+[-InputOutput::ProhibitInteractiveTest]
+[-References::ProhibitDoubleSigils]
+[-RegularExpressions::RequireExtendedFormatting]
+[-InputOutput::ProhibitTwoArgOpen]
+[-Modules::ProhibitEvilModules]
+
+# Turn this on
+[Lax::ProhibitStringyEval::ExceptForRequire]
+
@@ -1,59 +0,0 @@
-#!perl
-
-use strict;
-use warnings;
-
-use Test::More;
-
-
-
-use File::Find;
-use File::Temp qw{ tempdir };
-
-my @modules;
-find(
- sub {
- return if $File::Find::name !~ /\.pm\z/;
- my $found = $File::Find::name;
- $found =~ s{^lib/}{};
- $found =~ s{[/\\]}{::}g;
- $found =~ s/\.pm$//;
- # nothing to skip
- push @modules, $found;
- },
- 'lib',
-);
-
-my @scripts;
-if ( -d 'bin' ) {
- find(
- sub {
- return unless -f;
- my $found = $File::Find::name;
- # nothing to skip
- push @scripts, $found;
- },
- 'bin',
- );
-}
-
-my $plan = scalar(@modules) + scalar(@scripts);
-$plan ? (plan tests => $plan) : (plan skip_all => "no tests to run");
-
-{
- # fake home for cpan-testers
- local $ENV{HOME} = tempdir( CLEANUP => 1 );
-
- like( qx{ $^X -Ilib -e "require $_; print '$_ ok'" }, qr/^\s*$_ ok/s, "$_ loaded ok" )
- for sort @modules;
-
- SKIP: {
- eval "use Test::Script 1.05; 1;";
- skip "Test::Script needed to test script compilation", scalar(@scripts) if $@;
- foreach my $file ( @scripts ) {
- my $script = $file;
- $script =~ s!.*/!!;
- script_compiles( $file, "$script script compiles" );
- }
- }
-}
@@ -0,0 +1,204 @@
+#!perl
+
+use strict;
+use warnings;
+
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.013
+
+use Test::More tests => 1;
+
+use ExtUtils::MakeMaker;
+use File::Spec::Functions;
+use List::Util qw/max/;
+use version;
+
+# 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')";
+
+# Verify requirements?
+my $DO_VERIFY_PREREQS = 1;
+
+sub _merge_requires {
+ 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 );
+ }
+ }
+}
+
+my %include = map {; $_ => 1 } qw(
+
+);
+
+my %exclude = map {; $_ => 1 } 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.013',
+ 'Dist::Zilla::Plugin::Encoding' => '0',
+ '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.93',
+ 'CPAN::HandleConfig' => '0',
+ 'CPAN::Reporter::History' => '1.1702',
+ 'CPAN::Tarzip' => '0',
+ 'Carp' => '0',
+ 'Compress::Zlib' => '1.2',
+ 'Exporter' => '0',
+ 'ExtUtils::MakeMaker' => '6.46',
+ 'Fcntl' => '0',
+ 'File::Basename' => '0',
+ 'File::Spec' => '3.27',
+ 'File::Temp' => '0.20',
+ 'Module::Build' => '0.30',
+ 'Probe::Perl' => '0.01',
+ 'Term::Title' => '0.01',
+ 'Test::Reporter' => '1.58',
+ 'perl' => '5.006',
+ 'strict' => '0',
+ 'warnings' => '0'
+ }
+ },
+ 'test' => {
+ 'recommends' => {
+ 'CPAN::Meta' => '0',
+ 'CPAN::Meta::Requirements' => '2.120900'
+ },
+ 'requires' => {
+ 'CPAN::Checksums' => '0',
+ 'Cwd' => '3.27',
+ 'ExtUtils::MakeMaker' => '6.46',
+ 'File::Find' => '0',
+ 'File::Path' => '0',
+ 'File::Spec::Functions' => '0',
+ 'IO::CaptureOutput' => '1.06',
+ 'IO::File' => '0',
+ 'List::Util' => '0',
+ 'Test::More' => '0.62',
+ 'vars' => '0',
+ 'version' => '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);
+}
+
+
+# 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);
+ }
+ }
+}
+else {
+ $source = 'static metadata';
+}
+
+my @modules = sort grep { ! $exclude{$_} } keys %include;
+my @reports = [qw/Version Module/];
+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'";
+ }
+ }
+ }
+
+ }
+ else {
+ push @reports, ["missing", $mod];
+
+ 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 ( @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 ( @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"
+ );
+}
+
+pass;
+
+# vim: ts=4 sts=4 sw=4 et:
@@ -1,402 +1,13 @@
-NAME
- CPAN::Reporter::Smoker - Turnkey CPAN Testers smoking
+#--------------------------------------------------------------------------#
+README for find-ls
+#--------------------------------------------------------------------------#
-VERSION
- version 0.24
+- generated from 'find . -ls > find-ls'
+ - any leading ./ stripped
+ - dates converted to YYYYMMDD.dddddd timestamp if needed
-SYNOPSIS
- $ perl -MCPAN::Reporter::Smoker -e start
-
-DESCRIPTION
- Rudimentary smoke tester for CPAN Testers, built upon CPAN::Reporter.
- Use at your own risk. It requires a recent version of CPAN::Reporter to
- run.
-
- Currently, CPAN::Reporter::Smoker requires zero independent
- configuration; instead it uses configuration settings from CPAN.pm and
- CPAN::Reporter.
-
- Once started, it retrieves a list of distributions from the configured
- CPAN mirror and begins testing them in reverse order of upload. It will
- skip any distribution which has already had a report sent by
- CPAN::Reporter.
-
- Features (or bugs, depending on your point of view):
-
- * No configuration needed
-
- * Tests each distribution as a separate CPAN process -- each
- distribution has prerequisites like build_requires satisfied from
- scratch
-
- * Automatically checks for new distributions every twelve hours or as
- otherwise specified
-
- * Continues until interrupted with CTRL-C
-
- * Checks CPAN.pm "distroprefs" to see if distributions should be
- skipped (before handing off to CPAN)
-
- Current limitations:
-
- * Does not attempt to retest distributions that had reports discarded
- because of prerequisites that could not be satisfied
-
- WARNING -- smoke testing is risky
- Smoke testing will download and run programs that other people have
- uploaded to CPAN. These programs could do anything to your system,
- including deleting everything on it. Do not run CPAN::Reporter::Smoker
- unless you are prepared to take these risks.
-
-USAGE
- "start()"
- Starts smoke testing using defaults already in CPAN::Config and
- CPAN::Reporter's .cpanreporter directory. Runs until all distributions
- are tested or the process is halted with CTRL-C or otherwise killed.
-
- "start()" supports several optional arguments:
-
- * "clean_cache_after" -- number of distributions that will be tested
- before checking to see if the CPAN build cache needs to be cleaned
- up (not including any prerequisites tested). Must be a positive
- integer. Defaults to 100
-
- * "list" -- if provided, this list of distributions will be tested
- instead of all of CPAN. May be a reference to an array of
- distribution names or may be a filename containing one distribution
- name per line. Distribution names must be of the form
- 'AUTHOR/Dist-Name-0.00.tar.gz'
-
- * "restart_delay" -- number of seconds that must elapse before
- restarting smoke testing. This will reload indices to search for new
- distributions and restart testing from the most recent distribution.
- Must be a positive integer; Defaults to 43200 seconds (12 hours)
-
- * "set_term_title" -- toggle for whether the terminal titlebar will be
- updated with the distribution being smoke tested and the starting
- time of the test. Helps determine if a test is hung and which
- distribution might be responsible. Valid values are 0 or 1. Defaults
- to 1
-
- * "status_file" -- during testing, the name of the distribution under
- test and a timestamp are written to this file. The file is removed
- after the test is complete. This helps identify a problem
- distribution if testing hangs or crashes the computer. If the
- argument includes a path, all directories to the file must exist.
- Defaults to "smoker-status-$$.txt" in File::Spec->tmpdir.
-
- * "install" -- toggle for whether the distribution should be installed
- after successful testing. Can be useful to avoid prerequisite
- re-building and growing PERL5LIB for the cost of disk space used for
- installed modules. Valid values are 0 or 1. Defaults to 0
-
- * "reverse" -- toggle the order in which releases are tested. When set
- to 1, testing starts from the older release not the most recent one
- (or the last distribution if --list is provided). Valid values are 0
- or 1. Defaults to 0
-
- * "force_trust" -- toggle whether to override CPAN's
- "trust_test_report_history" option. When set to 1,
- "trust_test_report_history" is set to 1. When set to 0,
- "trust_test_report_history" is left alone and whatever the user has
- configured for their CPAN client is used. Valid values are 0 or 1.
- Defaults to 0
-
-HINTS
- Selection of distributions to test
- Only the most recently uploaded developer and normal releases will be
- tested, and only if the developer release is newer than the regular
- release indexed by PAUSE.
-
- For example, if Foo-Bar-0.01, Foo-Bar-0.02, Foo-Bar-0.03_01 and
- Foo-Bar-0.03_02 are on CPAN, only Foo-Bar-0.02 and Foo-Bar-0.03_02 will
- be tested, and in reverse order of when they were uploaded. Once
- Foo-Bar-0.04 is released and indexed, Foo-Bar-0.03_02 will not longer be
- tested.
-
- To avoid testing script or other tarballs, developer distributions
- included must have a base distribution name that resembles a
- distribution tarball already indexed by PAUSE. If the first upload of
- distribution to PAUSE is a developer release -- Baz-Bam-0.00_01.tar.gz
- -- it will not be tested as there is no indexed Baz-Bam appearing in
- CPAN's 02packages.details.txt file.
-
- Unauthorized tarballs are treated like developer releases and will be
- tested if they resemble an indexed distribution and are newer than the
- indexed tarball.
-
- Perl, parrot, kurila, Pugs and similar distributions will not be tested.
- The skip list is based on CPAN::Mini and matches as follows:
-
- qr{(?:
- /(?:emb|syb|bio)?perl-\d
- | /(?:parrot|ponie|kurila|Perl6-Pugs)-\d
- | /perl-?5\.004
- | /perl_mlb\.zip
- )}xi,
-
- Bundles and mod_perl distributions will also not be tested, though
- mod_perl is likely to be requested as a dependency by many modules. See
- the next section for how to tell CPAN.pm not to test certain
- dependencies.
-
- Skipping additional distributions
- If certain distributions hang, crash or otherwise cause trouble, you can
- use CPAN's "distroprefs" system to disable them. If a distribution is
- disabled, it won't be built or tested. If a distribution's dependency is
- disabled, a failing test is just discarded.
-
- The first step is configuring a directory for distroprefs files:
-
- $ cpan
- cpan> o conf init prefs_dir
- cpan> o conf commit
-
- Next, ensure that either the YAML or YAML::Syck module is installed.
- (YAML::Syck is faster). Then create a file in the "prefs_dir" directory
- to hold the list of distributions to disable, e.g. call it
- "disabled.yml"
-
- In that file, you can add blocks of YAML code to disable distributions.
- The match criteria "distribution" is a regex that matches against the
- canonical name of a distribution, e.g. "AUTHOR/Foo-Bar-3.14.tar.gz".
-
- Here is a sample file to show you some syntax (don't actually use these,
- though):
-
- ---
- comment: "Tests take too long"
- match:
- distribution: "^DAGOLDEN/CPAN-Reporter-\d"
- disabled: 1
- ---
- comment: "Skip Win32 distributions"
- match:
- distribution: "/Win32"
- disabled: 1
- ---
- comment: "Skip distributions by Andy Lester"
- match:
- distribution: "^PETDANCE"
- disabled: 1
-
- Please note that disabling distributions like this will also disable
- them for normal, non-smoke usage of CPAN.pm.
-
- One distribution that I would recommend either installing up front or
- else disabling with distroprefs is mod_perl, as it is a common
- requirement for many Apache:: modules but does not (easily) build and
- test under automation.
-
- ---
- comment: "Don't build mod_perl if required by some other module"
- match:
- distribution: "/mod_perl-\d"
- disabled: 1
-
- Distroprefs are more powerful than this -- they can be used to automate
- responses to prompts in distributions, set environment variables,
- specify additional dependencies and so on. Read the docs for CPAN.pm for
- more and look in the "distroprefs" directory in the CPAN distribution
- tarball for examples.
-
- Using a local CPAN::Mini mirror
- Because distributions must be retrieved from a CPAN mirror, the smoker
- may cause heavy network load and will reptitively download common build
- prerequisites.
-
- An alternative is to use CPAN::Mini to create a local CPAN mirror and to
- point CPAN's "urllist" to the local mirror.
-
- $ cpan
- cpan> o conf urllist unshift file:///path/to/minicpan
- cpan> o conf commit
-
- However, CPAN::Reporter::Smoker needs the "find-ls.gz" file, which
- CPAN::Mini does not mirror by default. Add it to a .minicpanrc file in
- your home directory to include it in your local CPAN mirror.
-
- also_mirror: indices/find-ls.gz
-
- Note that CPAN::Mini does not mirror developer versions. Therefore, a
- live, network CPAN Mirror will be needed in the urllist to retrieve
- these.
-
- Note that CPAN requires the LWP module to be installed to use a local
- CPAN mirror.
-
- Alternatively, you might experiment with the alpha-quality release of
- CPAN::Mini::Devel, which subclasses CPAN::Mini to retrieve developer
- distributions (and find-ls.gz) using the same logic as
- CPAN::Reporter::Smoker.
-
- Timing out hanging tests
- CPAN::Reporter (since 1.08) supports a 'command_timeout' configuration
- option. Set this option in the CPAN::Reporter configuration file to time
- out tests that hang up or get stuck at a prompt. Set it to a high-value
- to avoid timing out a lengthy tests that are still running -- 1000 or
- more seconds is probably enough.
-
- Warning -- on Win32, terminating processes via the command_timeout is
- equivalent to SIGKILL and could cause system instability or later
- deadlocks
-
- This option is still considered experimental.
-
- Avoiding repetitive prerequisite testing
- Because CPAN::Reporter::Smoker satisfies all requirements from scratch,
- common dependencies (e.g. Class::Accessor) will be unpacked, built and
- tested repeatedly.
-
- As of version 1.92_56, CPAN supports the "trust_test_report_history"
- config option. When set, CPAN will check the last test report for a
- distribution. If one is found, the results of that test are used instead
- of running tests again.
-
- $ cpan
- cpan> o conf init trust_test_report_history
- cpan> o conf commit
-
- Avoiding repetitive prerequisite builds (EXPERIMENTAL)
- CPAN has a "build_dir_reuse" config option. When set (and if a YAML
- module is installed and configured), CPAN will attempt to make build
- directories persistent. This has the potential to save substantial time
- and space during smoke testing. CPAN::Reporter::Smoker will recognize if
- this option is set and make adjustments to the test process to keep
- PERL5LIB from growing uncontrollably as the number of persistent
- directories increases.
-
- NOTE: Support for "build_dir_reuse" is highly experimental. Wait for at
- least CPAN version 1.92_62 before trying this option.
-
- $ cpan
- cpan> o conf init build_dir_reuse
- cpan> o conf commit
-
- Stopping early if a prerequisite fails
- Normally, CPAN.pm continues testing a distribution even if a prequisite
- fails to build or fails testing. Some distributions may pass their tests
- even without a listed prerequisite, but most just fail (and
- CPAN::Reporter discards failures if prerequisites are not met).
-
- As of version 1.92_57, CPAN supports the "halt_on_failure" config
- option. When set, a prerequisite failure stops further processing.
-
- $ cpan
- cpan> o conf init halt_on_failure
- cpan> o conf commit
-
- However, a disadvantage of halting early is that no DISCARD grade is
- recorded in the history. The next time CPAN::Reporter::Smoker runs, the
- distribution will be tested again from scratch. It may be better to let
- all prerequisites finish so the distribution can fail its test and be
- flagged with DISCARD so it will be skipped in the future.
-
- CPAN cache bloat
- CPAN will use a lot of scratch space to download, build and test
- modules. Use CPAN's built-in cache management configuration to let it
- purge the cache periodically if you don't want to do this manually. When
- configured, the cache will be purged on start and after a certain number
- of distributions have been tested as determined by the
- "clean_cache_after" option for the "start()" function.
-
- $ cpan
- cpan> o conf init build_cache scan_cache
- cpan> o conf commit
-
- CPAN verbosity
- Recent versions of CPAN are verbose by default, but include some lesser
- known configuration settings to minimize this for untarring
- distributions and for loading support modules. Setting the verbosity for
- these to 'none' will minimize some of the clutter to the screen as
- distributions are tested.
-
- $ cpan
- cpan> o conf init /verbosity/
- cpan> o conf commit
-
- Saving reports to files instead of sending directly
- In some cases, such as when smoke testing using a development or
- prerelease toolchain module like Test-Harness, it may be prefereable to
- save reports to files in a directory for review prior to submitting
- them. To do this, manually set the "transport" option in your
- CPAN::Reporter config file to use the Test::Reporter::Transport::File
- transport.
-
- transport=File /path/to/directory
-
- After review, send saved reports using Test::Reporter:
-
- Test::Reporter->new()->read($filename)->send()
-
-ENVIRONMENT
- Automatically sets the following environment variables to true values
- while running:
-
- * "AUTOMATED_TESTING" -- signal that tests are being run by an
- automated smoke testing program (i.e. don't expect interactivity)
-
- * "PERL_MM_USE_DEFAULT" -- accept ExtUtils::MakeMaker prompt()
- defaults
-
- * "PERL_EXTUTILS_AUTOINSTALL" -- set to '--defaultdeps' for default
- dependencies
-
- The following environment variables, if set, will modify the behavior of
- CPAN::Reporter::Smoker. Generally, they are only required during the
- testing of CPAN::Reporter::Smoker
-
- * "PERL_CR_SMOKER_RUNONCE" -- if true, "start()" will exit after all
- distributions are tested instead of sleeping for the "restart_delay"
- and then continuing
-
- * "PERL_CR_SMOKER_SHORTCUT" -- if true, "start()" will process
- arguments (if any) but will return before starting smoke testing;
- used for testing argument handling by "start()"
-
-BUGS
- 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-Smoker>
-
- When submitting a bug or request, please include a test-file or a patch
- to an existing test-file that illustrates the bug or desired feature.
-
-SEE ALSO
- * CPAN
-
- * CPAN::Reporter
-
- * CPAN::Testers
-
- * CPAN::Mini
-
- * CPAN::Mini::Devel
-
-SUPPORT
- Bugs / Feature Requests
- Please report any bugs or feature requests by email to
- "bug-cpan-reporter-smoker at rt.cpan.org", or through the web interface
- at
- <http://rt.cpan.org/Public/Dist/Display.html?Name=CPAN-Reporter-Smoker>.
- You will be automatically notified of any progress on the request by the
- system.
-
- Source Code
- This is open source software. The code repository is available for
- public review and contribution under the terms of the license.
-
- <http://github.com/dagolden/cpan-reporter-smoker>
-
- git clone http://github.com/dagolden/cpan-reporter-smoker
-
-AUTHOR
- David Golden <dagolden@cpan.org>
-
-COPYRIGHT AND LICENSE
- This software is Copyright (c) 2011 by David Golden.
-
- This is free software, licensed under:
-
- The Apache License, Version 2.0, January 2004
+- timestamps for modules adjusted so that alphabetically earlier
+ Author/DistName-version strings have a later timestamp (as they will
+ be tested first)
+- resulting file to be compresses with gzip
@@ -0,0 +1,53 @@
+use 5.006;
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.039
+
+use Test::More tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
+
+
+
+my @module_files = (
+ 'CPAN/Reporter/Smoker.pm'
+);
+
+
+
+# fake home for cpan-testers
+use File::Temp;
+local $ENV{HOME} = File::Temp::tempdir( CLEANUP => 1 );
+
+
+my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib';
+
+use File::Spec;
+use IPC::Open3;
+use IO::Handle;
+
+open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
+
+my @warnings;
+for my $lib (@module_files)
+{
+ # see L<perlfaq8/How can I capture STDERR from an external command?>
+ my $stderr = IO::Handle->new;
+
+ my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]");
+ binmode $stderr, ':crlf' if $^O eq 'MSWin32';
+ my @_warnings = <$stderr>;
+ waitpid($pid, 0);
+ is($?, 0, "$lib loaded ok");
+
+ if (@_warnings)
+ {
+ warn @_warnings;
+ push @warnings, @_warnings;
+ }
+}
+
+
+
+is(scalar(@warnings), 0, 'no warnings found') if $ENV{AUTHOR_TESTING};
+
+
@@ -0,0 +1,12 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More;
+use English qw(-no_match_vars);
+
+eval "use Test::Perl::Critic";
+plan skip_all => 'Test::Perl::Critic required to criticise code' if $@;
+Test::Perl::Critic->import( -profile => "perlcritic.rc" ) if -e "perlcritic.rc";
+all_critic_ok();
@@ -0,0 +1,40 @@
+use strict;
+use warnings;
+use Test::More;
+
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006007
+use Test::Spelling 0.12;
+use Pod::Wordlist;
+
+
+add_stopwords(<DATA>);
+all_pod_files_spelling_ok( qw( bin lib ) );
+__DATA__
+unindexed
+Bam
+Baz
+CTRL
+Distroprefs
+SIGKILL
+cpanreporter
+defaultdeps
+distroprefs
+kurila
+minicpanrc
+prerelease
+titlebar
+untarring
+urllist
+David
+Golden
+dagolden
+Alexandr
+Ciornii
+alexchorny
+Christian
+Walde
+walde
+lib
+CPAN
+Reporter
+Smoker
@@ -1,7 +1,6 @@
#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::MetaTests.
-use Test::More;
+use Test::CPAN::Meta;
-eval "use Test::CPAN::Meta";
-plan skip_all => "Test::CPAN::Meta required for testing META.yml" if $@;
meta_yaml_ok();
@@ -0,0 +1,8 @@
+#!perl
+
+use Test::More;
+
+eval "use Test::MinimumVersion";
+plan skip_all => "Test::MinimumVersion required for testing minimum versions"
+ if $@;
+all_minimum_version_ok( qq{5.010} );
@@ -1,13 +1,7 @@
#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.08";
-plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage"
- if $@;
-
-eval "use Pod::Coverage::TrustPod";
-plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage"
- if $@;
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
@@ -1,7 +1,6 @@
#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+use Test::Pod 1.41;
all_pod_files_ok();
@@ -0,0 +1,12 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More;
+
+eval 'use Test::Portability::Files';
+plan skip_all => 'Test::Portability::Files required for testing portability'
+ if $@;
+options(test_one_dot => 0);
+run_tests();
@@ -1,12 +1,22 @@
-#!/usr/bin/perl
-use 5.006;
use strict;
use warnings;
use Test::More;
-eval "use Test::Version 0.04";
-plan skip_all => "Test::Version 0.04 required for testing versions"
- if $@;
+# generated by Dist::Zilla::Plugin::Test::Version 0.002004
+BEGIN { eval "use Test::Version; 1;" or die $@; }
-version_all_ok();
+my @imports = ( 'version_all_ok' );
+
+my $params = {
+ is_strict => 0,
+ has_version => 1,
+};
+
+push @imports, $params
+ if version->parse( $Test::Version::VERSION ) >= version->parse('1.002');
+
+
+Test::Version->import(@imports);
+
+version_all_ok;
done_testing;