The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Changes 010
LICENSE 11
MANIFEST 13
META.json 55274
META.yml 77241
Makefile.PL 611
README 13
bin/scan-perl-prereqs 1231
bin/scan_prereqs 615
lib/Perl/PrereqScanner/Scanner/Aliased.pm 514
lib/Perl/PrereqScanner/Scanner/Moose.pm 517
lib/Perl/PrereqScanner/Scanner/POE.pm 511
lib/Perl/PrereqScanner/Scanner/Perl5.pm 534
lib/Perl/PrereqScanner/Scanner/Superclass.pm 511
lib/Perl/PrereqScanner/Scanner/TestMore.pm 713
lib/Perl/PrereqScanner/Scanner.pm 518
lib/Perl/PrereqScanner.pm 8105
t/00-report-prereqs.dd 051
t/00-report-prereqs.t 0176
t/000-report-versions-tiny.t 930
t/autoprereq.t 01
t/scan-module.t 11
xt/release/changes_has_content.t 11
xt/release/pod-syntax.t 32
24 files changed (This is a version diff) 3021044
@@ -1,5 +1,15 @@
 Revision history for Perl-PrereqScanner
 
+1.021     2014-11-06 21:08:49-05:00 America/New_York
+  - instead of always trying to use lib, add a -I switch to scan-perl-prereqs
+  - when finding files to scan, find files, not anything else
+
+1.020     2014-07-02 18:52:33-04:00 America/New_York
+  - update CPAN::Meta::Requirements version to match current formatting
+
+1.019     2014-01-07 19:37:41-05:00 America/New_York
+  - add a warning about PPI's unclear interpretation of strings
+
 1.018     2013-11-03 21:53:46 America/New_York
   - make the scan-perl-prereqs program also scan .PL and .cgi files
   - also check for "Foo->VERSION(x)" after "require Foo"
@@ -22,7 +22,7 @@ This is free software, licensed under:
                      Version 1, February 1989
 
  Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA  02110-1335  USA
+ 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
@@ -1,3 +1,4 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.024.
 Changes
 LICENSE
 MANIFEST
@@ -18,7 +19,8 @@ lib/Perl/PrereqScanner/Scanner/POE.pm
 lib/Perl/PrereqScanner/Scanner/Perl5.pm
 lib/Perl/PrereqScanner/Scanner/Superclass.pm
 lib/Perl/PrereqScanner/Scanner/TestMore.pm
-t/000-report-versions-tiny.t
+t/00-report-prereqs.dd
+t/00-report-prereqs.t
 t/autoprereq.t
 t/scan-module.t
 t/scan-prereqs.t
@@ -5,7 +5,7 @@
       "Ricardo Signes <rjbs@cpan.org>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 5.005, CPAN::Meta::Converter version 2.132830",
+   "generated_by" : "Dist::Zilla version 5.024, CPAN::Meta::Converter version 2.142690",
    "license" : [
       "perl_5"
    ],
