@@ -1,5 +1,21 @@
Revision history for Perl-PrereqScanner
+1.023 2015-04-05 22:23:53-04:00 America/New_York
+ - improve test reliability when path to perl has a space in it
+
+1.022 2014-12-23 21:11:27-05:00 America/New_York
+ - do not crash when encountering arg-less "use aliased;"
+
+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.034.
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,30 +5,29 @@
"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.034, CPAN::Meta::Converter version 2.150001",
"license" : [
"perl_5"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
- "version" : "2"
+ "version" : 2
},
"name" : "Perl-PrereqScanner",
"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,195 @@
},
"x_MailingList" : "http://www.listbox.com/subscribe/?list_id=139292"
},
- "version" : "1.018",
+ "version" : "1.023",
"x_Dist_Zilla" : {
"perl" : {
- "version" : "5.019005"
+ "version" : "5.021009"
},
"plugins" : [
{
"class" : "Dist::Zilla::Plugin::MetaResources",
"name" : "MetaResources",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"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"
+ }
+ },
"name" : "@RJBS/Git::GatherDir",
- "version" : "2.017"
+ "version" : "2.033"
},
{
"class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
"name" : "@RJBS/CheckPrereqsIndexed",
- "version" : "0.009"
+ "version" : "0.015"
},
{
"class" : "Dist::Zilla::Plugin::CheckExtraTests",
"name" : "@RJBS/CheckExtraTests",
- "version" : "0.015"
+ "version" : "0.026"
},
{
"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.040"
},
{
"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.040"
},
{
"class" : "Dist::Zilla::Plugin::PruneCruft",
"name" : "@RJBS/@Filter/PruneCruft",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::ManifestSkip",
"name" : "@RJBS/@Filter/ManifestSkip",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::MetaYAML",
"name" : "@RJBS/@Filter/MetaYAML",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::License",
"name" : "@RJBS/@Filter/License",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::Readme",
"name" : "@RJBS/@Filter/Readme",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::ExecDir",
"name" : "@RJBS/@Filter/ExecDir",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"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.034"
},
{
"class" : "Dist::Zilla::Plugin::Manifest",
"name" : "@RJBS/@Filter/Manifest",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::TestRelease",
"name" : "@RJBS/@Filter/TestRelease",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::ConfirmRelease",
"name" : "@RJBS/@Filter/ConfirmRelease",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::UploadToCPAN",
"name" : "@RJBS/@Filter/UploadToCPAN",
- "version" : "5.005"
+ "version" : "5.034"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MakeMaker",
+ "config" : {
+ "Dist::Zilla::Role::TestRunner" : {
+ "default_jobs" : 9
+ }
+ },
+ "name" : "@RJBS/MakeMaker",
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::AutoPrereqs",
"name" : "@RJBS/AutoPrereqs",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"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.033"
},
{
"class" : "Dist::Zilla::Plugin::PkgVersion",
"name" : "@RJBS/PkgVersion",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::MetaConfig",
"name" : "@RJBS/MetaConfig",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::MetaJSON",
"name" : "@RJBS/MetaJSON",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::NextRelease",
"name" : "@RJBS/NextRelease",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::Test::ChangesHasContent",
"name" : "@RJBS/Test::ChangesHasContent",
- "version" : "0.006"
+ "version" : "0.008"
},
{
"class" : "Dist::Zilla::Plugin::PodSyntaxTests",
"name" : "@RJBS/PodSyntaxTests",
- "version" : "5.005"
+ "version" : "5.034"
},
{
- "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.021"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
@@ -222,76 +275,257 @@
}
},
"name" : "@RJBS/TestMoreWithSubtests",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"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.010"
+ },
+ {
+ "class" : "Pod::Weaver::Plugin::H1Nester",
+ "name" : "@CorePrep/H1Nester",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Plugin::SingleEncoding",
+ "name" : "@RJBS/SingleEncoding",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Name",
+ "name" : "@RJBS/Name",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Version",
+ "name" : "@RJBS/Version",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Region",
+ "name" : "@RJBS/Prelude",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Generic",
+ "name" : "@RJBS/Synopsis",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Generic",
+ "name" : "@RJBS/Description",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Generic",
+ "name" : "@RJBS/Overview",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Generic",
+ "name" : "@RJBS/Stability",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Collect",
+ "name" : "Attributes",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Collect",
+ "name" : "Methods",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Collect",
+ "name" : "Functions",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Leftovers",
+ "name" : "@RJBS/Leftovers",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Region",
+ "name" : "@RJBS/postlude",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Authors",
+ "name" : "@RJBS/Authors",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Contributors",
+ "name" : "@RJBS/Contributors",
+ "version" : "0.009"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Legal",
+ "name" : "@RJBS/Legal",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Plugin::Transformer",
+ "name" : "@RJBS/List",
+ "version" : "4.010"
+ }
]
}
},
"name" : "@RJBS/PodWeaver",
- "version" : "4.001"
+ "version" : "4.006"
},
{
"class" : "Dist::Zilla::Plugin::GithubMeta",
"name" : "@RJBS/GithubMeta",
- "version" : "0.42"
+ "version" : "0.48"
},
{
"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.033"
},
{
"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.033"
},
{
"class" : "Dist::Zilla::Plugin::Git::Tag",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Tag" : {
+ "branch" : null,
+ "signed" : 0,
+ "tag" : "1.023",
+ "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.033"
},
{
"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.033"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Contributors",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Contributors" : {
+ "include_authors" : "0",
+ "include_releaser" : "1",
+ "order_by" : "name",
+ "paths" : []
+ }
+ },
+ "name" : "@RJBS/Git::Contributors",
+ "version" : "0.011"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":InstallModules",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":IncModules",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":TestFiles",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ExecFiles",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ShareFiles",
- "version" : "5.005"
+ "version" : "5.034"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":MainModule",
- "version" : "5.005"
+ "version" : "5.034"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":AllFiles",
+ "version" : "5.034"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":NoFiles",
+ "version" : "5.034"
}
],
"zilla" : {
@@ -299,8 +533,27 @@
"config" : {
"is_trial" : "0"
},
- "version" : "5.005"
+ "version" : "5.034"
}
- }
+ },
+ "x_contributors" : [
+ "bowtie <bowtie@cpan.org>",
+ "celogeek <me@celogeek.com>",
+ "Christopher J. Madsen <perl@cjmweb.net>",
+ "David Golden <dagolden@cpan.org>",
+ "David Steinbrunner <dsteinbrunner@pobox.com>",
+ "Ed J <mohawk2@users.noreply.github.com>",
+ "Florian Ragwitz <rafl@debian.org>",
+ "Jakob Voss <voss@gbv.de>",
+ "Jerome Quelin <jquelin@gmail.com>",
+ "Jérôme Quelin <jquelin@gmail.com>",
+ "John SJ Anderson <genehack@genehack.org>",
+ "Karen Etheridge <ether@cpan.org>",
+ "Mark Gardner <gardnerm@gsicommerce.com>",
+ "Neil Bowers <neil@bowers.com>",
+ "Randy Stauner <rwstauner@cpan.org>",
+ "Tina Mueller <tinita@cpan.org>",
+ "Vyacheslav Matjukhin <mmcleric@yandex-team.ru>"
+ ]
}
@@ -4,158 +4,196 @@ 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.034, CPAN::Meta::Converter version 2.150001'
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.023'
x_Dist_Zilla:
perl:
- version: 5.019005
+ version: '5.021009'
plugins:
-
class: Dist::Zilla::Plugin::MetaResources
name: MetaResources
- version: 5.005
+ version: '5.034'
-
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'
name: '@RJBS/Git::GatherDir'
- version: 2.017
+ version: '2.033'
-
class: Dist::Zilla::Plugin::CheckPrereqsIndexed
name: '@RJBS/CheckPrereqsIndexed'
- version: 0.009
+ version: '0.015'
-
class: Dist::Zilla::Plugin::CheckExtraTests
name: '@RJBS/CheckExtraTests'
- version: 0.015
+ version: '0.026'
-
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.040'
-
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.040'
-
class: Dist::Zilla::Plugin::PruneCruft
name: '@RJBS/@Filter/PruneCruft'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::ManifestSkip
name: '@RJBS/@Filter/ManifestSkip'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::MetaYAML
name: '@RJBS/@Filter/MetaYAML'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::License
name: '@RJBS/@Filter/License'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::Readme
name: '@RJBS/@Filter/Readme'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::ExecDir
name: '@RJBS/@Filter/ExecDir'
- version: 5.005
+ version: '5.034'
-
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.034'
-
class: Dist::Zilla::Plugin::Manifest
name: '@RJBS/@Filter/Manifest'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::TestRelease
name: '@RJBS/@Filter/TestRelease'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::ConfirmRelease
name: '@RJBS/@Filter/ConfirmRelease'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::UploadToCPAN
name: '@RJBS/@Filter/UploadToCPAN'
- version: 5.005
+ version: '5.034'
+ -
+ class: Dist::Zilla::Plugin::MakeMaker
+ config:
+ Dist::Zilla::Role::TestRunner:
+ default_jobs: 9
+ name: '@RJBS/MakeMaker'
+ version: '5.034'
-
class: Dist::Zilla::Plugin::AutoPrereqs
name: '@RJBS/AutoPrereqs'
- version: 5.005
+ version: '5.034'
-
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.033'
-
class: Dist::Zilla::Plugin::PkgVersion
name: '@RJBS/PkgVersion'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::MetaConfig
name: '@RJBS/MetaConfig'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::MetaJSON
name: '@RJBS/MetaJSON'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::NextRelease
name: '@RJBS/NextRelease'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::Test::ChangesHasContent
name: '@RJBS/Test::ChangesHasContent'
- version: 0.006
+ version: '0.008'
-
class: Dist::Zilla::Plugin::PodSyntaxTests
name: '@RJBS/PodSyntaxTests'
- version: 5.005
+ version: '5.034'
-
- 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.021'
-
class: Dist::Zilla::Plugin::Prereqs
config:
@@ -163,63 +201,219 @@ x_Dist_Zilla:
phase: test
type: requires
name: '@RJBS/TestMoreWithSubtests'
- version: 5.005
+ version: '5.034'
-
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.010'
+ -
+ class: Pod::Weaver::Plugin::H1Nester
+ name: '@CorePrep/H1Nester'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Plugin::SingleEncoding
+ name: '@RJBS/SingleEncoding'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Name
+ name: '@RJBS/Name'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Version
+ name: '@RJBS/Version'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Region
+ name: '@RJBS/Prelude'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Generic
+ name: '@RJBS/Synopsis'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Generic
+ name: '@RJBS/Description'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Generic
+ name: '@RJBS/Overview'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Generic
+ name: '@RJBS/Stability'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Collect
+ name: Attributes
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Collect
+ name: Methods
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Collect
+ name: Functions
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Leftovers
+ name: '@RJBS/Leftovers'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Region
+ name: '@RJBS/postlude'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Authors
+ name: '@RJBS/Authors'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Contributors
+ name: '@RJBS/Contributors'
+ version: '0.009'
+ -
+ class: Pod::Weaver::Section::Legal
+ name: '@RJBS/Legal'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Plugin::Transformer
+ name: '@RJBS/List'
+ version: '4.010'
name: '@RJBS/PodWeaver'
- version: 4.001
+ version: '4.006'
-
class: Dist::Zilla::Plugin::GithubMeta
name: '@RJBS/GithubMeta'
- version: 0.42
+ version: '0.48'
-
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.033'
-
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.033'
-
class: Dist::Zilla::Plugin::Git::Tag
+ config:
+ Dist::Zilla::Plugin::Git::Tag:
+ branch: ~
+ signed: 0
+ tag: '1.023'
+ 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.033'
-
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.033'
+ -
+ class: Dist::Zilla::Plugin::Git::Contributors
+ config:
+ Dist::Zilla::Plugin::Git::Contributors:
+ include_authors: '0'
+ include_releaser: '1'
+ order_by: name
+ paths: []
+ name: '@RJBS/Git::Contributors'
+ version: '0.011'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':IncModules'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':TestFiles'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ExecFiles'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ShareFiles'
- version: 5.005
+ version: '5.034'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':MainModule'
- version: 5.005
+ version: '5.034'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':AllFiles'
+ version: '5.034'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':NoFiles'
+ version: '5.034'
zilla:
class: Dist::Zilla::Dist::Builder
config:
- is_trial: 0
- version: 5.005
+ is_trial: '0'
+ version: '5.034'
+x_contributors:
+ - 'bowtie <bowtie@cpan.org>'
+ - 'celogeek <me@celogeek.com>'
+ - 'Christopher J. Madsen <perl@cjmweb.net>'
+ - 'David Golden <dagolden@cpan.org>'
+ - 'David Steinbrunner <dsteinbrunner@pobox.com>'
+ - 'Ed J <mohawk2@users.noreply.github.com>'
+ - 'Florian Ragwitz <rafl@debian.org>'
+ - 'Jakob Voss <voss@gbv.de>'
+ - 'Jerome Quelin <jquelin@gmail.com>'
+ - 'Jérôme Quelin <jquelin@gmail.com>'
+ - 'John SJ Anderson <genehack@genehack.org>'
+ - 'Karen Etheridge <ether@cpan.org>'
+ - 'Mark Gardner <gardnerm@gsicommerce.com>'
+ - 'Neil Bowers <neil@bowers.com>'
+ - 'Randy Stauner <rwstauner@cpan.org>'
+ - 'Tina Mueller <tinita@cpan.org>'
+ - 'Vyacheslav Matjukhin <mmcleric@yandex-team.ru>'
@@ -1,19 +1,16 @@
-
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.034.
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 +18,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 +42,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.023",
"test" => {
"TESTS" => "t/*.t"
}
@@ -57,8 +57,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,
@@ -93,6 +95,3 @@ delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
WriteMakefile(%WriteMakefileArgs);
-
-
-
@@ -1,7 +1,7 @@
This archive contains the distribution Perl-PrereqScanner,
-version 1.018:
+version 1.023:
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.034.
+
@@ -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.023';
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.023
=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.023';
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.023
=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.023';
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) = @_;
@@ -25,6 +32,7 @@ sub scan_for_prereqs {
|| $_->isa('PPI::Token::Quote')
} $node->arguments;
+ next unless @args;
my ($module) = $self->_q_contents($args[0]);
$req->add_minimum($module => 0);
}
@@ -37,13 +45,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.023
=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.023';
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.023
=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.023';
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.023
=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.023';
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.023
=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.023';
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.023
=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.023';
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.023
=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.023';
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.023
=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.023';
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.023
=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 );
@@ -223,6 +265,82 @@ Ricardo Signes <rjbs@cpan.org>
=back
+=head1 CONTRIBUTORS
+
+=for stopwords bowtie celogeek Christopher J. Madsen David Golden Steinbrunner Ed J Florian Ragwitz Jakob Voss Jerome Quelin Jérôme John SJ Anderson Karen Etheridge Mark Gardner Neil Bowers Randy Stauner Tina Mueller Vyacheslav Matjukhin
+
+=over 4
+
+=item *
+
+bowtie <bowtie@cpan.org>
+
+=item *
+
+celogeek <me@celogeek.com>
+
+=item *
+
+Christopher J. Madsen <perl@cjmweb.net>
+
+=item *
+
+David Golden <dagolden@cpan.org>
+
+=item *
+
+David Steinbrunner <dsteinbrunner@pobox.com>
+
+=item *
+
+Ed J <mohawk2@users.noreply.github.com>
+
+=item *
+
+Florian Ragwitz <rafl@debian.org>
+
+=item *
+
+Jakob Voss <voss@gbv.de>
+
+=item *
+
+Jerome Quelin <jquelin@gmail.com>
+
+=item *
+
+Jérôme Quelin <jquelin@gmail.com>
+
+=item *
+
+John SJ Anderson <genehack@genehack.org>
+
+=item *
+
+Karen Etheridge <ether@cpan.org>
+
+=item *
+
+Mark Gardner <gardnerm@gsicommerce.com>
+
+=item *
+
+Neil Bowers <neil@bowers.com>
+
+=item *
+
+Randy Stauner <rwstauner@cpan.org>
+
+=item *
+
+Tina Mueller <tinita@cpan.org>
+
+=item *
+
+Vyacheslav Matjukhin <mmcleric@yandex-team.ru>
+
+=back
+
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2009 by Jerome Quelin.
@@ -231,3 +349,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,183 @@
+#!perl
+
+use strict;
+use warnings;
+
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.021
+
+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 );
+
+ if ($type eq 'modules') {
+ splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl];
+ push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports;
+ }
+ else {
+ splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
+ push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
+ }
+
+ push @full_reports, "\n";
+ }
+ }
+}
+
+if ( @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(
@@ -658,6 +659,13 @@ prereq_is(
},
);
+prereq_is(
+ q{use aliased;},
+ {
+ 'aliased' => 0,
+ },
+);
+
# rolsky says this is a problem case
prereq_is(
q{use Test::Requires 'Foo'},
@@ -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,
@@ -43,7 +43,7 @@ OUTPUT
) {
my ( $name, $args, $exp ) = @$test;
- my $command = "$^X $script $args $files";
+ my $command = qq{"$^X" $script $args $files};
my $out = do {
open(my $fh, "$command |")
or die "Failed to execute '$command': $!";
@@ -4,7 +4,7 @@ use Test::More tests => 2;
note 'Checking Changes';
my $changes_file = 'Changes';
-my $newver = '1.018';
+my $newver = '1.023';
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();