@@ -17,18 +17,17 @@
    "prereqs" : {
       "configure" : {
          "requires" : {
-            "ExtUtils::MakeMaker" : "6.30"
+            "ExtUtils::MakeMaker" : "0"
          }
       },
       "develop" : {
          "requires" : {
-            "Test::Pod" : "1.41",
-            "version" : "0.9901"
+            "Test::Pod" : "1.41"
          }
       },
       "runtime" : {
          "requires" : {
-            "CPAN::Meta::Requirements" : "2.120630",
+            "CPAN::Meta::Requirements" : "2.124",
             "File::Find" : "0",
             "File::Spec::Functions" : "0",
             "FindBin" : "0",
@@ -51,7 +50,12 @@
          }
       },
       "test" : {
+         "recommends" : {
+            "CPAN::Meta" : "2.120900"
+         },
          "requires" : {
+            "ExtUtils::MakeMaker" : "0",
+            "File::Spec" : "0",
             "File::Temp" : "0",
             "PPI::Document" : "0",
             "Test::More" : "0.96",
@@ -72,146 +76,198 @@
       },
       "x_MailingList" : "http://www.listbox.com/subscribe/?list_id=139292"
    },
-   "version" : "1.018",
+   "version" : "1.021",
    "x_Dist_Zilla" : {
       "perl" : {
-         "version" : "5.019005"
+         "version" : "5.021005"
       },
       "plugins" : [
          {
             "class" : "Dist::Zilla::Plugin::MetaResources",
             "name" : "MetaResources",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::GatherDir",
+            "config" : {
+               "Dist::Zilla::Plugin::GatherDir" : {
+                  "exclude_filename" : [],
+                  "exclude_match" : [],
+                  "follow_symlinks" : "0",
+                  "include_dotfiles" : "0",
+                  "prefix" : "",
+                  "prune_directory" : [],
+                  "root" : "."
+               },
+               "Dist::Zilla::Plugin::Git::GatherDir" : {
+                  "include_untracked" : "0"
+               },
+               "Dist::Zilla::Role::Git::Repo" : {
+                  "repo_root" : "."
+               }
+            },
             "name" : "@RJBS/Git::GatherDir",
-            "version" : "2.017"
+            "version" : "2.025"
          },
          {
             "class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
             "name" : "@RJBS/CheckPrereqsIndexed",
-            "version" : "0.009"
+            "version" : "0.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::CheckExtraTests",
             "name" : "@RJBS/CheckExtraTests",
-            "version" : "0.015"
+            "version" : "0.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::PromptIfStale",
+            "config" : {
+               "Dist::Zilla::Plugin::PromptIfStale" : {
+                  "check_all_plugins" : 0,
+                  "check_all_prereqs" : 0,
+                  "modules" : [
+                     "Dist::Zilla::PluginBundle::RJBS"
+                  ],
+                  "phase" : "build",
+                  "skip" : []
+               }
+            },
             "name" : "@RJBS/RJBS-Outdated",
-            "version" : "0.009"
+            "version" : "0.028"
          },
          {
             "class" : "Dist::Zilla::Plugin::PromptIfStale",
+            "config" : {
+               "Dist::Zilla::Plugin::PromptIfStale" : {
+                  "check_all_plugins" : "1",
+                  "check_all_prereqs" : 0,
+                  "modules" : [],
+                  "phase" : "release",
+                  "skip" : []
+               }
+            },
             "name" : "@RJBS/CPAN-Outdated",
-            "version" : "0.009"
+            "version" : "0.028"
          },
          {
             "class" : "Dist::Zilla::Plugin::PruneCruft",
             "name" : "@RJBS/@Filter/PruneCruft",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::ManifestSkip",
             "name" : "@RJBS/@Filter/ManifestSkip",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaYAML",
             "name" : "@RJBS/@Filter/MetaYAML",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::License",
             "name" : "@RJBS/@Filter/License",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::Readme",
             "name" : "@RJBS/@Filter/Readme",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::ExecDir",
             "name" : "@RJBS/@Filter/ExecDir",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::ShareDir",
             "name" : "@RJBS/@Filter/ShareDir",
-            "version" : "5.005"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::MakeMaker",
-            "name" : "@RJBS/@Filter/MakeMaker",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::Manifest",
             "name" : "@RJBS/@Filter/Manifest",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::TestRelease",
             "name" : "@RJBS/@Filter/TestRelease",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::ConfirmRelease",
             "name" : "@RJBS/@Filter/ConfirmRelease",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::UploadToCPAN",
             "name" : "@RJBS/@Filter/UploadToCPAN",
-            "version" : "5.005"
+            "version" : "5.024"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::MakeMaker",
+            "config" : {
+               "Dist::Zilla::Role::TestRunner" : {
+                  "default_jobs" : 9
+               }
+            },
+            "name" : "@RJBS/MakeMaker",
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::AutoPrereqs",
             "name" : "@RJBS/AutoPrereqs",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::NextVersion",
+            "config" : {
+               "Dist::Zilla::Plugin::Git::NextVersion" : {
+                  "first_version" : "0.001",
+                  "version_by_branch" : "0",
+                  "version_regexp" : "(?^:^([0-9]+\\.[0-9]+)$)"
+               },
+               "Dist::Zilla::Role::Git::Repo" : {
+                  "repo_root" : "."
+               }
+            },
             "name" : "@RJBS/Git::NextVersion",
-            "version" : "2.017"
+            "version" : "2.025"
          },
          {
             "class" : "Dist::Zilla::Plugin::PkgVersion",
             "name" : "@RJBS/PkgVersion",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaConfig",
             "name" : "@RJBS/MetaConfig",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaJSON",
             "name" : "@RJBS/MetaJSON",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::NextRelease",
             "name" : "@RJBS/NextRelease",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::ChangesHasContent",
             "name" : "@RJBS/Test::ChangesHasContent",
-            "version" : "0.006"
+            "version" : "0.007"
          },
          {
             "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
             "name" : "@RJBS/PodSyntaxTests",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
-            "class" : "Dist::Zilla::Plugin::ReportVersions::Tiny",
-            "name" : "@RJBS/ReportVersions::Tiny",
-            "version" : "1.10"
+            "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs",
+            "name" : "@RJBS/Test::ReportPrereqs",
+            "version" : "0.019"
          },
          {
             "class" : "Dist::Zilla::Plugin::Prereqs",
@@ -222,76 +278,239 @@
                }
             },
             "name" : "@RJBS/TestMoreWithSubtests",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::PodWeaver",
             "config" : {
                "Dist::Zilla::Plugin::PodWeaver" : {
-                  "config_plugin" : "@RJBS",
+                  "config_plugins" : [
+                     "@RJBS"
+                  ],
                   "finder" : [
                      ":InstallModules",
                      ":ExecFiles"
+                  ],
+                  "plugins" : [
+                     {
+                        "class" : "Pod::Weaver::Plugin::EnsurePod5",
+                        "name" : "@CorePrep/EnsurePod5",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Plugin::H1Nester",
+                        "name" : "@CorePrep/H1Nester",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Plugin::SingleEncoding",
+                        "name" : "@RJBS/SingleEncoding",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Name",
+                        "name" : "@RJBS/Name",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Version",
+                        "name" : "@RJBS/Version",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Region",
+                        "name" : "@RJBS/Prelude",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Generic",
+                        "name" : "@RJBS/Synopsis",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Generic",
+                        "name" : "@RJBS/Description",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Generic",
+                        "name" : "@RJBS/Overview",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Generic",
+                        "name" : "@RJBS/Stability",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Collect",
+                        "name" : "Attributes",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Collect",
+                        "name" : "Methods",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Collect",
+                        "name" : "Functions",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Leftovers",
+                        "name" : "@RJBS/Leftovers",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Region",
+                        "name" : "@RJBS/postlude",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Authors",
+                        "name" : "@RJBS/Authors",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Legal",
+                        "name" : "@RJBS/Legal",
+                        "version" : "4.007"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Plugin::Transformer",
+                        "name" : "@RJBS/List",
+                        "version" : "4.007"
+                     }
                   ]
                }
             },
             "name" : "@RJBS/PodWeaver",
-            "version" : "4.001"
+            "version" : "4.006"
          },
          {
             "class" : "Dist::Zilla::Plugin::GithubMeta",
             "name" : "@RJBS/GithubMeta",
-            "version" : "0.42"
+            "version" : "0.46"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Check",
+            "config" : {
+               "Dist::Zilla::Plugin::Git::Check" : {
+                  "untracked_files" : "die"
+               },
+               "Dist::Zilla::Role::Git::DirtyFiles" : {
+                  "allow_dirty" : [
+                     "dist.ini",
+                     "Changes"
+                  ],
+                  "allow_dirty_match" : [],
+                  "changelog" : "Changes"
+               },
+               "Dist::Zilla::Role::Git::Repo" : {
+                  "repo_root" : "."
+               }
+            },
             "name" : "@RJBS/@Git/Check",
-            "version" : "2.017"
+            "version" : "2.025"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Commit",
+            "config" : {
+               "Dist::Zilla::Plugin::Git::Commit" : {
+                  "add_files_in" : [],
+                  "commit_msg" : "v%v%n%n%c",
+                  "time_zone" : "local"
+               },
+               "Dist::Zilla::Role::Git::DirtyFiles" : {
+                  "allow_dirty" : [
+                     "dist.ini",
+                     "Changes"
+                  ],
+                  "allow_dirty_match" : [],
+                  "changelog" : "Changes"
+               },
+               "Dist::Zilla::Role::Git::Repo" : {
+                  "repo_root" : "."
+               }
+            },
             "name" : "@RJBS/@Git/Commit",
-            "version" : "2.017"
+            "version" : "2.025"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Tag",
+            "config" : {
+               "Dist::Zilla::Plugin::Git::Tag" : {
+                  "branch" : null,
+                  "signed" : 0,
+                  "tag" : "1.021",
+                  "tag_format" : "%v",
+                  "tag_message" : "v%v",
+                  "time_zone" : "local"
+               },
+               "Dist::Zilla::Role::Git::Repo" : {
+                  "repo_root" : "."
+               }
+            },
             "name" : "@RJBS/@Git/Tag",
-            "version" : "2.017"
+            "version" : "2.025"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Push",
+            "config" : {
+               "Dist::Zilla::Plugin::Git::Push" : {
+                  "push_to" : [
+                     "origin :",
+                     "github :"
+                  ],
+                  "remotes_must_exist" : 0
+               },
+               "Dist::Zilla::Role::Git::Repo" : {
+                  "repo_root" : "."
+               }
+            },
             "name" : "@RJBS/@Git/Push",
-            "version" : "2.017"
+            "version" : "2.025"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":InstallModules",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":IncModules",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":TestFiles",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ExecFiles",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ShareFiles",
-            "version" : "5.005"
+            "version" : "5.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":MainModule",
-            "version" : "5.005"
+            "version" : "5.024"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::FinderCode",
+            "name" : ":AllFiles",
+            "version" : "5.024"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::FinderCode",
+            "name" : ":NoFiles",
+            "version" : "5.024"
          }
       ],
       "zilla" : {
@@ -299,7 +518,7 @@
          "config" : {
             "is_trial" : "0"
          },
-         "version" : "5.005"
+         "version" : "5.024"
       }
    }
 }
@@ -4,158 +4,198 @@ author:
   - 'Jerome Quelin'
   - 'Ricardo Signes <rjbs@cpan.org>'
 build_requires:
-  File::Temp: 0
-  PPI::Document: 0
-  Test::More: 0.96
-  Try::Tiny: 0
+  ExtUtils::MakeMaker: '0'
+  File::Spec: '0'
+  File::Temp: '0'
+  PPI::Document: '0'
+  Test::More: '0.96'
+  Try::Tiny: '0'
 configure_requires:
-  ExtUtils::MakeMaker: 6.30
+  ExtUtils::MakeMaker: '0'
 dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.005, CPAN::Meta::Converter version 2.132830'
+generated_by: 'Dist::Zilla version 5.024, CPAN::Meta::Converter version 2.142690'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: 1.4
+  version: '1.4'
 name: Perl-PrereqScanner
 requires:
-  CPAN::Meta::Requirements: 2.120630
-  File::Find: 0
-  File::Spec::Functions: 0
-  FindBin: 0
-  Getopt::Long: 0
-  Getopt::Long::Descriptive: 0
-  List::MoreUtils: 0
-  List::Util: 0
-  Module::Path: 0
-  Moose: 0
-  Moose::Role: 0
-  PPI: 1.215
-  Params::Util: 0
-  Scalar::Util: 0
-  String::RewritePrefix: 0.005
-  lib: 0
-  namespace::autoclean: 0
-  perl: 5.008
-  strict: 0
-  warnings: 0
+  CPAN::Meta::Requirements: '2.124'
+  File::Find: '0'
+  File::Spec::Functions: '0'
+  FindBin: '0'
+  Getopt::Long: '0'
+  Getopt::Long::Descriptive: '0'
+  List::MoreUtils: '0'
+  List::Util: '0'
+  Module::Path: '0'
+  Moose: '0'
+  Moose::Role: '0'
+  PPI: '1.215'
+  Params::Util: '0'
+  Scalar::Util: '0'
+  String::RewritePrefix: '0.005'
+  lib: '0'
+  namespace::autoclean: '0'
+  perl: '5.008'
+  strict: '0'
+  warnings: '0'
 resources:
   MailingList: http://www.listbox.com/subscribe/?list_id=139292
   bugtracker: https://github.com/rjbs/Perl-PrereqScanner/issues
   homepage: https://github.com/rjbs/Perl-PrereqScanner
   repository: https://github.com/rjbs/Perl-PrereqScanner.git
-version: 1.018
+version: '1.021'
 x_Dist_Zilla:
   perl:
-    version: 5.019005
+    version: '5.021005'
   plugins:
     -
       class: Dist::Zilla::Plugin::MetaResources
       name: MetaResources
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::Git::GatherDir
+      config:
+        Dist::Zilla::Plugin::GatherDir:
+          exclude_filename: []
+          exclude_match: []
+          follow_symlinks: '0'
+          include_dotfiles: '0'
+          prefix: ''
+          prune_directory: []
+          root: .
+        Dist::Zilla::Plugin::Git::GatherDir:
+          include_untracked: '0'
+        Dist::Zilla::Role::Git::Repo:
+          repo_root: .
       name: '@RJBS/Git::GatherDir'
-      version: 2.017
+      version: '2.025'
     -
       class: Dist::Zilla::Plugin::CheckPrereqsIndexed
       name: '@RJBS/CheckPrereqsIndexed'
-      version: 0.009
+      version: '0.012'
     -
       class: Dist::Zilla::Plugin::CheckExtraTests
       name: '@RJBS/CheckExtraTests'
-      version: 0.015
+      version: '0.024'
     -
       class: Dist::Zilla::Plugin::PromptIfStale
+      config:
+        Dist::Zilla::Plugin::PromptIfStale:
+          check_all_plugins: 0
+          check_all_prereqs: 0
+          modules:
+            - Dist::Zilla::PluginBundle::RJBS
+          phase: build
+          skip: []
       name: '@RJBS/RJBS-Outdated'
-      version: 0.009
+      version: '0.028'
     -
       class: Dist::Zilla::Plugin::PromptIfStale
+      config:
+        Dist::Zilla::Plugin::PromptIfStale:
+          check_all_plugins: '1'
+          check_all_prereqs: 0
+          modules: []
+          phase: release
+          skip: []
       name: '@RJBS/CPAN-Outdated'
-      version: 0.009
+      version: '0.028'
     -
       class: Dist::Zilla::Plugin::PruneCruft
       name: '@RJBS/@Filter/PruneCruft'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::ManifestSkip
       name: '@RJBS/@Filter/ManifestSkip'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::MetaYAML
       name: '@RJBS/@Filter/MetaYAML'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::License
       name: '@RJBS/@Filter/License'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::Readme
       name: '@RJBS/@Filter/Readme'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::ExecDir
       name: '@RJBS/@Filter/ExecDir'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::ShareDir
       name: '@RJBS/@Filter/ShareDir'
-      version: 5.005
-    -
-      class: Dist::Zilla::Plugin::MakeMaker
-      name: '@RJBS/@Filter/MakeMaker'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::Manifest
       name: '@RJBS/@Filter/Manifest'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::TestRelease
       name: '@RJBS/@Filter/TestRelease'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::ConfirmRelease
       name: '@RJBS/@Filter/ConfirmRelease'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::UploadToCPAN
       name: '@RJBS/@Filter/UploadToCPAN'
-      version: 5.005
+      version: '5.024'
+    -
+      class: Dist::Zilla::Plugin::MakeMaker
+      config:
+        Dist::Zilla::Role::TestRunner:
+          default_jobs: 9
+      name: '@RJBS/MakeMaker'
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::AutoPrereqs
       name: '@RJBS/AutoPrereqs'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::Git::NextVersion
+      config:
+        Dist::Zilla::Plugin::Git::NextVersion:
+          first_version: '0.001'
+          version_by_branch: '0'
+          version_regexp: (?^:^([0-9]+\.[0-9]+)$)
+        Dist::Zilla::Role::Git::Repo:
+          repo_root: .
       name: '@RJBS/Git::NextVersion'
-      version: 2.017
+      version: '2.025'
     -
       class: Dist::Zilla::Plugin::PkgVersion
       name: '@RJBS/PkgVersion'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::MetaConfig
       name: '@RJBS/MetaConfig'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::MetaJSON
       name: '@RJBS/MetaJSON'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::NextRelease
       name: '@RJBS/NextRelease'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::Test::ChangesHasContent
       name: '@RJBS/Test::ChangesHasContent'
-      version: 0.006
+      version: '0.007'
     -
       class: Dist::Zilla::Plugin::PodSyntaxTests
       name: '@RJBS/PodSyntaxTests'
-      version: 5.005
+      version: '5.024'
     -
-      class: Dist::Zilla::Plugin::ReportVersions::Tiny
-      name: '@RJBS/ReportVersions::Tiny'
-      version: 1.10
+      class: Dist::Zilla::Plugin::Test::ReportPrereqs
+      name: '@RJBS/Test::ReportPrereqs'
+      version: '0.019'
     -
       class: Dist::Zilla::Plugin::Prereqs
       config:
@@ -163,63 +203,187 @@ x_Dist_Zilla:
           phase: test
           type: requires
       name: '@RJBS/TestMoreWithSubtests'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::PodWeaver
       config:
         Dist::Zilla::Plugin::PodWeaver:
-          config_plugin: '@RJBS'
+          config_plugins:
+            - '@RJBS'
           finder:
             - ':InstallModules'
             - ':ExecFiles'
+          plugins:
+            -
+              class: Pod::Weaver::Plugin::EnsurePod5
+              name: '@CorePrep/EnsurePod5'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Plugin::H1Nester
+              name: '@CorePrep/H1Nester'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Plugin::SingleEncoding
+              name: '@RJBS/SingleEncoding'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Name
+              name: '@RJBS/Name'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Version
+              name: '@RJBS/Version'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Region
+              name: '@RJBS/Prelude'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Generic
+              name: '@RJBS/Synopsis'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Generic
+              name: '@RJBS/Description'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Generic
+              name: '@RJBS/Overview'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Generic
+              name: '@RJBS/Stability'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Collect
+              name: Attributes
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Collect
+              name: Methods
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Collect
+              name: Functions
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Leftovers
+              name: '@RJBS/Leftovers'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Region
+              name: '@RJBS/postlude'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Authors
+              name: '@RJBS/Authors'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Section::Legal
+              name: '@RJBS/Legal'
+              version: '4.007'
+            -
+              class: Pod::Weaver::Plugin::Transformer
+              name: '@RJBS/List'
+              version: '4.007'
       name: '@RJBS/PodWeaver'
-      version: 4.001
+      version: '4.006'
     -
       class: Dist::Zilla::Plugin::GithubMeta
       name: '@RJBS/GithubMeta'
-      version: 0.42
+      version: '0.46'
     -
       class: Dist::Zilla::Plugin::Git::Check
+      config:
+        Dist::Zilla::Plugin::Git::Check:
+          untracked_files: die
+        Dist::Zilla::Role::Git::DirtyFiles:
+          allow_dirty:
+            - dist.ini
+            - Changes
+          allow_dirty_match: []
+          changelog: Changes
+        Dist::Zilla::Role::Git::Repo:
+          repo_root: .
       name: '@RJBS/@Git/Check'
-      version: 2.017
+      version: '2.025'
     -
       class: Dist::Zilla::Plugin::Git::Commit
+      config:
+        Dist::Zilla::Plugin::Git::Commit:
+          add_files_in: []
+          commit_msg: v%v%n%n%c
+          time_zone: local
+        Dist::Zilla::Role::Git::DirtyFiles:
+          allow_dirty:
+            - dist.ini
+            - Changes
+          allow_dirty_match: []
+          changelog: Changes
+        Dist::Zilla::Role::Git::Repo:
+          repo_root: .
       name: '@RJBS/@Git/Commit'
-      version: 2.017
+      version: '2.025'
     -
       class: Dist::Zilla::Plugin::Git::Tag
+      config:
+        Dist::Zilla::Plugin::Git::Tag:
+          branch: ~
+          signed: 0
+          tag: '1.021'
+          tag_format: '%v'
+          tag_message: v%v
+          time_zone: local
+        Dist::Zilla::Role::Git::Repo:
+          repo_root: .
       name: '@RJBS/@Git/Tag'
-      version: 2.017
+      version: '2.025'
     -
       class: Dist::Zilla::Plugin::Git::Push
+      config:
+        Dist::Zilla::Plugin::Git::Push:
+          push_to:
+            - 'origin :'
+            - 'github :'
+          remotes_must_exist: 0
+        Dist::Zilla::Role::Git::Repo:
+          repo_root: .
       name: '@RJBS/@Git/Push'
-      version: 2.017
+      version: '2.025'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':InstallModules'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':IncModules'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':TestFiles'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ExecFiles'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ShareFiles'
-      version: 5.005
+      version: '5.024'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':MainModule'
-      version: 5.005
+      version: '5.024'
+    -
+      class: Dist::Zilla::Plugin::FinderCode
+      name: ':AllFiles'
+      version: '5.024'
+    -
+      class: Dist::Zilla::Plugin::FinderCode
+      name: ':NoFiles'
+      version: '5.024'
   zilla:
     class: Dist::Zilla::Dist::Builder
     config:
-      is_trial: 0
-    version: 5.005
+      is_trial: '0'
+    version: '5.024'
@@ -1,19 +1,19 @@
 
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.024.
 use strict;
 use warnings;
 
 use 5.008;
 
-use ExtUtils::MakeMaker 6.30;
+use ExtUtils::MakeMaker;
 
 
 
 my %WriteMakefileArgs = (
   "ABSTRACT" => "a tool to scan your Perl code for its prerequisites",
   "AUTHOR" => "Jerome Quelin, Ricardo Signes <rjbs\@cpan.org>",
-  "BUILD_REQUIRES" => {},
   "CONFIGURE_REQUIRES" => {
-    "ExtUtils::MakeMaker" => "6.30"
+    "ExtUtils::MakeMaker" => 0
   },
   "DISTNAME" => "Perl-PrereqScanner",
   "EXE_FILES" => [
@@ -21,9 +21,10 @@ my %WriteMakefileArgs = (
     "bin/scan_prereqs"
   ],
   "LICENSE" => "perl",
+  "MIN_PERL_VERSION" => "5.008",
   "NAME" => "Perl::PrereqScanner",
   "PREREQ_PM" => {
-    "CPAN::Meta::Requirements" => "2.120630",
+    "CPAN::Meta::Requirements" => "2.124",
     "File::Find" => 0,
     "File::Spec::Functions" => 0,
     "FindBin" => 0,
@@ -44,12 +45,14 @@ my %WriteMakefileArgs = (
     "warnings" => 0
   },
   "TEST_REQUIRES" => {
+    "ExtUtils::MakeMaker" => 0,
+    "File::Spec" => 0,
     "File::Temp" => 0,
     "PPI::Document" => 0,
     "Test::More" => "0.96",
     "Try::Tiny" => 0
   },
-  "VERSION" => "1.018",
+  "VERSION" => "1.021",
   "test" => {
     "TESTS" => "t/*.t"
   }
@@ -57,8 +60,10 @@ my %WriteMakefileArgs = (
 
 
 my %FallbackPrereqs = (
-  "CPAN::Meta::Requirements" => "2.120630",
+  "CPAN::Meta::Requirements" => "2.124",
+  "ExtUtils::MakeMaker" => 0,
   "File::Find" => 0,
+  "File::Spec" => 0,
   "File::Spec::Functions" => 0,
   "File::Temp" => 0,
   "FindBin" => 0,
@@ -1,7 +1,7 @@
 
 
 This archive contains the distribution Perl-PrereqScanner,
-version 1.018:
+version 1.021:
 
   a tool to scan your Perl code for its prerequisites
 
@@ -11,3 +11,5 @@ This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
 
 
+This README file was generated by Dist::Zilla::Plugin::Readme v5.024.
+
@@ -1,18 +1,13 @@
 #!/usr/bin/perl
 package Perl::PrereqScanner::App;
-{
-  $Perl::PrereqScanner::App::VERSION = '1.018';
-}
 # ABSTRACT: scan your working dir for likely prereqs
-
+$Perl::PrereqScanner::App::VERSION = '1.021';
 use strict;
 use warnings;
 
-use File::Find;
-use File::Spec::Functions qw{ catdir updir };
-use FindBin qw{ $Bin };
-use lib catdir( $Bin, updir, 'lib' );
+use lib ();
 
+use File::Find;
 use List::Util qw{ max };
 use Perl::PrereqScanner;
 use CPAN::Meta::Requirements ();
@@ -22,13 +17,16 @@ use Getopt::Long::Descriptive;
 
 my ($opt, $usage) = describe_options(
   'scan-perl-prereqs %o [DIR|FILES]',
-  [ 'pretty'  => 'format for human consumption, not toolchain' ],
-  [ 'by-file' => 'emit one stanza per file'  ],
+  [ 'pretty'   => 'format for human consumption, not toolchain' ],
+  [ 'by-file'  => 'emit one stanza per file'  ],
+  [ 'lib|I=s@' => 'specifies include paths, like perl\'s -I' ],
 
   [ 'version' => 'print usage message and exit' ],
   [ 'help'    => 'print version and exit' ],
 );
 
+lib->import(@{ $opt->lib }) if $opt->lib;
+
 print('scan-perl-prereqs v' . (Perl::PrereqScanner->VERSION || 'DEV') . "\n")
   if $opt->version;
 print($usage->text) if $opt->help;
@@ -43,7 +41,7 @@ my %result;
 sub scan_dir {
     find( {
         no_chdir => 1,
-        wanted => sub { scan_file($_) if /\.(pl|PL|pm|cgi|psgi|t)$/; }
+        wanted => sub { scan_file($_) if /\.(pl|PL|pm|cgi|psgi|t)$/ && -f $_ }
     }, shift );
 }
 
@@ -84,17 +82,38 @@ sub print_prereqs {
 
 exit;
 
+#pod =head1 SYNOPSIS
+#pod
+#pod     scan-perl-prereqs [--by-file] [--pretty] [DIRS | FILES]
+#pod
+#pod Directories are traversed with L<File::Find> to collect all C<.pl>, C<.pm>,
+#pod C<.psgi> and C<.t> files. If no directories or files are specified, the current
+#pod working directory is scanned.
+#pod
+#pod The default is to print a single combined list suitable for piping to C<cpanm>
+#pod or similar tools.
+#pod
+#pod The C<--by-file> switch will print results grouped by the files in which they
+#pod were found.
+#pod
+#pod The C<--pretty> swith will print results in a more human-friendly format, with
+#pod names and versions vertically aligned.
+#pod
+#pod =cut
+
 __END__
 
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Perl::PrereqScanner::App - scan your working dir for likely prereqs
 
 =head1 VERSION
 
-version 1.018
+version 1.021
 
 =head1 SYNOPSIS
 
@@ -1,10 +1,7 @@
 #!/usr/bin/perl
 package Perl::PrereqScanner::App;
-{
-  $Perl::PrereqScanner::App::VERSION = '1.018';
-}
 # ABSTRACT: scan your working dir for likely prereqs
-
+$Perl::PrereqScanner::App::VERSION = '1.021';
 use strict;
 use warnings;
 
@@ -32,7 +29,7 @@ foreach my $file ( @ARGV ? @ARGV : '.' ) {
 sub scan_dir {
     find( {
         no_chdir => 1, 
-        wanted => sub { scan_file($_) if /\.(pl|pm|psgi|t)$/; }
+        wanted => sub { scan_file($_) if /\.(pl|pm|psgi|t)$/ && -f $_; }
     }, shift );
 }
 
@@ -61,17 +58,29 @@ sub print_prereqs {
 
 exit;
 
+#pod =head1 SYNOPSIS
+#pod
+#pod     scan_prereqs [--combine] [DIRS|FILES]
+#pod
+#pod Directories are traversed with L<File::Find> to collect all C<.pl>, C<.pm>,
+#pod C<.psgi> and C<.t> files. If no directories or files are specified, the current
+#pod working directory is scanned.
+#pod
+#pod =cut
+
 __END__
 
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Perl::PrereqScanner::App - scan your working dir for likely prereqs
 
 =head1 VERSION
 
-version 1.018
+version 1.021
 
 =head1 SYNOPSIS
 
@@ -2,14 +2,21 @@ use strict;
 use warnings;
 
 package Perl::PrereqScanner::Scanner::Aliased;
-{
-  $Perl::PrereqScanner::Scanner::Aliased::VERSION = '1.018';
-}
 # ABSTRACT: scan for OO module aliases via aliased.pm
-
+$Perl::PrereqScanner::Scanner::Aliased::VERSION = '1.021';
 use Moose;
 with 'Perl::PrereqScanner::Scanner';
 
+#pod =head1 DESCRIPTION
+#pod
+#pod This scanner will look for aliased OO modules:
+#pod
+#pod   use aliased 'Some::Long::Long::Name' => 'Short::Name';
+#pod
+#pod   Short::Name->new;
+#pod   ...
+#pod
+#pod =cut
 
 sub scan_for_prereqs {
   my ($self, $ppi_doc, $req) = @_;
@@ -37,13 +44,15 @@ __END__
 
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Perl::PrereqScanner::Scanner::Aliased - scan for OO module aliases via aliased.pm
 
 =head1 VERSION
 
-version 1.018
+version 1.021
 
 =head1 DESCRIPTION
 
@@ -2,14 +2,24 @@ use strict;
 use warnings;
 
 package Perl::PrereqScanner::Scanner::Moose;
-{
-  $Perl::PrereqScanner::Scanner::Moose::VERSION = '1.018';
-}
 # ABSTRACT: scan for Moose sugar indicators of required modules
-
+$Perl::PrereqScanner::Scanner::Moose::VERSION = '1.021';
 use Moose;
 with 'Perl::PrereqScanner::Scanner';
 
+#pod =head1 DESCRIPTION
+#pod
+#pod This scanner will look for the following indicators:
+#pod
+#pod =begin :list
+#pod
+#pod * L<Moose> inheritance declared with the C<extends> keyword
+#pod
+#pod * L<Moose> roles included with the C<with> keyword
+#pod
+#pod =end :list
+#pod
+#pod =cut
 
 sub scan_for_prereqs {
   my ($self, $ppi_doc, $req) = @_;
@@ -120,13 +130,15 @@ __END__
 
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Perl::PrereqScanner::Scanner::Moose - scan for Moose sugar indicators of required modules
 
 =head1 VERSION
 
-version 1.018
+version 1.021
 
 =head1 DESCRIPTION
 
@@ -2,14 +2,18 @@ use strict;
 use warnings;
 
 package Perl::PrereqScanner::Scanner::POE;
-{
-  $Perl::PrereqScanner::Scanner::POE::VERSION = '1.018';
-}
 # ABSTRACT: scan for POE components
-
+$Perl::PrereqScanner::Scanner::POE::VERSION = '1.021';
 use Moose;
 with 'Perl::PrereqScanner::Scanner';
 
+#pod =head1 DESCRIPTION
+#pod
+#pod This scanner will look for POE modules included with C<use POE>
+#pod
+#pod   use POE wq(Component::IRC);
+#pod
+#pod =cut
 
 sub scan_for_prereqs {
   my ($self, $ppi_doc, $req) = @_;
@@ -35,13 +39,15 @@ __END__
 
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Perl::PrereqScanner::Scanner::POE - scan for POE components
 
 =head1 VERSION
 
-version 1.018
+version 1.021
 
 =head1 DESCRIPTION
 
@@ -2,14 +2,41 @@ use strict;
 use warnings;
 
 package Perl::PrereqScanner::Scanner::Perl5;
-{
-  $Perl::PrereqScanner::Scanner::Perl5::VERSION = '1.018';
-}
 # ABSTRACT: scan for core Perl 5 language indicators of required modules
-
+$Perl::PrereqScanner::Scanner::Perl5::VERSION = '1.021';
 use Moose;
 with 'Perl::PrereqScanner::Scanner';
 
+#pod =head1 DESCRIPTION
+#pod
+#pod This scanner will look for the following indicators:
+#pod
+#pod =begin :list
+#pod
+#pod * plain lines beginning with C<use>, C<require>, or C<no> in your perl modules and scripts, including minimum perl version
+#pod
+#pod * regular inheritance declared with the C<base> and C<parent> pragmata
+#pod
+#pod =end :list
+#pod
+#pod Since Perl does not allow you to supply a version requirement with a
+#pod C<require> statement, the scanner will check the statement after the
+#pod C<require Module> to see if it is C<< Module->VERSION( minimum_version ); >>.
+#pod
+#pod In order to provide a minimum version, that method call must meet the
+#pod following requirements:
+#pod
+#pod =begin :list
+#pod
+#pod * it must be the very next statement after C<require Module>.  Nothing can separate them but whitespace and comments (and one semicolon).
+#pod
+#pod * C<Module> must be a bareword, and match the C<require> exactly.
+#pod
+#pod * C<minimum_version> must be a literal number, v-string, or single-quoted string.  Double quotes are not allowed.
+#pod
+#pod =end :list
+#pod
+#pod =cut
 
 sub scan_for_prereqs {
   my ($self, $ppi_doc, $req) = @_;
@@ -92,13 +119,15 @@ __END__
 
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Perl::PrereqScanner::Scanner::Perl5 - scan for core Perl 5 language indicators of required modules
 
 =head1 VERSION
 
-version 1.018
+version 1.021
 
 =head1 DESCRIPTION
 
@@ -2,14 +2,18 @@ use strict;
 use warnings;
 
 package Perl::PrereqScanner::Scanner::Superclass;
-{
-  $Perl::PrereqScanner::Scanner::Superclass::VERSION = '1.018';
-}
 # ABSTRACT: scan for modules loaded with superclass.pm
-
+$Perl::PrereqScanner::Scanner::Superclass::VERSION = '1.021';
 use Moose;
 with 'Perl::PrereqScanner::Scanner';
 
+#pod =head1 DESCRIPTION
+#pod
+#pod This scanner will look for dependencies from the L<superclass> module:
+#pod
+#pod     use superclass 'Foo', Bar => 1.23;
+#pod
+#pod =cut
 
 my $mod_re = qr/^[A-Z_a-z][0-9A-Z_a-z]*(?:(?:::|')[0-9A-Z_a-z]+)*$/;
 
@@ -45,13 +49,15 @@ __END__
 
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Perl::PrereqScanner::Scanner::Superclass - scan for modules loaded with superclass.pm
 
 =head1 VERSION
 
-version 1.018
+version 1.021
 
 =head1 DESCRIPTION
 
@@ -2,11 +2,8 @@ use strict;
 use warnings;
 
 package Perl::PrereqScanner::Scanner::TestMore;
-{
-  $Perl::PrereqScanner::Scanner::TestMore::VERSION = '1.018';
-}
 # ABSTRACT: scanner to find recent Test::More usage
-
+$Perl::PrereqScanner::Scanner::TestMore::VERSION = '1.021';
 use Moose;
 use List::MoreUtils 'none';
 with 'Perl::PrereqScanner::Scanner';
@@ -26,17 +23,17 @@ sub scan_for_prereqs {
 
 1;
 
-__END__
-
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Perl::PrereqScanner::Scanner::TestMore - scanner to find recent Test::More usage
 
 =head1 VERSION
 
-version 1.018
+version 1.021
 
 =head1 DESCRIPTION
 
@@ -66,3 +63,12 @@ This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
 
 =cut
+
+__END__
+
+#pod =head1 DESCRIPTION
+#pod
+#pod This scanner will check if a given test is using recent functions from
+#pod L<Test::More>, and increase the minimum version for this module
+#pod accordingly.
+#pod
@@ -2,13 +2,24 @@ use strict;
 use warnings;
 
 package Perl::PrereqScanner::Scanner;
-{
-  $Perl::PrereqScanner::Scanner::VERSION = '1.018';
-}
 # ABSTRACT: something that scans for prereqs in a Perl document
-
+$Perl::PrereqScanner::Scanner::VERSION = '1.021';
 use Moose::Role;
 
+#pod =head1 DESCRIPTION
+#pod
+#pod This is a role to be composed into classes that will act as scanners plugged
+#pod into a Perl::PrereqScanner object.
+#pod
+#pod These classes must provide a C<scan_for_prereqs> method, which will be called
+#pod like this:
+#pod
+#pod   $scanner->scan_for_prereqs($ppi_doc, $version_requirements);
+#pod
+#pod The scanner should alter the L<CPAN::Meta::Requirements> object to reflect
+#pod its findings about the PPI document.
+#pod
+#pod =cut
 
 requires 'scan_for_prereqs';
 
@@ -33,13 +44,15 @@ __END__
 
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Perl::PrereqScanner::Scanner - something that scans for prereqs in a Perl document
 
 =head1 VERSION
 
-version 1.018
+version 1.021
 
 =head1 DESCRIPTION
 
@@ -3,11 +3,8 @@ use strict;
 use warnings;
 
 package Perl::PrereqScanner;
-{
-  $Perl::PrereqScanner::VERSION = '1.018';
-}
 # ABSTRACT: a tool to scan your Perl code for its prerequisites
-
+$Perl::PrereqScanner::VERSION = '1.021';
 use Moose;
 
 use List::Util qw(max);
@@ -19,7 +16,7 @@ use String::RewritePrefix 0.005 rewrite => {
   prefixes => { '' => 'Perl::PrereqScanner::Scanner::', '=' => '' },
 };
 
-use CPAN::Meta::Requirements 2.120630; # normalized v-strings
+use CPAN::Meta::Requirements 2.124; # normalized v-strings
 
 use namespace::autoclean;
 
@@ -55,6 +52,20 @@ sub BUILD {
   $self->_set_scanners($scanners);
 }
 
+#pod =method scan_string
+#pod
+#pod   my $prereqs = $scanner->scan_string( $perl_code );
+#pod
+#pod Given a string containing Perl source code, this method returns a
+#pod CPAN::Meta::Requirements object describing the modules it requires.
+#pod
+#pod This method will throw an exception if PPI fails to parse the code.
+#pod
+#pod B<Warning!>  It isn't entirely clear whether PPI prefers to receive
+#pod strings as octet strings or character strings.  For now, my advice
+#pod is to pass octet strings.
+#pod
+#pod =cut
 
 sub scan_string {
   my ($self, $str) = @_;
@@ -64,6 +75,16 @@ sub scan_string {
   return $self->scan_ppi_document( $ppi );
 }
 
+#pod =method scan_file
+#pod
+#pod   my $prereqs = $scanner->scan_file( $path );
+#pod
+#pod Given a file path to a Perl document, this method returns a
+#pod CPAN::Meta::Requirements object describing the modules it requires.
+#pod
+#pod This method will throw an exception if PPI fails to parse the code.
+#pod
+#pod =cut
 
 sub scan_file {
   my ($self, $path) = @_;
@@ -74,6 +95,14 @@ sub scan_file {
   return $self->scan_ppi_document( $ppi );
 }
 
+#pod =method scan_ppi_document
+#pod
+#pod   my $prereqs = $scanner->scan_ppi_document( $ppi_doc );
+#pod
+#pod Given a L<PPI::Document>, this method returns a CPAN::Meta::Requirements object
+#pod describing the modules it requires.
+#pod
+#pod =cut
 
 sub scan_ppi_document {
   my ($self, $ppi_doc) = @_;
@@ -87,6 +116,15 @@ sub scan_ppi_document {
   return $req;
 }
 
+#pod =method scan_module
+#pod
+#pod   my $prereqs = $scanner->scan_module( $module_name );
+#pod
+#pod Given the name of a module, eg C<'PPI::Document'>,
+#pod this method returns a CPAN::Meta::Requirements object
+#pod describing the modules it requires.
+#pod
+#pod =cut
 
 sub scan_module {
   my ($self, $module_name) = @_;
@@ -102,17 +140,17 @@ sub scan_module {
 
 1;
 
-__END__
-
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Perl::PrereqScanner - a tool to scan your Perl code for its prerequisites
 
 =head1 VERSION
 
-version 1.018
+version 1.021
 
 =head1 SYNOPSIS
 
@@ -179,6 +217,10 @@ CPAN::Meta::Requirements object describing the modules it requires.
 
 This method will throw an exception if PPI fails to parse the code.
 
+B<Warning!>  It isn't entirely clear whether PPI prefers to receive
+strings as octet strings or character strings.  For now, my advice
+is to pass octet strings.
+
 =head2 scan_file
 
   my $prereqs = $scanner->scan_file( $path );
@@ -231,3 +273,58 @@ This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
 
 =cut
+
+__END__
+
+#pod =for Pod::Coverage::TrustPod
+#pod   new
+#pod
+#pod =head1 SYNOPSIS
+#pod
+#pod   use Perl::PrereqScanner;
+#pod   my $scanner = Perl::PrereqScanner->new;
+#pod   my $prereqs = $scanner->scan_ppi_document( $ppi_doc );
+#pod   my $prereqs = $scanner->scan_file( $file_path );
+#pod   my $prereqs = $scanner->scan_string( $perl_code );
+#pod   my $prereqs = $scanner->scan_module( $module_name );
+#pod
+#pod =head1 DESCRIPTION
+#pod
+#pod The scanner will extract loosely your distribution prerequisites from your
+#pod files.
+#pod
+#pod The extraction may not be perfect but tries to do its best. It will currently
+#pod find the following prereqs:
+#pod
+#pod =begin :list
+#pod
+#pod * plain lines beginning with C<use> or C<require> in your perl modules and scripts, including minimum perl version
+#pod
+#pod * regular inheritance declared with the C<base> and C<parent> pragmata
+#pod
+#pod * L<Moose> inheritance declared with the C<extends> keyword
+#pod
+#pod * L<Moose> roles included with the C<with> keyword
+#pod
+#pod * OO namespace aliasing using the C<aliased> module
+#pod
+#pod =end :list
+#pod
+#pod =head2 Scanner Plugins
+#pod
+#pod Perl::PrereqScanner works by running a series of scanners over a PPI::Document
+#pod representing the code to scan.  By default the "Perl5", "Moose", "TestMore",
+#pod "POE", and "Aliased" scanners are run.  You can supply your own scanners when
+#pod constructing your PrereqScanner:
+#pod
+#pod   # Us only the Perl5 scanner:
+#pod   my $scanner = Perl::PrereqScanner->new({ scanners => [ qw(Perl5) ] });
+#pod
+#pod   # Use any stock scanners, plus Example:
+#pod   my $scanner = Perl::PrereqScanner->new({ extra_scanners => [ qw(Example) ] });
+#pod
+#pod =head1 SEE ALSO
+#pod
+#pod L<scan-perl-prereqs>, in this distribution, is a command-line interface to the scanner
+#pod
+#pod =cut
@@ -0,0 +1,51 @@
+do { my $x = {
+       'configure' => {
+                        'requires' => {
+                                        'ExtUtils::MakeMaker' => '0'
+                                      }
+                      },
+       'develop' => {
+                      'requires' => {
+                                      'Test::Pod' => '1.41'
+                                    }
+                    },
+       'runtime' => {
+                      'requires' => {
+                                      'CPAN::Meta::Requirements' => '2.124',
+                                      'File::Find' => '0',
+                                      'File::Spec::Functions' => '0',
+                                      'FindBin' => '0',
+                                      'Getopt::Long' => '0',
+                                      'Getopt::Long::Descriptive' => '0',
+                                      'List::MoreUtils' => '0',
+                                      'List::Util' => '0',
+                                      'Module::Path' => '0',
+                                      'Moose' => '0',
+                                      'Moose::Role' => '0',
+                                      'PPI' => '1.215',
+                                      'Params::Util' => '0',
+                                      'Scalar::Util' => '0',
+                                      'String::RewritePrefix' => '0.005',
+                                      'lib' => '0',
+                                      'namespace::autoclean' => '0',
+                                      'perl' => '5.008',
+                                      'strict' => '0',
+                                      'warnings' => '0'
+                                    }
+                    },
+       'test' => {
+                   'recommends' => {
+                                     'CPAN::Meta' => '2.120900'
+                                   },
+                   'requires' => {
+                                   'ExtUtils::MakeMaker' => '0',
+                                   'File::Spec' => '0',
+                                   'File::Temp' => '0',
+                                   'PPI::Document' => '0',
+                                   'Test::More' => '0.96',
+                                   'Try::Tiny' => '0'
+                                 }
+                 }
+     };
+  $x;
+ }
\ No newline at end of file
@@ -0,0 +1,176 @@
+#!perl
+
+use strict;
+use warnings;
+
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.019
+
+use Test::More tests => 1;
+
+use ExtUtils::MakeMaker;
+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_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 _max {
+    my $max = shift;
+    $max = ( $_ > $max ) ? $_ : $max for @_;
+    return $max;
+}
+
+sub _merge_prereqs {
+    my ($collector, $prereqs) = @_;
+
+    # 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 = qw(
+
+);
+
+my @exclude = qw(
+
+);
+
+# Add static prereqs to the included modules list
+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) } ) {
+        $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
+    }
+}
+else {
+    $source = 'static metadata';
+}
+
+my @full_reports;
+my @dep_errors;
+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)";
+                }
+            }
+        }
+
+        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 );
+            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 ( @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"
+    );
+}
+
+pass;
+
+# vim: ts=4 sts=4 sw=4 et:
@@ -1,93 +0,0 @@
-use strict;
-use warnings;
-use Test::More 0.88;
-# This is a relatively nice way to avoid Test::NoWarnings breaking our
-# expectations by adding extra tests, without using no_plan.  It also helps
-# avoid any other test module that feels introducing random tests, or even
-# test plans, is a nice idea.
-our $success = 0;
-END { $success && done_testing; }
-
-# List our own version used to generate this
-my $v = "\nGenerated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.10\n";
-
-eval {                     # no excuses!
-    # report our Perl details
-    my $want = '5.008';
-    $v .= "perl: $] (wanted $want) on $^O from $^X\n\n";
-};
-defined($@) and diag("$@");
-
-# Now, our module version dependencies:
-sub pmver {
-    my ($module, $wanted) = @_;
-    $wanted = " (want $wanted)";
-    my $pmver;
-    eval "require $module;";
-    if ($@) {
-        if ($@ =~ m/Can't locate .* in \@INC/) {
-            $pmver = 'module not found.';
-        } else {
-            diag("${module}: $@");
-            $pmver = 'died during require.';
-        }
-    } else {
-        my $version;
-        eval { $version = $module->VERSION; };
-        if ($@) {
-            diag("${module}: $@");
-            $pmver = 'died during VERSION check.';
-        } elsif (defined $version) {
-            $pmver = "$version";
-        } else {
-            $pmver = '<undef>';
-        }
-    }
-
-    # So, we should be good, right?
-    return sprintf('%-45s => %-10s%-15s%s', $module, $pmver, $wanted, "\n");
-}
-
-eval { $v .= pmver('CPAN::Meta::Requirements','2.120630') };
-eval { $v .= pmver('ExtUtils::MakeMaker','6.30') };
-eval { $v .= pmver('File::Find','any version') };
-eval { $v .= pmver('File::Spec::Functions','any version') };
-eval { $v .= pmver('File::Temp','any version') };
-eval { $v .= pmver('FindBin','any version') };
-eval { $v .= pmver('Getopt::Long','any version') };
-eval { $v .= pmver('Getopt::Long::Descriptive','any version') };
-eval { $v .= pmver('List::MoreUtils','any version') };
-eval { $v .= pmver('List::Util','any version') };
-eval { $v .= pmver('Module::Path','any version') };
-eval { $v .= pmver('Moose','any version') };
-eval { $v .= pmver('Moose::Role','any version') };
-eval { $v .= pmver('PPI','1.215') };
-eval { $v .= pmver('PPI::Document','any version') };
-eval { $v .= pmver('Params::Util','any version') };
-eval { $v .= pmver('Scalar::Util','any version') };
-eval { $v .= pmver('String::RewritePrefix','0.005') };
-eval { $v .= pmver('Test::More','0.96') };
-eval { $v .= pmver('Try::Tiny','any version') };
-eval { $v .= pmver('lib','any version') };
-eval { $v .= pmver('namespace::autoclean','any version') };
-eval { $v .= pmver('strict','any version') };
-eval { $v .= pmver('warnings','any version') };
-
-
-# All done.
-$v .= <<'EOT';
-
-Thanks for using my code.  I hope it works for you.
-If not, please try and include this output in the bug report.
-That will help me reproduce the issue and solve your problem.
-
-EOT
-
-diag($v);
-ok(1, "we really didn't test anything, just reporting data");
-$success = 1;
-
-# Work around another nasty module on CPAN. :/
-no warnings 'once';
-$Template::Test::NO_FLUSH = 1;
-exit 0;
@@ -49,6 +49,7 @@ sub prereq_is {
 prereq_is('', { }, '(empty string)');
 prereq_is('use Use::NoVersion;', { 'Use::NoVersion' => 0 });
 prereq_is('use Use::Version 0.50;', { 'Use::Version' => '0.50' });
+prereq_is('use Errno 0.50;', { 'Errno' => '0.50' });
 prereq_is('require Require;', { Require => 0 });
 
 prereq_is(
@@ -29,7 +29,7 @@ sub module_prereq_is {
 module_prereq_is(
   'Perl::PrereqScanner',
   {
-    'CPAN::Meta::Requirements'      => '2.120630',
+    'CPAN::Meta::Requirements'      => '2.124',
     'List::Util'                    => 0,
     'Module::Path'                  => 0,
     'Moose'                         => 0,
@@ -4,7 +4,7 @@ use Test::More tests => 2;
 
 note 'Checking Changes';
 my $changes_file = 'Changes';
-my $newver = '1.018';
+my $newver = '1.021';
 my $trial_token = '-TRIAL';
 
 SKIP: {
@@ -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();