[libfile-sharedir-projectdistdir-perl] 01/06: Imported Upstream version 1.000000
gregor herrmann
gregoa at debian.org
Sat Mar 1 22:42:17 UTC 2014
This is an automated email from the git hooks/post-receive script.
gregoa pushed a commit to branch master
in repository libfile-sharedir-projectdistdir-perl.
commit fd42edf9854c8f9a205478f2f312ec0110d32e02
Author: gregor herrmann <gregoa at debian.org>
Date: Sat Mar 1 23:32:43 2014 +0100
Imported Upstream version 1.000000
---
.gitignore | 2 +
.travis.yml | 53 +-
Build.PL | 65 --
Changes | 166 ++--
Changes.deps | 120 +++
Changes.deps.all | 216 ++++++
Changes.deps.dev | 117 +++
LICENSE | 8 +-
MANIFEST | 124 ++-
META.json | 538 +++++++++----
META.yml | 494 +++++++-----
Makefile.PL | 82 ++
README | 154 +++-
dist.ini | 5 +-
lib/File/ShareDir/ProjectDistDir.pm | 842 +++++++++++++++++----
maint-travis-ci/.gitrepo | 11 +
maint-travis-ci/.perltidyrc | 2 +
maint-travis-ci/before_script.pl | 31 +
maint-travis-ci/branch_reset.pl | 51 ++
maint-travis-ci/create_github_repo.pl | 38 +
maint-travis-ci/install_deps.pl | 87 +++
maint-travis-ci/install_deps_early.pl | 47 ++
maint-travis-ci/lib/tools.pm | 204 +++++
maint-travis-ci/merge_travis_yml.pl | 10 +-
maint-travis-ci/report_fail_ctx.pl | 13 +
maint-travis-ci/script.pl | 35 +
maint-travis-ci/sterilize_env.pl | 36 +-
maint-travis-ci/sync_tree.pl | 67 +-
maint-travis-ci/travis_enable.pl | 88 +++
maint-travis-ci/yamls/sterile.mkdn | 54 ++
maint-travis-ci/yamls/sterile.yaml | 45 +-
maint-travis-ci/yamls/sterile2.yaml | 50 ++
maint/perlcritic.rc.gen.pl | 45 ++
perlcritic.deps | 15 +
perlcritic.rc | 445 ++++++++++-
t/00-compile.t | 46 --
t/00-compile/lib_File_ShareDir_ProjectDistDir_pm.t | 11 +
t/00-report-prereqs.t | 232 ++++++
t/000-report-versions-tiny.t | 95 ---
t/01_files/lib/Example_01.pm | 14 -
t/02_files/develdir/lib/Example_03.pm | 14 -
t/02_files/installdir/lib/Example_02.pm | 14 -
t/03_files/develdir/lib/Example_05.pm | 14 -
t/03_files/installdir/lib/Example_04.pm | 14 -
t/04_files/develdir/lib/Example_06.pm | 14 -
t/04_files/installdir/lib/Example_06.pm | 14 -
t/{ => classic}/01_devel.t | 0
t/{ => classic}/01_files/.devdir | 0
t/classic/01_files/lib/Example_01.pm | 14 +
t/{ => classic}/01_files/share/file | 0
t/{ => classic}/02_files/develdir/.devdir | 0
t/classic/02_files/develdir/lib/Example_03.pm | 6 +
t/{ => classic}/02_files/develdir/share/file | 0
t/classic/02_files/installdir/lib/Example_02.pm | 14 +
.../installdir/lib/auto/share/dist/Example_02/file | 0
t/{ => classic}/02_installed_only.t | 0
t/{ => classic}/03_files/develdir/.devdir | 0
t/classic/03_files/develdir/lib/Example_05.pm | 14 +
t/{ => classic}/03_files/develdir/share/file | 0
t/classic/03_files/installdir/lib/Example_04.pm | 14 +
.../installdir/lib/auto/share/dist/Example_04/file | 0
t/{ => classic}/03_installed_and_dev_different.t | 0
t/{ => classic}/04_developing_installed.t | 0
t/{ => classic}/04_files/develdir/.devdir | 0
t/classic/04_files/develdir/lib/Example_06.pm | 14 +
t/{ => classic}/04_files/develdir/share/file | 0
t/classic/04_files/installdir/lib/Example_06.pm | 14 +
.../installdir/lib/auto/share/dist/Example_06/file | 0
t/{ => classic}/05_devel_spec.t | 0
t/{ => classic}/05_files/.devdir | 0
t/{ => classic}/05_files/lib/Example_05.pm | 4 +-
t/{ => classic}/05_files/templates/file | 0
t/{ => classic}/06_distname.t | 0
t/{ => classic}/06_files/develdir/.devdir | 0
.../06_files/develdir/lib/Example_05.pm | 4 +-
t/{ => classic}/06_files/develdir/share/file | 0
.../06_files/installdir/lib/Example_04.pm | 4 +-
.../installdir/lib/auto/share/dist/Example_04/file | 0
t/deprecations/fatal_no_pathclass_installed.t | 49 ++
t/deprecations/warn_on_pathclass.t | 28 +
t/{ => strict}/01_devel.t | 0
t/{ => strict}/01_files/.devdir | 0
t/strict/01_files/lib/Example_01.pm | 14 +
.../01_files/share/dist/Example_01}/file | 0
t/{01_files => strict/02_files/develdir}/.devdir | 0
t/strict/02_files/develdir/lib/Example_03.pm | 6 +
t/{ => strict}/02_files/develdir/share/file | 0
t/strict/02_files/installdir/lib/Example_02.pm | 14 +
.../installdir/lib/auto/share/dist/Example_02/file | 0
t/{ => strict}/02_installed_only.t | 0
t/{01_files => strict/03_files/develdir}/.devdir | 0
t/strict/03_files/develdir/lib/Example_05.pm | 14 +
.../03_files/develdir/share/dist/Example_05}/file | 0
t/strict/03_files/installdir/lib/Example_04.pm | 14 +
.../installdir/lib/auto/share/dist/Example_04/file | 0
t/{ => strict}/03_installed_and_dev_different.t | 0
t/{ => strict}/04_developing_installed.t | 0
t/{01_files => strict/04_files/develdir}/.devdir | 0
t/strict/04_files/develdir/lib/Example_06.pm | 14 +
.../04_files/develdir/share/dist/Example_06}/file | 0
t/strict/04_files/installdir/lib/Example_06.pm | 14 +
.../installdir/lib/auto/share/dist/Example_06/file | 0
t/{ => strict}/05_devel_spec.t | 0
t/{01_files => strict/05_files}/.devdir | 0
t/{ => strict}/05_files/lib/Example_05.pm | 6 +-
.../05_files/templates/dist/Example_05}/file | 0
t/{ => strict}/06_distname.t | 0
t/{01_files => strict/06_files/develdir}/.devdir | 0
t/{ => strict}/06_files/develdir/lib/Example_05.pm | 6 +-
.../06_files/develdir/share/dist/Example_05}/file | 0
.../06_files/installdir/lib/Example_04.pm | 6 +-
.../installdir/lib/auto/share/dist/Example_04/file | 0
weaver.ini | 1 +
xt/release/distmeta.t | 5 +-
xt/release/kwalitee.t | 2 +-
xt/release/pod-coverage.t | 12 +-
xt/release/pod-syntax.t | 5 +-
117 files changed, 4150 insertions(+), 1004 deletions(-)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4ab54c3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.build
+File-ShareDir-ProjectDistDir-*
diff --git a/.travis.yml b/.travis.yml
index df1af65..d0a6ce1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,17 +1,50 @@
language: perl
-perl:
- - "5.16"
- - "5.14"
- - "5.18"
- - "5.19"
-env:
- matrix:
- - STERILIZE_ENV=0
- - STERILIZE_ENV=1
+matrix:
+ allow_failures:
+ - perl: "5.8"
+ - env: STERILIZE_ENV=0 RELEASE_TESTING=1 AUTHOR_TESTING=1
+ - env: STERILIZE_ENV=0 DEVELOPER_DEPS=1
+ include:
+ - perl: "5.8"
+ env: STERILIZE_ENV=0
+ - perl: "5.10"
+ env: STERILIZE_ENV=0
+ - perl: "5.12"
+ env: STERILIZE_ENV=0
+ - perl: "5.14"
+ env: STERILIZE_ENV=0
+ - perl: "5.16"
+ env: STERILIZE_ENV=0
+ - perl: "5.18"
+ env: STERILIZE_ENV=0
+ - perl: "5.19"
+ env: STERILIZE_ENV=0
+ - perl: "5.8"
+ env: STERILIZE_ENV=1
+ - perl: "5.10"
+ env: STERILIZE_ENV=1
+ - perl: "5.19"
+ env: STERILIZE_ENV=1
+ - perl: "5.19"
+ env: STERILIZE_ENV=0 DEVELOPER_DEPS=1
+ - perl: "5.19"
+ env: STERILIZE_ENV=0 RELEASE_TESTING=1 AUTHOR_TESTING=1
before_install:
- - perl ./maint-travis-ci/sterilize_env.pl
+ - perlbrew list
+ - time perl ./maint-travis-ci/branch_reset.pl
+ - time perl ./maint-travis-ci/sterilize_env.pl
+install:
+ - time perl ./maint-travis-ci/install_deps_early.pl
+ - time perl ./maint-travis-ci/install_deps.pl
+before_script:
+ - time perl ./maint-travis-ci/before_script.pl
+script:
+ - time perl ./maint-travis-ci/script.pl
+after_failure:
+ - perl ./maint-travis-ci/report_fail_ctx.pl
branches:
only:
+ - "master"
- "build/master"
- "releases"
diff --git a/Build.PL b/Build.PL
deleted file mode 100644
index b39ac7e..0000000
--- a/Build.PL
+++ /dev/null
@@ -1,65 +0,0 @@
-
-use strict;
-use warnings;
-
-use Module::Build 0.3601;
-
-
-my %module_build_args = (
- "build_requires" => {
- "Module::Build" => "0.4007"
- },
- "configure_requires" => {
- "Module::Build" => "0.4007"
- },
- "dist_abstract" => "Simple set-and-forget using of a '/share' directory in your projects root",
- "dist_author" => [
- "Kent Fredric <kentnl\@cpan.org>"
- ],
- "dist_name" => "File-ShareDir-ProjectDistDir",
- "dist_version" => "0.5.2",
- "license" => "perl",
- "module_name" => "File::ShareDir::ProjectDistDir",
- "recommends" => {},
- "recursive_test_files" => 1,
- "requires" => {
- "Carp" => 0,
- "File::ShareDir" => 0,
- "Path::Class::Dir" => 0,
- "Path::Class::File" => 0,
- "Path::FindDev" => 0,
- "Path::IsDev" => 0,
- "Path::Tiny" => 0,
- "Sub::Exporter" => 0,
- "perl" => "5.006",
- "strict" => 0,
- "warnings" => 0
- },
- "script_files" => [],
- "test_requires" => {
- "File::Spec" => 0,
- "FindBin" => 0,
- "IO::Handle" => 0,
- "IPC::Open3" => 0,
- "Test::More" => "0.98",
- "lib" => 0
- }
-);
-
-
-unless ( eval { Module::Build->VERSION(0.4004) } ) {
- my $tr = delete $module_build_args{test_requires};
- my $br = $module_build_args{build_requires};
- for my $mod ( keys %$tr ) {
- if ( exists $br->{$mod} ) {
- $br->{$mod} = $tr->{$mod} if $tr->{$mod} > $br->{$mod};
- }
- else {
- $br->{$mod} = $tr->{$mod};
- }
- }
-}
-
-my $build = Module::Build->new(%module_build_args);
-
-$build->create_build_script;
diff --git a/Changes b/Changes
index acf67b9..2b53143 100644
--- a/Changes
+++ b/Changes
@@ -1,36 +1,51 @@
Release history for File-ShareDir-ProjectDistDir
+1.000000 2014-02-28T15:00:49Z
+ [00 MAJOR CHANGES]
+ - add 'strict' mode
+ - defer dev path and determination to calltime
+ - switch to float versions.
+ - start warning about Path::Class usage
+ - stop depending on Path::Class
+ - stop using Path::Class
+ - use EUMM for tooling.
+ - Seriously, read SIGNIFICANT CHANGES for details.
+
+ [Dependencies::Aggregate]
+ - 5.008 : 47 deps
+ - 5.010 : 37 deps
+ - 5.019 : 20 deps
+
+ [Dependencies::Stats]
+ - Dependencies changed since 0.5.2, see Changes.deps{,.all,.dev} for
+ details
+ - build: -1
+ - configure: +2 -1
+ - develop: +43 ↑1 -4
+ - runtime: +1 ↑1 -2
+ - test: +8 ↓1 -3
+
0.5.2 2013-09-25T20:04:10Z
[Bugfix]
- Use a Test::Compile not known to break on Win32
- [Dependencies::Added / test requires]
- - File::Spec
+ [Dependencies::Stats]
+ - Dependencies changed since 0.5.1, see Changes.deps{,.all,.dev} for
+ details
+ - test: +1
0.5.1 2013-09-16T07:34:01Z
[!Minor]
- No serious changes, just 0.5.0 without -TRIAL
- and a few test changes and relevant dep changes.
- [Dependencies::Added / develop requires]
- - Test::Kwalitee 1.08
-
- [Dependencies::Added / test requires]
- - IO::Handle
- - IPC::Open3
-
- [Dependencies::Changed / build requires]
- - Module::Build 0.4005 → 0.4007
-
- [Dependencies::Changed / configure requires]
- - Module::Build 0.4005 → 0.4007
-
- [Dependencies::Changed / develop suggests]
- - Dist::Zilla::PluginBundle::Author::KENTNL v1.7.4 → v1.8.3
-
- [Dependencies::Removed / test requires]
- - File::Find
- - File::Temp
+ [Dependencies::Stats]
+ - Dependencies changed since 0.5.0, see Changes.deps{,.all,.dev} for
+ details
+ - build: ↑1
+ - configure: ↑1
+ - develop: +1 ↑1
+ - test: +2 -2
0.5.0 2013-07-06T18:11:52Z
[00 MAJOR CHANGES]
@@ -38,17 +53,12 @@
- Internals re-written to use Path::Tiny
- Please read SIGNIFICANT CHANGES section on ::ProjectDistDir for details
- [Dependencies::Added / runtime requires]
- - Path::Class::Dir
- - Path::FindDev
- - Path::IsDev
- - Path::Tiny
-
- [Dependencies::Added / test requires]
- - lib
-
- [Dependencies::Changed / develop suggests]
- - Dist::Zilla::PluginBundle::Author::KENTNL v1.7.3 → v1.7.4
+ [Dependencies::Stats]
+ - Dependencies changed since 0.4.4, see Changes.deps{,.all,.dev} for
+ details
+ - develop: ↑1
+ - runtime: +4
+ - test: +1
0.4.4 2013-06-05T17:11:18Z
[00 Noteable Changes]
@@ -75,17 +85,12 @@
- This is only really a temporary solution, in lieu of better debugging
diagnostics.
- [Dependencies::Added / develop requires]
- - Test::CPAN::Changes 0.19
-
- [Dependencies::Changed / build requires]
- - Module::Build 0.4003 → 0.4005
-
- [Dependencies::Changed / configure requires]
- - Module::Build 0.4003 → 0.4005
-
- [Dependencies::Changed / develop suggests]
- - Dist::Zilla::PluginBundle::Author::KENTNL v1.7.0 → v1.7.3
+ [Dependencies::Stats]
+ - Dependencies changed since 0.4.1, see Changes.deps{,.all,.dev} for
+ details
+ - build: ↑1
+ - configure: ↑1
+ - develop: +1 ↑1
[Packaging]
- use MB 0.4004 test_requires
@@ -93,21 +98,12 @@
0.4.1 2013-02-13T23:17:46Z
- No significant changes from 0.4.0, but non-trial
- [Dependencies::Added / develop requires]
- - Pod::Coverage::TrustPod
- - Test::CPAN::Meta
- - Test::Pod 1.41
- - Test::Pod::Coverage 1.08
- - version 0.9901
-
- [Dependencies::Changed / build requires]
- - Module::Build 0.4002 → 0.4003
-
- [Dependencies::Changed / configure requires]
- - Module::Build 0.4002 → 0.4003
-
- [Dependencies::Changed / develop suggests]
- - Dist::Zilla::PluginBundle::Author::KENTNL v1.4.2 → v1.7.0
+ [Dependencies::Stats]
+ - Dependencies changed since 0.4.0, see Changes.deps{,.all,.dev} for
+ details
+ - build: ↑1
+ - configure: ↑1
+ - develop: +5 ↑1
[Documentation]
- update copyright year
@@ -116,17 +112,13 @@
- bugtracker moved to github issues
0.4.0 2012-07-28T21:54:15Z
- [Dependencies::Changed / build requires]
- - Module::Build 0.3601 → 0.4002
-
- [Dependencies::Changed / configure requires]
- - Module::Build 0.3601 → 0.4002
-
- [Dependencies::Changed / develop suggests]
- - Dist::Zilla::PluginBundle::Author::KENTNL v1.3.0 → v1.4.2
-
- [Dependencies::Changed / test requires]
- - Test::More 0.96 → 0.98
+ [Dependencies::Stats]
+ - Dependencies changed since 0.3.2, see Changes.deps{,.all,.dev} for
+ details
+ - build: ↑1
+ - configure: ↑1
+ - develop: ↑1
+ - test: ↑1
[Features]
- now can specify 'pathclass => 1' in various places and get Path::Class
@@ -144,11 +136,10 @@
this still is a problem, I'll use $dir->parent eq $dir being the loop
terminator.
- [Dependencies::Changed / develop recommends]
- - Dist::Zilla::PluginBundle::Author::KENTNL::Lite 0.01009803 → v1.3.0
-
- [Dependencies::Changed / develop suggests]
- - Dist::Zilla::PluginBundle::Author::KENTNL v1.2.0 → v1.3.0
+ [Dependencies::Stats]
+ - Dependencies changed since 0.3.1, see Changes.deps{,.all,.dev} for
+ details
+ - develop: ↑2
0.3.1 2012-03-07T03:57:06Z
[00 Summary]
@@ -157,8 +148,10 @@
via 'use version', so this is somewhat experimental consideration of
that fact.
- [Dependencies::Changed / runtime requires]
- - perl v5.10.0 → 5.006
+ [Dependencies::Stats]
+ - Dependencies changed since 0.3.0, see Changes.deps{,.all,.dev} for
+ details
+ - runtime: ↓1
0.3.0 2012-03-05T05:27:43Z
[00 Noteworthy Changes]
@@ -166,11 +159,11 @@
- greatly enhanced documentation
- supports 'projectdir' on a per-export level.
- [Dependencies::Added / runtime requires]
- - perl v5.10.0
-
- [Dependencies::Changed / develop suggests]
- - Dist::Zilla::PluginBundle::Author::KENTNL v1.0.0 → v1.2.0
+ [Dependencies::Stats]
+ - Dependencies changed since 0.2.0, see Changes.deps{,.all,.dev} for
+ details
+ - develop: ↑1
+ - runtime: +1
[Documentation]
- verbosely detailed the workings of the import method and its helper
@@ -189,12 +182,11 @@
- t/06_distname.t
0.2.0 2011-10-15T02:08:29Z
- [Dependencies::Added / runtime requires]
- - strict
- - warnings
-
- [Dependencies::Removed / test requires]
- - English
+ [Dependencies::Stats]
+ - Dependencies changed since 0.1.1, see Changes.deps{,.all,.dev} for
+ details
+ - runtime: +2
+ - test: -1
[Features]
- Custom Project Dir:
diff --git a/Changes.deps b/Changes.deps
new file mode 100644
index 0000000..2684047
--- /dev/null
+++ b/Changes.deps
@@ -0,0 +1,120 @@
+1.000000
+ [Added / configure recommends]
+ - ExtUtils::MakeMaker 6.90
+
+ [Added / configure requires]
+ - ExtUtils::MakeMaker 6.30
+
+ [Added / runtime requires]
+ - utf8
+
+ [Added / test recommends]
+ - CPAN::Meta
+ - CPAN::Meta::Requirements 2.120900
+ - ExtUtils::MakeMaker 6.90
+ - Test::More 1.001002
+
+ [Added / test requires]
+ - ExtUtils::MakeMaker
+ - File::Spec::Functions
+ - List::Util
+ - version
+
+ [Changed / runtime requires]
+ - perl 5.006 → 5.008
+
+ [Changed / test requires]
+ - Test::More 0.98 → 0.96
+
+ [Removed / build requires]
+ - Module::Build 0.4007
+
+ [Removed / configure requires]
+ - Module::Build 0.4007
+
+ [Removed / runtime requires]
+ - Path::Class::Dir
+ - Path::Class::File
+
+ [Removed / test requires]
+ - File::Spec
+ - IO::Handle
+ - IPC::Open3
+
+0.5.2 2013-09-25T20:04:10Z
+ [Added / test requires]
+ - File::Spec
+
+0.5.1 2013-09-16T07:34:01Z
+ [Added / test requires]
+ - IO::Handle
+ - IPC::Open3
+
+ [Changed / build requires]
+ - Module::Build 0.4005 → 0.4007
+
+ [Changed / configure requires]
+ - Module::Build 0.4005 → 0.4007
+
+ [Removed / test requires]
+ - File::Find
+ - File::Temp
+
+0.5.0 2013-07-06T18:11:52Z
+ [Added / runtime requires]
+ - Path::Class::Dir
+ - Path::FindDev
+ - Path::IsDev
+ - Path::Tiny
+
+ [Added / test requires]
+ - lib
+
+0.4.4 2013-06-05T17:11:18Z
+
+0.4.3 2013-05-23T18:29:12Z
+
+0.4.2 2013-05-23T17:11:31Z
+ [Changed / build requires]
+ - Module::Build 0.4003 → 0.4005
+
+ [Changed / configure requires]
+ - Module::Build 0.4003 → 0.4005
+
+0.4.1 2013-02-13T23:17:46Z
+ [Changed / build requires]
+ - Module::Build 0.4002 → 0.4003
+
+ [Changed / configure requires]
+ - Module::Build 0.4002 → 0.4003
+
+0.4.0 2012-07-28T21:54:15Z
+ [Changed / build requires]
+ - Module::Build 0.3601 → 0.4002
+
+ [Changed / configure requires]
+ - Module::Build 0.3601 → 0.4002
+
+ [Changed / test requires]
+ - Test::More 0.96 → 0.98
+
+0.3.2 2012-05-07T17:07:54Z
+
+0.3.1 2012-03-07T03:57:06Z
+ [Changed / runtime requires]
+ - perl v5.10.0 → 5.006
+
+0.3.0 2012-03-05T05:27:43Z
+ [Added / runtime requires]
+ - perl v5.10.0
+
+0.2.0 2011-10-15T02:08:29Z
+ [Added / runtime requires]
+ - strict
+ - warnings
+
+ [Removed / test requires]
+ - English
+
+0.1.1 2011-04-08T01:29:46Z
+
diff --git a/Changes.deps.all b/Changes.deps.all
new file mode 100644
index 0000000..2a2666c
--- /dev/null
+++ b/Changes.deps.all
@@ -0,0 +1,216 @@
+1.000000
+ [Added / configure recommends]
+ - ExtUtils::MakeMaker 6.90
+
+ [Added / configure requires]
+ - ExtUtils::MakeMaker 6.30
+
+ [Added / develop requires]
+ - Dist::Zilla::Plugin::Authority 1.006
+ - Dist::Zilla::Plugin::AutoPrereqs
+ - Dist::Zilla::Plugin::ConfirmRelease
+ - Dist::Zilla::Plugin::EOLTests
+ - Dist::Zilla::Plugin::Git::Check
+ - Dist::Zilla::Plugin::Git::Commit
+ - Dist::Zilla::Plugin::Git::CommitBuild
+ - Dist::Zilla::Plugin::Git::GatherDir
+ - Dist::Zilla::Plugin::Git::NextRelease
+ - Dist::Zilla::Plugin::Git::NextVersion::Sanitized
+ - Dist::Zilla::Plugin::Git::Tag
+ - Dist::Zilla::Plugin::GithubMeta
+ - Dist::Zilla::Plugin::License
+ - Dist::Zilla::Plugin::MakeMaker
+ - Dist::Zilla::Plugin::Manifest
+ - Dist::Zilla::Plugin::ManifestSkip
+ - Dist::Zilla::Plugin::MetaConfig
+ - Dist::Zilla::Plugin::MetaData::BuiltWith
+ - Dist::Zilla::Plugin::MetaJSON
+ - Dist::Zilla::Plugin::MetaProvides::Package 1.14000001
+ - Dist::Zilla::Plugin::MetaTests
+ - Dist::Zilla::Plugin::MetaYAML
+ - Dist::Zilla::Plugin::MinimumPerl
+ - Dist::Zilla::Plugin::PkgVersion
+ - Dist::Zilla::Plugin::PodCoverageTests
+ - Dist::Zilla::Plugin::PodSyntaxTests
+ - Dist::Zilla::Plugin::PodWeaver
+ - Dist::Zilla::Plugin::Prereqs
+ - Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled
+ - Dist::Zilla::Plugin::ReadmeAnyFromPod
+ - Dist::Zilla::Plugin::ReadmeFromPod
+ - Dist::Zilla::Plugin::RunExtraTests
+ - Dist::Zilla::Plugin::Test::CPAN::Changes
+ - Dist::Zilla::Plugin::Test::Compile::PerFile
+ - Dist::Zilla::Plugin::Test::Kwalitee
+ - Dist::Zilla::Plugin::Test::MinimumVersion
+ - Dist::Zilla::Plugin::Test::Perl::Critic
+ - Dist::Zilla::Plugin::Test::ReportPrereqs
+ - Dist::Zilla::Plugin::TestRelease
+ - Dist::Zilla::Plugin::Twitter
+ - Dist::Zilla::Plugin::UploadToCPAN
+ - Dist::Zilla::PluginBundle::Author::KENTNL 2.012000
+
+ [Added / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL::Lite v1.3.0
+
+ [Added / runtime requires]
+ - utf8
+
+ [Added / test recommends]
+ - CPAN::Meta
+ - CPAN::Meta::Requirements 2.120900
+ - ExtUtils::MakeMaker 6.90
+ - Test::More 1.001002
+
+ [Added / test requires]
+ - ExtUtils::MakeMaker
+ - File::Spec::Functions
+ - List::Util
+ - version
+
+ [Changed / develop requires]
+ - Test::Kwalitee 1.08 → 1.12
+
+ [Changed / runtime requires]
+ - perl 5.006 → 5.008
+
+ [Changed / test requires]
+ - Test::More 0.98 → 0.96
+
+ [Removed / build requires]
+ - Module::Build 0.4007
+
+ [Removed / configure requires]
+ - Module::Build 0.4007
+
+ [Removed / develop recommends]
+ - Dist::Zilla::PluginBundle::Author::KENTNL::Lite v1.3.0
+
+ [Removed / develop requires]
+ - Dist::Zilla::PluginBundle::Author::KENTNL::Lite
+ - version 0.9901
+
+ [Removed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.8.3
+
+ [Removed / runtime requires]
+ - Path::Class::Dir
+ - Path::Class::File
+
+ [Removed / test requires]
+ - File::Spec
+ - IO::Handle
+ - IPC::Open3
+
+0.5.2 2013-09-25T20:04:10Z
+ [Added / test requires]
+ - File::Spec
+
+0.5.1 2013-09-16T07:34:01Z
+ [Added / develop requires]
+ - Test::Kwalitee 1.08
+
+ [Added / test requires]
+ - IO::Handle
+ - IPC::Open3
+
+ [Changed / build requires]
+ - Module::Build 0.4005 → 0.4007
+
+ [Changed / configure requires]
+ - Module::Build 0.4005 → 0.4007
+
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.7.4 → v1.8.3
+
+ [Removed / test requires]
+ - File::Find
+ - File::Temp
+
+0.5.0 2013-07-06T18:11:52Z
+ [Added / runtime requires]
+ - Path::Class::Dir
+ - Path::FindDev
+ - Path::IsDev
+ - Path::Tiny
+
+ [Added / test requires]
+ - lib
+
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.7.3 → v1.7.4
+
+0.4.4 2013-06-05T17:11:18Z
+
+0.4.3 2013-05-23T18:29:12Z
+
+0.4.2 2013-05-23T17:11:31Z
+ [Added / develop requires]
+ - Test::CPAN::Changes 0.19
+
+ [Changed / build requires]
+ - Module::Build 0.4003 → 0.4005
+
+ [Changed / configure requires]
+ - Module::Build 0.4003 → 0.4005
+
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.7.0 → v1.7.3
+
+0.4.1 2013-02-13T23:17:46Z
+ [Added / develop requires]
+ - Pod::Coverage::TrustPod
+ - Test::CPAN::Meta
+ - Test::Pod 1.41
+ - Test::Pod::Coverage 1.08
+ - version 0.9901
+
+ [Changed / build requires]
+ - Module::Build 0.4002 → 0.4003
+
+ [Changed / configure requires]
+ - Module::Build 0.4002 → 0.4003
+
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.4.2 → v1.7.0
+
+0.4.0 2012-07-28T21:54:15Z
+ [Changed / build requires]
+ - Module::Build 0.3601 → 0.4002
+
+ [Changed / configure requires]
+ - Module::Build 0.3601 → 0.4002
+
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.3.0 → v1.4.2
+
+ [Changed / test requires]
+ - Test::More 0.96 → 0.98
+
+0.3.2 2012-05-07T17:07:54Z
+ [Changed / develop recommends]
+ - Dist::Zilla::PluginBundle::Author::KENTNL::Lite 0.01009803 → v1.3.0
+
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.2.0 → v1.3.0
+
+0.3.1 2012-03-07T03:57:06Z
+ [Changed / runtime requires]
+ - perl v5.10.0 → 5.006
+
+0.3.0 2012-03-05T05:27:43Z
+ [Added / runtime requires]
+ - perl v5.10.0
+
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.0.0 → v1.2.0
+
+0.2.0 2011-10-15T02:08:29Z
+ [Added / runtime requires]
+ - strict
+ - warnings
+
+ [Removed / test requires]
+ - English
+
+0.1.1 2011-04-08T01:29:46Z
+
diff --git a/Changes.deps.dev b/Changes.deps.dev
new file mode 100644
index 0000000..0ec4350
--- /dev/null
+++ b/Changes.deps.dev
@@ -0,0 +1,117 @@
+1.000000
+ [Added / develop requires]
+ - Dist::Zilla::Plugin::Authority 1.006
+ - Dist::Zilla::Plugin::AutoPrereqs
+ - Dist::Zilla::Plugin::ConfirmRelease
+ - Dist::Zilla::Plugin::EOLTests
+ - Dist::Zilla::Plugin::Git::Check
+ - Dist::Zilla::Plugin::Git::Commit
+ - Dist::Zilla::Plugin::Git::CommitBuild
+ - Dist::Zilla::Plugin::Git::GatherDir
+ - Dist::Zilla::Plugin::Git::NextRelease
+ - Dist::Zilla::Plugin::Git::NextVersion::Sanitized
+ - Dist::Zilla::Plugin::Git::Tag
+ - Dist::Zilla::Plugin::GithubMeta
+ - Dist::Zilla::Plugin::License
+ - Dist::Zilla::Plugin::MakeMaker
+ - Dist::Zilla::Plugin::Manifest
+ - Dist::Zilla::Plugin::ManifestSkip
+ - Dist::Zilla::Plugin::MetaConfig
+ - Dist::Zilla::Plugin::MetaData::BuiltWith
+ - Dist::Zilla::Plugin::MetaJSON
+ - Dist::Zilla::Plugin::MetaProvides::Package 1.14000001
+ - Dist::Zilla::Plugin::MetaTests
+ - Dist::Zilla::Plugin::MetaYAML
+ - Dist::Zilla::Plugin::MinimumPerl
+ - Dist::Zilla::Plugin::PkgVersion
+ - Dist::Zilla::Plugin::PodCoverageTests
+ - Dist::Zilla::Plugin::PodSyntaxTests
+ - Dist::Zilla::Plugin::PodWeaver
+ - Dist::Zilla::Plugin::Prereqs
+ - Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled
+ - Dist::Zilla::Plugin::ReadmeAnyFromPod
+ - Dist::Zilla::Plugin::ReadmeFromPod
+ - Dist::Zilla::Plugin::RunExtraTests
+ - Dist::Zilla::Plugin::Test::CPAN::Changes
+ - Dist::Zilla::Plugin::Test::Compile::PerFile
+ - Dist::Zilla::Plugin::Test::Kwalitee
+ - Dist::Zilla::Plugin::Test::MinimumVersion
+ - Dist::Zilla::Plugin::Test::Perl::Critic
+ - Dist::Zilla::Plugin::Test::ReportPrereqs
+ - Dist::Zilla::Plugin::TestRelease
+ - Dist::Zilla::Plugin::Twitter
+ - Dist::Zilla::Plugin::UploadToCPAN
+ - Dist::Zilla::PluginBundle::Author::KENTNL 2.012000
+
+ [Added / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL::Lite v1.3.0
+
+ [Changed / develop requires]
+ - Test::Kwalitee 1.08 → 1.12
+
+ [Removed / develop recommends]
+ - Dist::Zilla::PluginBundle::Author::KENTNL::Lite v1.3.0
+
+ [Removed / develop requires]
+ - Dist::Zilla::PluginBundle::Author::KENTNL::Lite
+ - version 0.9901
+
+ [Removed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.8.3
+
+0.5.2 2013-09-25T20:04:10Z
+
+0.5.1 2013-09-16T07:34:01Z
+ [Added / develop requires]
+ - Test::Kwalitee 1.08
+
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.7.4 → v1.8.3
+
+0.5.0 2013-07-06T18:11:52Z
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.7.3 → v1.7.4
+
+0.4.4 2013-06-05T17:11:18Z
+
+0.4.3 2013-05-23T18:29:12Z
+
+0.4.2 2013-05-23T17:11:31Z
+ [Added / develop requires]
+ - Test::CPAN::Changes 0.19
+
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.7.0 → v1.7.3
+
+0.4.1 2013-02-13T23:17:46Z
+ [Added / develop requires]
+ - Pod::Coverage::TrustPod
+ - Test::CPAN::Meta
+ - Test::Pod 1.41
+ - Test::Pod::Coverage 1.08
+ - version 0.9901
+
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.4.2 → v1.7.0
+
+0.4.0 2012-07-28T21:54:15Z
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.3.0 → v1.4.2
+
+0.3.2 2012-05-07T17:07:54Z
+ [Changed / develop recommends]
+ - Dist::Zilla::PluginBundle::Author::KENTNL::Lite 0.01009803 → v1.3.0
+
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.2.0 → v1.3.0
+
+0.3.1 2012-03-07T03:57:06Z
+
+0.3.0 2012-03-05T05:27:43Z
+ [Changed / develop suggests]
+ - Dist::Zilla::PluginBundle::Author::KENTNL v1.0.0 → v1.2.0
+
+0.2.0 2011-10-15T02:08:29Z
+
+0.1.1 2011-04-08T01:29:46Z
+
diff --git a/LICENSE b/LICENSE
index d100b80..df1fb1e 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-This software is copyright (c) 2013 by Kent Fredric <kentnl at cpan.org>.
+This software is copyright (c) 2014 by Kent Fredric <kentnl at cpan.org>.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@ b) the "Artistic License"
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2013 by Kent Fredric <kentnl at cpan.org>.
+This software is Copyright (c) 2014 by Kent Fredric <kentnl at cpan.org>.
This is free software, licensed under:
@@ -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.
@@ -272,7 +272,7 @@ That's all there is to it!
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2013 by Kent Fredric <kentnl at cpan.org>.
+This software is Copyright (c) 2014 by Kent Fredric <kentnl at cpan.org>.
This is free software, licensed under:
diff --git a/MANIFEST b/MANIFEST
index 8f8e221..6dce53f 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,54 +1,108 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.013.
+.gitignore
.perltidyrc
.travis.yml
-Build.PL
Changes
+Changes.deps
+Changes.deps.all
+Changes.deps.dev
LICENSE
MANIFEST
META.json
META.yml
+Makefile.PL
README
dist.ini
lib/File/ShareDir/ProjectDistDir.pm
+maint-travis-ci/.gitrepo
+maint-travis-ci/.perltidyrc
maint-travis-ci/README.mkdn
+maint-travis-ci/before_script.pl
+maint-travis-ci/branch_reset.pl
+maint-travis-ci/create_github_repo.pl
+maint-travis-ci/install_deps.pl
+maint-travis-ci/install_deps_early.pl
+maint-travis-ci/lib/tools.pm
maint-travis-ci/merge_travis_yml.pl
+maint-travis-ci/report_fail_ctx.pl
+maint-travis-ci/script.pl
maint-travis-ci/sterilize_env.pl
maint-travis-ci/sync_tree.pl
+maint-travis-ci/travis_enable.pl
+maint-travis-ci/yamls/sterile.mkdn
maint-travis-ci/yamls/sterile.yaml
+maint-travis-ci/yamls/sterile2.yaml
+maint/perlcritic.rc.gen.pl
+perlcritic.deps
perlcritic.rc
-t/00-compile.t
-t/000-report-versions-tiny.t
-t/01_devel.t
-t/01_files/.devdir
-t/01_files/lib/Example_01.pm
-t/01_files/share/file
-t/02_files/develdir/.devdir
-t/02_files/develdir/lib/Example_03.pm
-t/02_files/develdir/share/file
-t/02_files/installdir/lib/Example_02.pm
-t/02_files/installdir/lib/auto/share/dist/Example_02/file
-t/02_installed_only.t
-t/03_files/develdir/.devdir
-t/03_files/develdir/lib/Example_05.pm
-t/03_files/develdir/share/file
-t/03_files/installdir/lib/Example_04.pm
-t/03_files/installdir/lib/auto/share/dist/Example_04/file
-t/03_installed_and_dev_different.t
-t/04_developing_installed.t
-t/04_files/develdir/.devdir
-t/04_files/develdir/lib/Example_06.pm
-t/04_files/develdir/share/file
-t/04_files/installdir/lib/Example_06.pm
-t/04_files/installdir/lib/auto/share/dist/Example_06/file
-t/05_devel_spec.t
-t/05_files/.devdir
-t/05_files/lib/Example_05.pm
-t/05_files/templates/file
-t/06_distname.t
-t/06_files/develdir/.devdir
-t/06_files/develdir/lib/Example_05.pm
-t/06_files/develdir/share/file
-t/06_files/installdir/lib/Example_04.pm
-t/06_files/installdir/lib/auto/share/dist/Example_04/file
+t/00-compile/lib_File_ShareDir_ProjectDistDir_pm.t
+t/00-report-prereqs.t
+t/classic/01_devel.t
+t/classic/01_files/.devdir
+t/classic/01_files/lib/Example_01.pm
+t/classic/01_files/share/file
+t/classic/02_files/develdir/.devdir
+t/classic/02_files/develdir/lib/Example_03.pm
+t/classic/02_files/develdir/share/file
+t/classic/02_files/installdir/lib/Example_02.pm
+t/classic/02_files/installdir/lib/auto/share/dist/Example_02/file
+t/classic/02_installed_only.t
+t/classic/03_files/develdir/.devdir
+t/classic/03_files/develdir/lib/Example_05.pm
+t/classic/03_files/develdir/share/file
+t/classic/03_files/installdir/lib/Example_04.pm
+t/classic/03_files/installdir/lib/auto/share/dist/Example_04/file
+t/classic/03_installed_and_dev_different.t
+t/classic/04_developing_installed.t
+t/classic/04_files/develdir/.devdir
+t/classic/04_files/develdir/lib/Example_06.pm
+t/classic/04_files/develdir/share/file
+t/classic/04_files/installdir/lib/Example_06.pm
+t/classic/04_files/installdir/lib/auto/share/dist/Example_06/file
+t/classic/05_devel_spec.t
+t/classic/05_files/.devdir
+t/classic/05_files/lib/Example_05.pm
+t/classic/05_files/templates/file
+t/classic/06_distname.t
+t/classic/06_files/develdir/.devdir
+t/classic/06_files/develdir/lib/Example_05.pm
+t/classic/06_files/develdir/share/file
+t/classic/06_files/installdir/lib/Example_04.pm
+t/classic/06_files/installdir/lib/auto/share/dist/Example_04/file
+t/deprecations/fatal_no_pathclass_installed.t
+t/deprecations/warn_on_pathclass.t
+t/strict/01_devel.t
+t/strict/01_files/.devdir
+t/strict/01_files/lib/Example_01.pm
+t/strict/01_files/share/dist/Example_01/file
+t/strict/02_files/develdir/.devdir
+t/strict/02_files/develdir/lib/Example_03.pm
+t/strict/02_files/develdir/share/file
+t/strict/02_files/installdir/lib/Example_02.pm
+t/strict/02_files/installdir/lib/auto/share/dist/Example_02/file
+t/strict/02_installed_only.t
+t/strict/03_files/develdir/.devdir
+t/strict/03_files/develdir/lib/Example_05.pm
+t/strict/03_files/develdir/share/dist/Example_05/file
+t/strict/03_files/installdir/lib/Example_04.pm
+t/strict/03_files/installdir/lib/auto/share/dist/Example_04/file
+t/strict/03_installed_and_dev_different.t
+t/strict/04_developing_installed.t
+t/strict/04_files/develdir/.devdir
+t/strict/04_files/develdir/lib/Example_06.pm
+t/strict/04_files/develdir/share/dist/Example_06/file
+t/strict/04_files/installdir/lib/Example_06.pm
+t/strict/04_files/installdir/lib/auto/share/dist/Example_06/file
+t/strict/05_devel_spec.t
+t/strict/05_files/.devdir
+t/strict/05_files/lib/Example_05.pm
+t/strict/05_files/templates/dist/Example_05/file
+t/strict/06_distname.t
+t/strict/06_files/develdir/.devdir
+t/strict/06_files/develdir/lib/Example_05.pm
+t/strict/06_files/develdir/share/dist/Example_05/file
+t/strict/06_files/installdir/lib/Example_04.pm
+t/strict/06_files/installdir/lib/auto/share/dist/Example_04/file
weaver.ini
xt/author/critic.t
xt/release/cpan-changes.t
diff --git a/META.json b/META.json
index 8cd6758..e8498f5 100644
--- a/META.json
+++ b/META.json
@@ -4,7 +4,7 @@
"Kent Fredric <kentnl at cpan.org>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 4.300039, CPAN::Meta::Converter version 2.132661",
+ "generated_by" : "Dist::Zilla version 5.013, CPAN::Meta::Converter version 2.133380",
"license" : [
"perl_5"
],
@@ -14,64 +14,105 @@
},
"name" : "File-ShareDir-ProjectDistDir",
"prereqs" : {
- "build" : {
- "requires" : {
- "Module::Build" : "0.4007"
- }
- },
"configure" : {
+ "recommends" : {
+ "ExtUtils::MakeMaker" : "6.90"
+ },
"requires" : {
- "Module::Build" : "0.4007"
+ "ExtUtils::MakeMaker" : "6.30"
}
},
"develop" : {
- "recommends" : {
- "Dist::Zilla::PluginBundle::Author::KENTNL::Lite" : "v1.3.0"
- },
"requires" : {
- "Dist::Zilla::PluginBundle::Author::KENTNL::Lite" : "0",
+ "Dist::Zilla::Plugin::Authority" : "1.006",
+ "Dist::Zilla::Plugin::AutoPrereqs" : "0",
+ "Dist::Zilla::Plugin::ConfirmRelease" : "0",
+ "Dist::Zilla::Plugin::EOLTests" : "0",
+ "Dist::Zilla::Plugin::Git::Check" : "0",
+ "Dist::Zilla::Plugin::Git::Commit" : "0",
+ "Dist::Zilla::Plugin::Git::CommitBuild" : "0",
+ "Dist::Zilla::Plugin::Git::GatherDir" : "0",
+ "Dist::Zilla::Plugin::Git::NextRelease" : "0",
+ "Dist::Zilla::Plugin::Git::NextVersion::Sanitized" : "0",
+ "Dist::Zilla::Plugin::Git::Tag" : "0",
+ "Dist::Zilla::Plugin::GithubMeta" : "0",
+ "Dist::Zilla::Plugin::License" : "0",
+ "Dist::Zilla::Plugin::MakeMaker" : "0",
+ "Dist::Zilla::Plugin::Manifest" : "0",
+ "Dist::Zilla::Plugin::ManifestSkip" : "0",
+ "Dist::Zilla::Plugin::MetaConfig" : "0",
+ "Dist::Zilla::Plugin::MetaData::BuiltWith" : "0",
+ "Dist::Zilla::Plugin::MetaJSON" : "0",
+ "Dist::Zilla::Plugin::MetaProvides::Package" : "1.14000001",
+ "Dist::Zilla::Plugin::MetaTests" : "0",
+ "Dist::Zilla::Plugin::MetaYAML" : "0",
+ "Dist::Zilla::Plugin::MinimumPerl" : "0",
+ "Dist::Zilla::Plugin::PkgVersion" : "0",
+ "Dist::Zilla::Plugin::PodCoverageTests" : "0",
+ "Dist::Zilla::Plugin::PodSyntaxTests" : "0",
+ "Dist::Zilla::Plugin::PodWeaver" : "0",
+ "Dist::Zilla::Plugin::Prereqs" : "0",
+ "Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled" : "0",
+ "Dist::Zilla::Plugin::ReadmeAnyFromPod" : "0",
+ "Dist::Zilla::Plugin::ReadmeFromPod" : "0",
+ "Dist::Zilla::Plugin::RunExtraTests" : "0",
+ "Dist::Zilla::Plugin::Test::CPAN::Changes" : "0",
+ "Dist::Zilla::Plugin::Test::Compile::PerFile" : "0",
+ "Dist::Zilla::Plugin::Test::Kwalitee" : "0",
+ "Dist::Zilla::Plugin::Test::MinimumVersion" : "0",
+ "Dist::Zilla::Plugin::Test::Perl::Critic" : "0",
+ "Dist::Zilla::Plugin::Test::ReportPrereqs" : "0",
+ "Dist::Zilla::Plugin::TestRelease" : "0",
+ "Dist::Zilla::Plugin::Twitter" : "0",
+ "Dist::Zilla::Plugin::UploadToCPAN" : "0",
+ "Dist::Zilla::PluginBundle::Author::KENTNL" : "2.012000",
"Pod::Coverage::TrustPod" : "0",
"Test::CPAN::Changes" : "0.19",
"Test::CPAN::Meta" : "0",
- "Test::Kwalitee" : "1.08",
+ "Test::Kwalitee" : "1.12",
"Test::Pod" : "1.41",
- "Test::Pod::Coverage" : "1.08",
- "version" : "0.9901"
+ "Test::Pod::Coverage" : "1.08"
},
"suggests" : {
- "Dist::Zilla::PluginBundle::Author::KENTNL" : "v1.8.3"
+ "Dist::Zilla::PluginBundle::Author::KENTNL::Lite" : "v1.3.0"
}
},
"runtime" : {
"requires" : {
"Carp" : "0",
"File::ShareDir" : "0",
- "Path::Class::Dir" : "0",
- "Path::Class::File" : "0",
"Path::FindDev" : "0",
"Path::IsDev" : "0",
"Path::Tiny" : "0",
"Sub::Exporter" : "0",
- "perl" : "5.006",
+ "perl" : "5.008",
"strict" : "0",
+ "utf8" : "0",
"warnings" : "0"
}
},
"test" : {
+ "recommends" : {
+ "CPAN::Meta" : "0",
+ "CPAN::Meta::Requirements" : "2.120900",
+ "ExtUtils::MakeMaker" : "6.90",
+ "Test::More" : "1.001002"
+ },
"requires" : {
- "File::Spec" : "0",
+ "ExtUtils::MakeMaker" : "0",
+ "File::Spec::Functions" : "0",
"FindBin" : "0",
- "IO::Handle" : "0",
- "IPC::Open3" : "0",
- "Test::More" : "0.98",
- "lib" : "0"
+ "List::Util" : "0",
+ "Test::More" : "0.96",
+ "lib" : "0",
+ "version" : "0"
}
}
},
"provides" : {
"File::ShareDir::ProjectDistDir" : {
"file" : "lib/File/ShareDir/ProjectDistDir.pm",
- "version" : "v0.5.2"
+ "version" : "1.000000"
}
},
"release_status" : "stable",
@@ -86,83 +127,132 @@
"web" : "https://github.com/kentfredric/File-ShareDir-ProjectDistDir"
}
},
- "version" : "0.5.2",
+ "version" : "1.000000",
"x_BuiltWith" : {
"modules" : {
+ "CPAN::Meta" : "2.133380",
+ "CPAN::Meta::Requirements" : "2.125",
"Carp" : "1.32",
- "Dist::Zilla::PluginBundle::Author::KENTNL" : "1.8.3",
+ "Dist::Zilla::Plugin::Authority" : "1.006",
+ "Dist::Zilla::Plugin::AutoPrereqs" : "5.013",
+ "Dist::Zilla::Plugin::ConfirmRelease" : "5.013",
+ "Dist::Zilla::Plugin::EOLTests" : "0.02",
+ "Dist::Zilla::Plugin::Git::Check" : "2.020",
+ "Dist::Zilla::Plugin::Git::Commit" : "2.020",
+ "Dist::Zilla::Plugin::Git::CommitBuild" : "2.020",
+ "Dist::Zilla::Plugin::Git::GatherDir" : "2.020",
+ "Dist::Zilla::Plugin::Git::NextRelease" : "0.002010",
+ "Dist::Zilla::Plugin::Git::NextVersion::Sanitized" : "0.001000",
+ "Dist::Zilla::Plugin::Git::Tag" : "2.020",
+ "Dist::Zilla::Plugin::GithubMeta" : "0.42",
+ "Dist::Zilla::Plugin::License" : "5.013",
+ "Dist::Zilla::Plugin::MakeMaker" : "5.013",
+ "Dist::Zilla::Plugin::Manifest" : "5.013",
+ "Dist::Zilla::Plugin::ManifestSkip" : "5.013",
+ "Dist::Zilla::Plugin::MetaConfig" : "5.013",
+ "Dist::Zilla::Plugin::MetaData::BuiltWith" : "0.04000002",
+ "Dist::Zilla::Plugin::MetaJSON" : "5.013",
+ "Dist::Zilla::Plugin::MetaProvides::Package" : "2.000001",
+ "Dist::Zilla::Plugin::MetaTests" : "5.013",
+ "Dist::Zilla::Plugin::MetaYAML" : "5.013",
+ "Dist::Zilla::Plugin::MinimumPerl" : "1.003",
+ "Dist::Zilla::Plugin::PkgVersion" : "5.013",
+ "Dist::Zilla::Plugin::PodCoverageTests" : "5.013",
+ "Dist::Zilla::Plugin::PodSyntaxTests" : "5.013",
+ "Dist::Zilla::Plugin::PodWeaver" : "4.005",
+ "Dist::Zilla::Plugin::Prereqs" : "5.013",
+ "Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled" : "0.001000",
+ "Dist::Zilla::Plugin::ReadmeAnyFromPod" : "0.133360",
+ "Dist::Zilla::Plugin::ReadmeFromPod" : "0.21",
+ "Dist::Zilla::Plugin::RunExtraTests" : "0.018",
+ "Dist::Zilla::Plugin::Test::CPAN::Changes" : "0.008",
+ "Dist::Zilla::Plugin::Test::Compile::PerFile" : "0.001001",
+ "Dist::Zilla::Plugin::Test::Kwalitee" : "2.07",
+ "Dist::Zilla::Plugin::Test::MinimumVersion" : "2.000005",
+ "Dist::Zilla::Plugin::Test::Perl::Critic" : "2.112410",
+ "Dist::Zilla::Plugin::Test::ReportPrereqs" : "0.013",
+ "Dist::Zilla::Plugin::TestRelease" : "5.013",
+ "Dist::Zilla::Plugin::Twitter" : "0.025",
+ "Dist::Zilla::Plugin::UploadToCPAN" : "5.013",
+ "Dist::Zilla::PluginBundle::Author::KENTNL" : "2.012000",
"Dist::Zilla::PluginBundle::Author::KENTNL::Lite" : "1.7.2",
+ "ExtUtils::MakeMaker" : "6.90",
"File::ShareDir" : "1.03",
- "File::Spec" : "3.44",
+ "File::Spec::Functions" : "3.47",
"FindBin" : "1.51",
- "IO::Handle" : "1.35",
- "IPC::Open3" : "1.15",
- "Module::Build" : "0.4007",
- "Path::Class::Dir" : "0.32",
- "Path::Class::File" : "0.32",
- "Path::FindDev" : "0.3.1",
- "Path::IsDev" : "0.3.2",
- "Path::Tiny" : "0.037",
- "Pod::Coverage::TrustPod" : "0.100002",
- "Sub::Exporter" : "0.986",
- "Test::CPAN::Changes" : "0.23",
+ "List::Util" : "1.38",
+ "Path::FindDev" : "0.4.2",
+ "Path::IsDev" : "1.000002",
+ "Path::Tiny" : "0.052",
+ "Pod::Coverage::TrustPod" : "0.100003",
+ "Sub::Exporter" : "0.987",
+ "Test::CPAN::Changes" : "0.27",
"Test::CPAN::Meta" : "0.23",
- "Test::Kwalitee" : "1.15",
- "Test::More" : "0.98",
+ "Test::Kwalitee" : "1.18",
+ "Test::More" : "1.001002",
"Test::Pod" : "1.48",
"Test::Pod::Coverage" : "1.08",
"lib" : "0.63",
- "perl" : "NA(skipped: perl)",
"strict" : "1.08",
- "version" : "0.9904",
- "warnings" : "1.18"
+ "utf8" : "1.13",
+ "version" : "0.9908",
+ "warnings" : "1.22"
},
"perl" : {
- "original" : "v5.19.3",
+ "original" : "v5.19.9",
"qv" : 1,
"version" : [
5,
19,
- 3
+ 9
]
},
"perl-config" : {
- "gccversion" : "4.7.2",
+ "gccversion" : "4.8.2",
"myarchname" : "x86_64-linux",
"osname" : "linux"
},
"platform" : "linux",
- "uname" : "Linux 3.11.1-gentoo x86_64 GenuineIntel GNU/Linux"
+ "uname" : "Linux 3.13.0-gentoo-r1 x86_64 GenuineIntel GNU/Linux"
},
"x_Dist_Zilla" : {
"perl" : {
- "version" : "5.019003"
+ "version" : "5.019009"
},
"plugins" : [
{
- "class" : "Dist::Zilla::Plugin::Git::NextVersion",
- "name" : "@Author::KENTNL/Git::NextVersion",
- "version" : "2.014"
+ "class" : "Dist::Zilla::Plugin::Git::NextVersion::Sanitized",
+ "config" : {
+ "Dist::Zilla::Role::Version::Sanitize" : {
+ "mantissa" : "6",
+ "normal_form" : "numify"
+ }
+ },
+ "name" : "@Author::KENTNL/Git::NextVersion::Sanitized",
+ "version" : "0.001000"
},
{
"class" : "Dist::Zilla::Plugin::MetaConfig",
"name" : "@Author::KENTNL/MetaConfig",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::GithubMeta",
"name" : "@Author::KENTNL/GithubMeta",
- "version" : "0.38"
- },
- {
- "class" : "Dist::Zilla::Plugin::FinderCode",
- "name" : "@Author::KENTNL/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
- "version" : "4.300039"
+ "version" : "0.42"
},
{
"class" : "Dist::Zilla::Plugin::MetaProvides::Package",
"config" : {
- "Dist::Zilla::Plugin::MetaProvides::Package" : {},
+ "Dist::Zilla::Plugin::MetaProvides::Package" : {
+ "finder_objects" : [
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : "@Author::KENTNL/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
+ "version" : "5.013"
+ }
+ ]
+ },
"Dist::Zilla::Role::MetaProvider::Provider" : {
"inherit_missing" : "1",
"inherit_version" : "1",
@@ -170,7 +260,7 @@
}
},
"name" : "@Author::KENTNL/MetaProvides::Package",
- "version" : "1.15000000"
+ "version" : "2.000001"
},
{
"class" : "Dist::Zilla::Plugin::MetaData::BuiltWith",
@@ -192,57 +282,57 @@
}
},
"name" : "@Author::KENTNL/MetaData::BuiltWith",
- "version" : "0.03000100"
+ "version" : "0.04000002"
},
{
"class" : "Dist::Zilla::Plugin::Git::GatherDir",
"name" : "@Author::KENTNL/Git::GatherDir",
- "version" : "2.014"
+ "version" : "2.020"
},
{
"class" : "Dist::Zilla::Plugin::License",
"name" : "@Author::KENTNL/License",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::MetaJSON",
"name" : "@Author::KENTNL/MetaJSON",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::MetaYAML",
"name" : "@Author::KENTNL/MetaYAML",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::Manifest",
"name" : "@Author::KENTNL/Manifest",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::MetaTests",
"name" : "@Author::KENTNL/MetaTests",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::PodCoverageTests",
"name" : "@Author::KENTNL/PodCoverageTests",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::PodSyntaxTests",
"name" : "@Author::KENTNL/PodSyntaxTests",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
- "class" : "Dist::Zilla::Plugin::ReportVersions::Tiny",
- "name" : "@Author::KENTNL/ReportVersions::Tiny",
- "version" : "1.09"
+ "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs",
+ "name" : "@Author::KENTNL/Test::ReportPrereqs",
+ "version" : "0.013"
},
{
"class" : "Dist::Zilla::Plugin::Test::Kwalitee",
"name" : "@Author::KENTNL/Test::Kwalitee",
- "version" : "2.06"
+ "version" : "2.07"
},
{
"class" : "Dist::Zilla::Plugin::EOLTests",
@@ -255,19 +345,26 @@
"version" : "2.000005"
},
{
- "class" : "Dist::Zilla::Plugin::Test::Compile",
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : "@Author::KENTNL/Test::Compile::PerFile/AUTOVIV/:InstallModulesPM",
+ "version" : "5.013"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::Compile::PerFile",
"config" : {
- "Dist::Zilla::Plugin::Test::Compile" : {
- "module_finder" : [
- ":InstallModules"
+ "Dist::Zilla::Plugin::Test::Compile::PerFile" : {
+ "file" : [
+ "lib/File/ShareDir/ProjectDistDir.pm"
],
- "script_finder" : [
- ":ExecFiles"
- ]
+ "path_translator" : "base64_filter",
+ "prefix" : "t/00-compile",
+ "skip" : [],
+ "test_template" : "01-basic.t.tpl",
+ "xt_mode" : null
}
},
- "name" : "@Author::KENTNL/Test::Compile",
- "version" : "2.033"
+ "name" : "@Author::KENTNL/Test::Compile::PerFile",
+ "version" : "0.001001"
},
{
"class" : "Dist::Zilla::Plugin::Test::Perl::Critic",
@@ -275,72 +372,151 @@
"version" : "2.112410"
},
{
- "class" : "Dist::Zilla::Plugin::PruneCruft",
- "name" : "@Author::KENTNL/PruneCruft",
- "version" : "4.300039"
- },
- {
"class" : "Dist::Zilla::Plugin::ManifestSkip",
"name" : "@Author::KENTNL/ManifestSkip",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::PkgVersion",
"name" : "@Author::KENTNL/PkgVersion",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::PodWeaver",
+ "config" : {
+ "Dist::Zilla::Plugin::PodWeaver" : {
+ "finder" : [
+ ":InstallModules",
+ ":ExecFiles"
+ ],
+ "plugins" : [
+ {
+ "class" : "Pod::Weaver::Plugin::EnsurePod5",
+ "name" : "@CorePrep/EnsurePod5",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Plugin::H1Nester",
+ "name" : "@CorePrep/H1Nester",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Plugin::SingleEncoding",
+ "name" : "-SingleEncoding",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Name",
+ "name" : "Name",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Version",
+ "name" : "Version",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Region",
+ "name" : "prelude",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Generic",
+ "name" : "SYNOPSIS",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Generic",
+ "name" : "DESCRIPTION",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Generic",
+ "name" : "OVERVIEW",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Collect",
+ "name" : "METHODS",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Collect",
+ "name" : "ATTRIBUTES",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Collect",
+ "name" : "PRIVATE_ATTRIBUTES",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Collect",
+ "name" : "PRIVATE_METHODS",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Leftovers",
+ "name" : "Leftovers",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Region",
+ "name" : "postlude",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Authors",
+ "name" : "Authors",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Legal",
+ "name" : "Legal",
+ "version" : "4.006"
+ }
+ ]
+ }
+ },
"name" : "@Author::KENTNL/PodWeaver",
- "version" : "3.101642"
+ "version" : "4.005"
},
{
- "class" : "Dist::Zilla::Plugin::NextRelease",
- "name" : "@Author::KENTNL/NextRelease",
- "version" : "4.300039"
+ "class" : "Dist::Zilla::Plugin::Git::NextRelease",
+ "name" : "@Author::KENTNL/Git::NextRelease",
+ "version" : "0.002010"
},
{
"class" : "Dist::Zilla::Plugin::AutoPrereqs",
"name" : "@Author::KENTNL/AutoPrereqs",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
"config" : {
"Dist::Zilla::Plugin::Prereqs" : {
"phase" : "develop",
- "type" : "requires"
- }
- },
- "name" : "@Author::KENTNL/Prereqs/BundleDevelNeeds",
- "version" : "4.300039"
- },
- {
- "class" : "Dist::Zilla::Plugin::Prereqs",
- "config" : {
- "Dist::Zilla::Plugin::Prereqs" : {
- "phase" : "develop",
- "type" : "recommends"
+ "type" : "suggests"
}
},
- "name" : "@Author::KENTNL/Prereqs/BundleDevelRecommends",
- "version" : "4.300039"
+ "name" : "@Author::KENTNL/BundleDevelSuggests",
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
"config" : {
"Dist::Zilla::Plugin::Prereqs" : {
"phase" : "develop",
- "type" : "suggests"
+ "type" : "requires"
}
},
- "name" : "@Author::KENTNL/Prereqs/BundleDevelSuggests",
- "version" : "4.300039"
+ "name" : "@Author::KENTNL/BundleDevelRequires",
+ "version" : "5.013"
},
{
- "class" : "Dist::Zilla::Plugin::Author::KENTNL::MinimumPerl",
- "name" : "@Author::KENTNL/Author::KENTNL::MinimumPerl",
- "version" : "1.8.3"
+ "class" : "Dist::Zilla::Plugin::MinimumPerl",
+ "name" : "@Author::KENTNL/MinimumPerl",
+ "version" : "1.003"
},
{
"class" : "Dist::Zilla::Plugin::Authority",
@@ -348,19 +524,19 @@
"version" : "1.006"
},
{
- "class" : "Dist::Zilla::Plugin::ModuleBuild",
- "name" : "@Author::KENTNL/ModuleBuild",
- "version" : "4.300039"
+ "class" : "Dist::Zilla::Plugin::MakeMaker",
+ "name" : "@Author::KENTNL/MakeMaker",
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::ReadmeFromPod",
"name" : "@Author::KENTNL/ReadmeFromPod",
- "version" : "0.18"
+ "version" : "0.21"
},
{
"class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
"name" : "@Author::KENTNL/ReadmeAnyFromPod",
- "version" : "0.131500"
+ "version" : "0.133360"
},
{
"class" : "Dist::Zilla::Plugin::Test::CPAN::Changes",
@@ -368,75 +544,65 @@
"version" : "0.008"
},
{
- "class" : "Dist::Zilla::Plugin::CheckExtraTests",
- "name" : "@Author::KENTNL/CheckExtraTests",
- "version" : "0.011"
+ "class" : "Dist::Zilla::Plugin::RunExtraTests",
+ "name" : "@Author::KENTNL/RunExtraTests",
+ "version" : "0.018"
},
{
"class" : "Dist::Zilla::Plugin::TestRelease",
"name" : "@Author::KENTNL/TestRelease",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::ConfirmRelease",
"name" : "@Author::KENTNL/ConfirmRelease",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::Git::Check",
"name" : "@Author::KENTNL/Git::Check",
- "version" : "2.014"
+ "version" : "2.020"
},
{
"class" : "Dist::Zilla::Plugin::Git::Tag",
- "name" : "@Author::KENTNL/Git::Tag/tag_master",
- "version" : "2.014"
+ "name" : "@Author::KENTNL/tag_master",
+ "version" : "2.020"
},
{
"class" : "Dist::Zilla::Plugin::Git::Commit",
"name" : "@Author::KENTNL/Git::Commit",
- "version" : "2.014"
+ "version" : "2.020"
},
{
"class" : "Dist::Zilla::Plugin::Git::CommitBuild",
"name" : "@Author::KENTNL/Git::CommitBuild",
- "version" : "2.014"
+ "version" : "2.020"
},
{
"class" : "Dist::Zilla::Plugin::Git::Tag",
- "name" : "@Author::KENTNL/Git::Tag/tag_release",
- "version" : "2.014"
+ "name" : "@Author::KENTNL/tag_release",
+ "version" : "2.020"
},
{
"class" : "Dist::Zilla::Plugin::UploadToCPAN",
"name" : "@Author::KENTNL/UploadToCPAN",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::Twitter",
"name" : "@Author::KENTNL/Twitter",
- "version" : "0.021"
+ "version" : "0.025"
},
{
- "class" : "Dist::Zilla::Plugin::Prereqs::MatchInstalled",
+ "class" : "Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled",
"config" : {
- "Dist::Zilla::Plugin::Prereqs::MatchInstalled" : {
- "applyto" : [
- "build.requires",
- "build.recommends",
- "build.suggests",
- "test.requires",
- "test.recommends",
- "test.suggests",
- "runtime.requires",
- "runtime.recommends",
- "runtime.suggests",
- "configure.requires",
- "configure.recommends",
- "configure.suggests",
- "develop.requires",
- "develop.recommends",
- "develop.suggests"
+ "Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled" : {
+ "applyto_map" : [
+ "build.requires = build.recommends",
+ "test.requires = test.recommends",
+ "runtime.requires = runtime.recommends",
+ "configure.requires = configure.recommends",
+ "develop.requires = develop.recommends"
],
"applyto_phase" : [
"build",
@@ -445,20 +611,43 @@
"configure",
"develop"
],
- "applyto_relation" : [
- "requires",
- "recommends",
- "suggests"
+ "modules" : [
+ "ExtUtils::MakeMaker",
+ "Test::More"
+ ]
+ }
+ },
+ "name" : "@Author::KENTNL/Prereqs::Recommend::MatchInstalled",
+ "version" : "0.001000"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled",
+ "config" : {
+ "Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled" : {
+ "applyto_map" : [
+ "develop.requires = develop.requires"
+ ],
+ "applyto_phase" : [
+ "develop"
],
"modules" : [
- "Module::Build",
- "Test::More",
"Dist::Zilla::PluginBundle::Author::KENTNL"
]
}
},
- "name" : "@Author::KENTNL/Prereqs::MatchInstalled",
- "version" : "0.1.3"
+ "name" : "@Author::KENTNL/always_latest_develop_bundle",
+ "version" : "0.001000"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Prereqs",
+ "config" : {
+ "Dist::Zilla::Plugin::Prereqs" : {
+ "phase" : "develop",
+ "type" : "requires"
+ }
+ },
+ "name" : "@Author::KENTNL/::Role::BundleDeps",
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
@@ -469,37 +658,52 @@
}
},
"name" : "Prereqs",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":InstallModules",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":IncModules",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":TestFiles",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ExecFiles",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ShareFiles",
- "version" : "4.300039"
+ "version" : "5.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":MainModule",
- "version" : "4.300039"
+ "version" : "5.013"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":AllFiles",
+ "version" : "5.013"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":NoFiles",
+ "version" : "5.013"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : "@Author::KENTNL/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
+ "version" : "5.013"
}
],
"zilla" : {
@@ -507,7 +711,7 @@
"config" : {
"is_trial" : "0"
},
- "version" : "4.300039"
+ "version" : "5.013"
}
},
"x_authority" : "cpan:KENTNL"
diff --git a/META.yml b/META.yml
index 15882c1..8a072f6 100644
--- a/META.yml
+++ b/META.yml
@@ -3,342 +3,460 @@ abstract: "Simple set-and-forget using of a '/share' directory in your projects
author:
- 'Kent Fredric <kentnl at cpan.org>'
build_requires:
- File::Spec: 0
- FindBin: 0
- IO::Handle: 0
- IPC::Open3: 0
- Module::Build: 0.4007
- Test::More: 0.98
- lib: 0
+ ExtUtils::MakeMaker: '0'
+ File::Spec::Functions: '0'
+ FindBin: '0'
+ List::Util: '0'
+ Test::More: '0.96'
+ lib: '0'
+ version: '0'
configure_requires:
- Module::Build: 0.4007
+ ExtUtils::MakeMaker: '6.30'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.300039, CPAN::Meta::Converter version 2.132661'
+generated_by: 'Dist::Zilla version 5.013, CPAN::Meta::Converter version 2.133380'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: File-ShareDir-ProjectDistDir
provides:
File::ShareDir::ProjectDistDir:
file: lib/File/ShareDir/ProjectDistDir.pm
- version: v0.5.2
+ version: '1.000000'
requires:
- Carp: 0
- File::ShareDir: 0
- Path::Class::Dir: 0
- Path::Class::File: 0
- Path::FindDev: 0
- Path::IsDev: 0
- Path::Tiny: 0
- Sub::Exporter: 0
- perl: 5.006
- strict: 0
- warnings: 0
+ Carp: '0'
+ File::ShareDir: '0'
+ Path::FindDev: '0'
+ Path::IsDev: '0'
+ Path::Tiny: '0'
+ Sub::Exporter: '0'
+ perl: '5.008'
+ strict: '0'
+ utf8: '0'
+ warnings: '0'
resources:
bugtracker: https://github.com/kentfredric/File-ShareDir-ProjectDistDir/issues
homepage: https://github.com/kentfredric/File-ShareDir-ProjectDistDir
repository: https://github.com/kentfredric/File-ShareDir-ProjectDistDir.git
-version: 0.5.2
+version: '1.000000'
x_BuiltWith:
modules:
- Carp: 1.32
- Dist::Zilla::PluginBundle::Author::KENTNL: 1.8.3
+ CPAN::Meta: '2.133380'
+ CPAN::Meta::Requirements: '2.125'
+ Carp: '1.32'
+ Dist::Zilla::Plugin::Authority: '1.006'
+ Dist::Zilla::Plugin::AutoPrereqs: '5.013'
+ Dist::Zilla::Plugin::ConfirmRelease: '5.013'
+ Dist::Zilla::Plugin::EOLTests: '0.02'
+ Dist::Zilla::Plugin::Git::Check: '2.020'
+ Dist::Zilla::Plugin::Git::Commit: '2.020'
+ Dist::Zilla::Plugin::Git::CommitBuild: '2.020'
+ Dist::Zilla::Plugin::Git::GatherDir: '2.020'
+ Dist::Zilla::Plugin::Git::NextRelease: '0.002010'
+ Dist::Zilla::Plugin::Git::NextVersion::Sanitized: '0.001000'
+ Dist::Zilla::Plugin::Git::Tag: '2.020'
+ Dist::Zilla::Plugin::GithubMeta: '0.42'
+ Dist::Zilla::Plugin::License: '5.013'
+ Dist::Zilla::Plugin::MakeMaker: '5.013'
+ Dist::Zilla::Plugin::Manifest: '5.013'
+ Dist::Zilla::Plugin::ManifestSkip: '5.013'
+ Dist::Zilla::Plugin::MetaConfig: '5.013'
+ Dist::Zilla::Plugin::MetaData::BuiltWith: '0.04000002'
+ Dist::Zilla::Plugin::MetaJSON: '5.013'
+ Dist::Zilla::Plugin::MetaProvides::Package: '2.000001'
+ Dist::Zilla::Plugin::MetaTests: '5.013'
+ Dist::Zilla::Plugin::MetaYAML: '5.013'
+ Dist::Zilla::Plugin::MinimumPerl: '1.003'
+ Dist::Zilla::Plugin::PkgVersion: '5.013'
+ Dist::Zilla::Plugin::PodCoverageTests: '5.013'
+ Dist::Zilla::Plugin::PodSyntaxTests: '5.013'
+ Dist::Zilla::Plugin::PodWeaver: '4.005'
+ Dist::Zilla::Plugin::Prereqs: '5.013'
+ Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled: '0.001000'
+ Dist::Zilla::Plugin::ReadmeAnyFromPod: '0.133360'
+ Dist::Zilla::Plugin::ReadmeFromPod: '0.21'
+ Dist::Zilla::Plugin::RunExtraTests: '0.018'
+ Dist::Zilla::Plugin::Test::CPAN::Changes: '0.008'
+ Dist::Zilla::Plugin::Test::Compile::PerFile: '0.001001'
+ Dist::Zilla::Plugin::Test::Kwalitee: '2.07'
+ Dist::Zilla::Plugin::Test::MinimumVersion: '2.000005'
+ Dist::Zilla::Plugin::Test::Perl::Critic: '2.112410'
+ Dist::Zilla::Plugin::Test::ReportPrereqs: '0.013'
+ Dist::Zilla::Plugin::TestRelease: '5.013'
+ Dist::Zilla::Plugin::Twitter: '0.025'
+ Dist::Zilla::Plugin::UploadToCPAN: '5.013'
+ Dist::Zilla::PluginBundle::Author::KENTNL: '2.012000'
Dist::Zilla::PluginBundle::Author::KENTNL::Lite: 1.7.2
- File::ShareDir: 1.03
- File::Spec: 3.44
- FindBin: 1.51
- IO::Handle: 1.35
- IPC::Open3: 1.15
- Module::Build: 0.4007
- Path::Class::Dir: 0.32
- Path::Class::File: 0.32
- Path::FindDev: 0.3.1
- Path::IsDev: 0.3.2
- Path::Tiny: 0.037
- Pod::Coverage::TrustPod: 0.100002
- Sub::Exporter: 0.986
- Test::CPAN::Changes: 0.23
- Test::CPAN::Meta: 0.23
- Test::Kwalitee: 1.15
- Test::More: 0.98
- Test::Pod: 1.48
- Test::Pod::Coverage: 1.08
- lib: 0.63
- perl: 'NA(skipped: perl)'
- strict: 1.08
- version: 0.9904
- warnings: 1.18
+ ExtUtils::MakeMaker: '6.90'
+ File::ShareDir: '1.03'
+ File::Spec::Functions: '3.47'
+ FindBin: '1.51'
+ List::Util: '1.38'
+ Path::FindDev: 0.4.2
+ Path::IsDev: '1.000002'
+ Path::Tiny: '0.052'
+ Pod::Coverage::TrustPod: '0.100003'
+ Sub::Exporter: '0.987'
+ Test::CPAN::Changes: '0.27'
+ Test::CPAN::Meta: '0.23'
+ Test::Kwalitee: '1.18'
+ Test::More: '1.001002'
+ Test::Pod: '1.48'
+ Test::Pod::Coverage: '1.08'
+ lib: '0.63'
+ strict: '1.08'
+ utf8: '1.13'
+ version: '0.9908'
+ warnings: '1.22'
perl:
- original: v5.19.3
+ original: v5.19.9
qv: 1
version:
- 5
- 19
- - 3
+ - 9
perl-config:
- gccversion: 4.7.2
+ gccversion: 4.8.2
myarchname: x86_64-linux
osname: linux
platform: linux
- uname: 'Linux 3.11.1-gentoo x86_64 GenuineIntel GNU/Linux'
+ uname: 'Linux 3.13.0-gentoo-r1 x86_64 GenuineIntel GNU/Linux'
x_Dist_Zilla:
perl:
- version: 5.019003
+ version: '5.019009'
plugins:
-
- class: Dist::Zilla::Plugin::Git::NextVersion
- name: '@Author::KENTNL/Git::NextVersion'
- version: 2.014
+ class: Dist::Zilla::Plugin::Git::NextVersion::Sanitized
+ config:
+ Dist::Zilla::Role::Version::Sanitize:
+ mantissa: '6'
+ normal_form: numify
+ name: '@Author::KENTNL/Git::NextVersion::Sanitized'
+ version: '0.001000'
-
class: Dist::Zilla::Plugin::MetaConfig
name: '@Author::KENTNL/MetaConfig'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::GithubMeta
name: '@Author::KENTNL/GithubMeta'
- version: 0.38
- -
- class: Dist::Zilla::Plugin::FinderCode
- name: '@Author::KENTNL/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
- version: 4.300039
+ version: '0.42'
-
class: Dist::Zilla::Plugin::MetaProvides::Package
config:
- Dist::Zilla::Plugin::MetaProvides::Package: {}
+ Dist::Zilla::Plugin::MetaProvides::Package:
+ finder_objects:
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: '@Author::KENTNL/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
+ version: '5.013'
Dist::Zilla::Role::MetaProvider::Provider:
- inherit_missing: 1
- inherit_version: 1
- meta_noindex: 1
+ inherit_missing: '1'
+ inherit_version: '1'
+ meta_noindex: '1'
name: '@Author::KENTNL/MetaProvides::Package'
- version: 1.15000000
+ version: '2.000001'
-
class: Dist::Zilla::Plugin::MetaData::BuiltWith
config:
Dist::Zilla::Plugin::MetaData::BuiltWith:
_stash_key: x_BuiltWith
- show_config: 1
- show_uname: 1
+ show_config: '1'
+ show_uname: '1'
uname:
uname_args:
- - '-s'
- - '-o'
- - '-r'
- - '-m'
- - '-i'
+ - -s
+ - -o
+ - -r
+ - -m
+ - -i
uname_call: uname
name: '@Author::KENTNL/MetaData::BuiltWith'
- version: 0.03000100
+ version: '0.04000002'
-
class: Dist::Zilla::Plugin::Git::GatherDir
name: '@Author::KENTNL/Git::GatherDir'
- version: 2.014
+ version: '2.020'
-
class: Dist::Zilla::Plugin::License
name: '@Author::KENTNL/License'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::MetaJSON
name: '@Author::KENTNL/MetaJSON'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::MetaYAML
name: '@Author::KENTNL/MetaYAML'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::Manifest
name: '@Author::KENTNL/Manifest'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::MetaTests
name: '@Author::KENTNL/MetaTests'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::PodCoverageTests
name: '@Author::KENTNL/PodCoverageTests'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::PodSyntaxTests
name: '@Author::KENTNL/PodSyntaxTests'
- version: 4.300039
+ version: '5.013'
-
- class: Dist::Zilla::Plugin::ReportVersions::Tiny
- name: '@Author::KENTNL/ReportVersions::Tiny'
- version: 1.09
+ class: Dist::Zilla::Plugin::Test::ReportPrereqs
+ name: '@Author::KENTNL/Test::ReportPrereqs'
+ version: '0.013'
-
class: Dist::Zilla::Plugin::Test::Kwalitee
name: '@Author::KENTNL/Test::Kwalitee'
- version: 2.06
+ version: '2.07'
-
class: Dist::Zilla::Plugin::EOLTests
name: '@Author::KENTNL/EOLTests'
- version: 0.02
+ version: '0.02'
-
class: Dist::Zilla::Plugin::Test::MinimumVersion
name: '@Author::KENTNL/Test::MinimumVersion'
- version: 2.000005
+ version: '2.000005'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: '@Author::KENTNL/Test::Compile::PerFile/AUTOVIV/:InstallModulesPM'
+ version: '5.013'
-
- class: Dist::Zilla::Plugin::Test::Compile
+ class: Dist::Zilla::Plugin::Test::Compile::PerFile
config:
- Dist::Zilla::Plugin::Test::Compile:
- module_finder:
- - ':InstallModules'
- script_finder:
- - ':ExecFiles'
- name: '@Author::KENTNL/Test::Compile'
- version: 2.033
+ Dist::Zilla::Plugin::Test::Compile::PerFile:
+ file:
+ - lib/File/ShareDir/ProjectDistDir.pm
+ path_translator: base64_filter
+ prefix: t/00-compile
+ skip: []
+ test_template: 01-basic.t.tpl
+ xt_mode: ~
+ name: '@Author::KENTNL/Test::Compile::PerFile'
+ version: '0.001001'
-
class: Dist::Zilla::Plugin::Test::Perl::Critic
name: '@Author::KENTNL/Test::Perl::Critic'
- version: 2.112410
- -
- class: Dist::Zilla::Plugin::PruneCruft
- name: '@Author::KENTNL/PruneCruft'
- version: 4.300039
+ version: '2.112410'
-
class: Dist::Zilla::Plugin::ManifestSkip
name: '@Author::KENTNL/ManifestSkip'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::PkgVersion
name: '@Author::KENTNL/PkgVersion'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::PodWeaver
+ config:
+ Dist::Zilla::Plugin::PodWeaver:
+ finder:
+ - ':InstallModules'
+ - ':ExecFiles'
+ plugins:
+ -
+ class: Pod::Weaver::Plugin::EnsurePod5
+ name: '@CorePrep/EnsurePod5'
+ version: '4.006'
+ -
+ class: Pod::Weaver::Plugin::H1Nester
+ name: '@CorePrep/H1Nester'
+ version: '4.006'
+ -
+ class: Pod::Weaver::Plugin::SingleEncoding
+ name: -SingleEncoding
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Name
+ name: Name
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Version
+ name: Version
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Region
+ name: prelude
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Generic
+ name: SYNOPSIS
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Generic
+ name: DESCRIPTION
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Generic
+ name: OVERVIEW
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Collect
+ name: METHODS
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Collect
+ name: ATTRIBUTES
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Collect
+ name: PRIVATE_ATTRIBUTES
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Collect
+ name: PRIVATE_METHODS
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Leftovers
+ name: Leftovers
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Region
+ name: postlude
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Authors
+ name: Authors
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Legal
+ name: Legal
+ version: '4.006'
name: '@Author::KENTNL/PodWeaver'
- version: 3.101642
+ version: '4.005'
-
- class: Dist::Zilla::Plugin::NextRelease
- name: '@Author::KENTNL/NextRelease'
- version: 4.300039
+ class: Dist::Zilla::Plugin::Git::NextRelease
+ name: '@Author::KENTNL/Git::NextRelease'
+ version: '0.002010'
-
class: Dist::Zilla::Plugin::AutoPrereqs
name: '@Author::KENTNL/AutoPrereqs'
- version: 4.300039
- -
- class: Dist::Zilla::Plugin::Prereqs
- config:
- Dist::Zilla::Plugin::Prereqs:
- phase: develop
- type: requires
- name: '@Author::KENTNL/Prereqs/BundleDevelNeeds'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::Prereqs
config:
Dist::Zilla::Plugin::Prereqs:
phase: develop
- type: recommends
- name: '@Author::KENTNL/Prereqs/BundleDevelRecommends'
- version: 4.300039
+ type: suggests
+ name: '@Author::KENTNL/BundleDevelSuggests'
+ version: '5.013'
-
class: Dist::Zilla::Plugin::Prereqs
config:
Dist::Zilla::Plugin::Prereqs:
phase: develop
- type: suggests
- name: '@Author::KENTNL/Prereqs/BundleDevelSuggests'
- version: 4.300039
+ type: requires
+ name: '@Author::KENTNL/BundleDevelRequires'
+ version: '5.013'
-
- class: Dist::Zilla::Plugin::Author::KENTNL::MinimumPerl
- name: '@Author::KENTNL/Author::KENTNL::MinimumPerl'
- version: 1.8.3
+ class: Dist::Zilla::Plugin::MinimumPerl
+ name: '@Author::KENTNL/MinimumPerl'
+ version: '1.003'
-
class: Dist::Zilla::Plugin::Authority
name: '@Author::KENTNL/Authority'
- version: 1.006
+ version: '1.006'
-
- class: Dist::Zilla::Plugin::ModuleBuild
- name: '@Author::KENTNL/ModuleBuild'
- version: 4.300039
+ class: Dist::Zilla::Plugin::MakeMaker
+ name: '@Author::KENTNL/MakeMaker'
+ version: '5.013'
-
class: Dist::Zilla::Plugin::ReadmeFromPod
name: '@Author::KENTNL/ReadmeFromPod'
- version: 0.18
+ version: '0.21'
-
class: Dist::Zilla::Plugin::ReadmeAnyFromPod
name: '@Author::KENTNL/ReadmeAnyFromPod'
- version: 0.131500
+ version: '0.133360'
-
class: Dist::Zilla::Plugin::Test::CPAN::Changes
name: '@Author::KENTNL/Test::CPAN::Changes'
- version: 0.008
+ version: '0.008'
-
- class: Dist::Zilla::Plugin::CheckExtraTests
- name: '@Author::KENTNL/CheckExtraTests'
- version: 0.011
+ class: Dist::Zilla::Plugin::RunExtraTests
+ name: '@Author::KENTNL/RunExtraTests'
+ version: '0.018'
-
class: Dist::Zilla::Plugin::TestRelease
name: '@Author::KENTNL/TestRelease'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::ConfirmRelease
name: '@Author::KENTNL/ConfirmRelease'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::Git::Check
name: '@Author::KENTNL/Git::Check'
- version: 2.014
+ version: '2.020'
-
class: Dist::Zilla::Plugin::Git::Tag
- name: '@Author::KENTNL/Git::Tag/tag_master'
- version: 2.014
+ name: '@Author::KENTNL/tag_master'
+ version: '2.020'
-
class: Dist::Zilla::Plugin::Git::Commit
name: '@Author::KENTNL/Git::Commit'
- version: 2.014
+ version: '2.020'
-
class: Dist::Zilla::Plugin::Git::CommitBuild
name: '@Author::KENTNL/Git::CommitBuild'
- version: 2.014
+ version: '2.020'
-
class: Dist::Zilla::Plugin::Git::Tag
- name: '@Author::KENTNL/Git::Tag/tag_release'
- version: 2.014
+ name: '@Author::KENTNL/tag_release'
+ version: '2.020'
-
class: Dist::Zilla::Plugin::UploadToCPAN
name: '@Author::KENTNL/UploadToCPAN'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::Twitter
name: '@Author::KENTNL/Twitter'
- version: 0.021
+ version: '0.025'
-
- class: Dist::Zilla::Plugin::Prereqs::MatchInstalled
+ class: Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled
config:
- Dist::Zilla::Plugin::Prereqs::MatchInstalled:
- applyto:
- - build.requires
- - build.recommends
- - build.suggests
- - test.requires
- - test.recommends
- - test.suggests
- - runtime.requires
- - runtime.recommends
- - runtime.suggests
- - configure.requires
- - configure.recommends
- - configure.suggests
- - develop.requires
- - develop.recommends
- - develop.suggests
+ Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled:
+ applyto_map:
+ - 'build.requires = build.recommends'
+ - 'test.requires = test.recommends'
+ - 'runtime.requires = runtime.recommends'
+ - 'configure.requires = configure.recommends'
+ - 'develop.requires = develop.recommends'
applyto_phase:
- build
- test
- runtime
- configure
- develop
- applyto_relation:
- - requires
- - recommends
- - suggests
modules:
- - Module::Build
+ - ExtUtils::MakeMaker
- Test::More
+ name: '@Author::KENTNL/Prereqs::Recommend::MatchInstalled'
+ version: '0.001000'
+ -
+ class: Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled
+ config:
+ Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled:
+ applyto_map:
+ - 'develop.requires = develop.requires'
+ applyto_phase:
+ - develop
+ modules:
- Dist::Zilla::PluginBundle::Author::KENTNL
- name: '@Author::KENTNL/Prereqs::MatchInstalled'
- version: 0.1.3
+ name: '@Author::KENTNL/always_latest_develop_bundle'
+ version: '0.001000'
+ -
+ class: Dist::Zilla::Plugin::Prereqs
+ config:
+ Dist::Zilla::Plugin::Prereqs:
+ phase: develop
+ type: requires
+ name: '@Author::KENTNL/::Role::BundleDeps'
+ version: '5.013'
-
class: Dist::Zilla::Plugin::Prereqs
config:
@@ -346,34 +464,46 @@ x_Dist_Zilla:
phase: runtime
type: requires
name: Prereqs
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':IncModules'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':TestFiles'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ExecFiles'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ShareFiles'
- version: 4.300039
+ version: '5.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':MainModule'
- version: 4.300039
+ version: '5.013'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':AllFiles'
+ version: '5.013'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':NoFiles'
+ version: '5.013'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: '@Author::KENTNL/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
+ version: '5.013'
zilla:
class: Dist::Zilla::Dist::Builder
config:
- is_trial: 0
- version: 4.300039
+ is_trial: '0'
+ version: '5.013'
x_authority: cpan:KENTNL
diff --git a/Makefile.PL b/Makefile.PL
new file mode 100644
index 0000000..43eeb50
--- /dev/null
+++ b/Makefile.PL
@@ -0,0 +1,82 @@
+
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.013.
+use strict;
+use warnings;
+
+use 5.008;
+
+use ExtUtils::MakeMaker 6.30;
+
+
+
+my %WriteMakefileArgs = (
+ "ABSTRACT" => "Simple set-and-forget using of a '/share' directory in your projects root",
+ "AUTHOR" => "Kent Fredric <kentnl\@cpan.org>",
+ "BUILD_REQUIRES" => {},
+ "CONFIGURE_REQUIRES" => {
+ "ExtUtils::MakeMaker" => "6.30"
+ },
+ "DISTNAME" => "File-ShareDir-ProjectDistDir",
+ "EXE_FILES" => [],
+ "LICENSE" => "perl",
+ "NAME" => "File::ShareDir::ProjectDistDir",
+ "PREREQ_PM" => {
+ "Carp" => 0,
+ "File::ShareDir" => 0,
+ "Path::FindDev" => 0,
+ "Path::IsDev" => 0,
+ "Path::Tiny" => 0,
+ "Sub::Exporter" => 0,
+ "strict" => 0,
+ "utf8" => 0,
+ "warnings" => 0
+ },
+ "TEST_REQUIRES" => {
+ "ExtUtils::MakeMaker" => 0,
+ "File::Spec::Functions" => 0,
+ "FindBin" => 0,
+ "List::Util" => 0,
+ "Test::More" => "0.96",
+ "lib" => 0,
+ "version" => 0
+ },
+ "VERSION" => "1.000000",
+ "test" => {
+ "TESTS" => "t/*.t t/00-compile/*.t t/classic/*.t t/deprecations/*.t t/strict/*.t"
+ }
+);
+
+
+my %FallbackPrereqs = (
+ "Carp" => 0,
+ "ExtUtils::MakeMaker" => 0,
+ "File::ShareDir" => 0,
+ "File::Spec::Functions" => 0,
+ "FindBin" => 0,
+ "List::Util" => 0,
+ "Path::FindDev" => 0,
+ "Path::IsDev" => 0,
+ "Path::Tiny" => 0,
+ "Sub::Exporter" => 0,
+ "Test::More" => "0.96",
+ "lib" => 0,
+ "strict" => 0,
+ "utf8" => 0,
+ "version" => 0,
+ "warnings" => 0
+);
+
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+ delete $WriteMakefileArgs{TEST_REQUIRES};
+ delete $WriteMakefileArgs{BUILD_REQUIRES};
+ $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
+}
+
+delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
+ unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
+
+WriteMakefile(%WriteMakefileArgs);
+
+
+
diff --git a/README b/README
index 21e4f67..9f3e999 100644
--- a/README
+++ b/README
@@ -3,7 +3,7 @@ NAME
'/share' directory in your projects root
VERSION
- version 0.5.2
+ version 1.000000
SYNOPSIS
package An::Example::Package;
@@ -33,7 +33,7 @@ METHODS
use File::ShareDir::ProjectDistDir (@args);
This uses "Sub::Exporter" to do the heavy lifting, so most usage of this
- module can be maximised by understanding that first.
+ module can be maximized by understanding that first.
* ":all"
@@ -96,6 +96,30 @@ METHODS
my $dir = dist_dir();
my $file = dist_file('path/to/file.pm' );
+ * "strict"
+
+ ->import( ... , strict => 1 );
+
+ This parameter specifies that all "dist" "sharedirs" will occur
+ within the "projectdir" directory using the following layout:
+
+ <root>/<projectdir>/dist/<DISTNAME>/
+
+ As opposed to
+
+ <root>/<projectdir>
+
+ This means if Heuristics misfire and accidentally find another
+ distributions "share" directory, it will not pick up on it unless
+ that "share" directory also has that layout, and will instead revert
+ to the "installdir" path in @INC
+
+ This parameter may become the default option in the future
+
+ Specifying this parameter also mandates you MUST declare the
+ "DISTNAME" value in your file somewhere. Doing otherwise is
+ considered insanity anyway.
+
* "defaults"
->import( ... , defaults => {
@@ -173,9 +197,12 @@ METHODS
"File::ShareDir::dist_dir".
As a result of this, specifying the Distribution name is not required
- during development, however, it will start to matter once it is
- installed. This is a potential avenues for bugs if you happen to name it
- wrong.
+ during development ( unless in "strict" mode ), however, it will start
+ to matter once it is installed. This is a potential avenues for bugs if
+ you happen to name it wrong.
+
+ In "strict" mode, the distribution name is ALWAYS REQUIRED, either at
+ least at "import" or "dist_dir()" time.
build_dist_file
use File::ShareDir::ProjectDirDir ( : all );
@@ -222,6 +249,117 @@ METHODS
apply to this method.
SIGNIFICANT CHANGES
+ 1.000000
+ Strict Mode.
+ Using Strict Mode
+ use File::ShareDir::ProjectDistDir ':all', strict => 1;
+ use File::ShareDir::ProjectDistDir 'dist_dir' => { defaults => { strict => 1 }};
+
+ Why you should use strict mode
+ Starting with 1.000000, there is a parameter "strict" that changes how
+ "sharedir" resolution performs.
+
+ Without strict:
+
+ lib/...
+ share/...
+
+ With strict
+
+ lib/...
+ share/dist/Dist-Name-Here/...
+
+ This technique greatly builds resilience to the long standing problem
+ with "develop" vs "install" heuristic ambiguity.
+
+ Here at least,
+
+ dist_dir('Dist-Name')
+
+ Will instead fall back to
+
+ @INC/auto/share/dist/Dist-Name
+
+ When
+
+ share/dist/Dist-Name
+
+ Does not exist.
+
+ This means if you have a layout like this:
+
+ <DEVROOT>/inc/<a local::lib path here>
+ <DEVROOT>/lib/<development files here>
+
+ Then when "Foo-Bar-Baz" is installed as:
+
+ <DEVROOT>/inc/lib/Foo/Bar/Baz.pm
+ <DEVROOT>/inc/lib/auto/share/dist/Foo-Bar-Baz
+
+ Then "Baz.pm" will not see the "DEVROOT" and assume "Hey, this is
+ development" and then proceed to try finding files in "DEVROOT/share"
+
+ Instead, "DEVROOT" must have "DEVROOT/share/dist/Foo-Bar-Baz" too,
+ otherwise it reverts to "DEVROOT/inc/lib/auto..."
+
+ "Path::Class" interfaces deprecated and dependency dropped.
+ If you have any dependence on this function, now is the time to get
+ yourself off it.
+
+ Minimum Changes to stay with "Path::Class" short term.
+ As the dependency has been dropped on "Path::Class", if you have "CPAN"
+ modules relying on "Path::Class" interface, you should now at a very
+ minimum start declaring
+
+ { requires => "Path::Class" }
+
+ This will keep your dist working, but will not be future proof against
+ further changes.
+
+ Staying with "Path::Class" long term.
+ Recommended approach if you want to stay using the "Path::Class"
+ interface:
+
+ use File::ShareDir::... etc
+ use Path::Class qw( dir file );
+
+ my $dir = dir( dist_dir('Dist-Name') );
+
+ This should future-proof you against anything File::ShareDir may do in
+ the future.
+
+ "Versioning Scheme arbitrary converted to float"
+ This change is a superficial one, and should have no bearing on how
+ significant you think this release is.
+
+ It is a significant release, but the primary reason for the version
+ change is simply to avoid compatibility issues in *versions themselves*.
+
+ However, outside that, "x.y.z" semantics are still intended to be
+ semi-meaningful, just with less "." and more 0 ☺
+
+ "dev" path determination now deferred to call time instead of "use"
+ This was essentially a required change to make "strict" mode plausible,
+ because strict mode _requires_ the "distname" to be known, even in the
+ development environment.
+
+ This should not have any user visible effects, but please, if you have
+ any problems, file a bug.
+
+ "file" component determination wrested from "File::ShareDir".
+ dist_file('foo','bar')
+
+ Is now simply sugar syntax for
+
+ path(dist_dir('foo'))->child('bar')
+
+ This should have no side effects in your code, but please file any bugs
+ you experience.
+
+ ( return value is still "undef" if the file does not exist, and still
+ "croak"'s if the file is not a file, or unreadable, but these may both
+ be subject to change )
+
0.5.0 - Heuristics and Return type changes
New "devdir" heuristic
Starting with 0.5.0, instead of using our simple "lib/../share" pattern
@@ -297,8 +435,8 @@ SIGNIFICANT CHANGES
qw( dist_dir dist_file ),
defaults => { pathtiny => 1 };
- For the time being, you can still get Path::Class objects back, but its
- likely to be deprecated in future.
+ For the time being, you can still get Path::Class objects back, it is
+ deprecated since 1.000000
( In fact, I may even make 2 specific sub-classes of "PDD" for people
who want objects back, as it will make the "API" and the code much
@@ -308,7 +446,7 @@ AUTHOR
Kent Fredric <kentnl at cpan.org>
COPYRIGHT AND LICENSE
- This software is copyright (c) 2013 by Kent Fredric <kentnl at cpan.org>.
+ This software is copyright (c) 2014 by Kent Fredric <kentnl at cpan.org>.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/dist.ini b/dist.ini
index b4ed504..14e38b8 100644
--- a/dist.ini
+++ b/dist.ini
@@ -9,7 +9,10 @@ copyright_holder = Kent Fredric <kentnl at cpan.org>
[@Author::KENTNL]
git_versions = 1
-no_fiveten = 1
+normal_form = numify
+mantissa = 6
+toolkit = eumm
+toolkit_hardness = soft
;version_major = 0
;version_minor = 1
; the following data denotes when this minor was minted
diff --git a/lib/File/ShareDir/ProjectDistDir.pm b/lib/File/ShareDir/ProjectDistDir.pm
index c27b0ea..d895b82 100644
--- a/lib/File/ShareDir/ProjectDistDir.pm
+++ b/lib/File/ShareDir/ProjectDistDir.pm
@@ -1,65 +1,425 @@
+use 5.008;
use strict;
use warnings;
+use utf8;
package File::ShareDir::ProjectDistDir;
-BEGIN {
- $File::ShareDir::ProjectDistDir::AUTHORITY = 'cpan:KENTNL';
+$File::ShareDir::ProjectDistDir::VERSION = '1.000000';
+# ABSTRACT: Simple set-and-forget using of a '/share' directory in your projects root
+
+our $AUTHORITY = 'cpan:KENTNL'; # AUTHORITY
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+use Path::IsDev qw();
+use Path::FindDev qw(find_dev);
+use Sub::Exporter qw(build_exporter);
+use File::ShareDir qw();
+
+my ($exporter) = build_exporter(
+ {
+ exports => [ dist_dir => \&build_dist_dir, dist_file => \&build_dist_file ],
+ groups => {
+ all => [qw( dist_dir dist_file )],
+ 'default' => [qw( dist_dir dist_file )],
+ },
+ collectors => [ 'defaults', ],
+ },
+);
+my $env_key = 'FILE_SHAREDIR_PROJECTDISTDIR_DEBUG';
+
+## no critic (Subroutines::ProhibitSubroutinePrototypes)
+sub _debug($) { }
+## use critic
+
+if ( $ENV{$env_key} ) {
+ ## no critic (ProtectPrivateVars,TestingAndDebugging::ProhibitNoWarnings)
+ no warnings 'redefine';
+ *File::ShareDir::ProjectDistDir::_debug = sub ($) {
+ *STDERR->printf( qq{[ProjectDistDir] %s\n}, $_[0] );
+ };
+ $Path::IsDev::DEBUG = 1;
+ $Path::FindDev::DEBUG = 1;
}
-{
- $File::ShareDir::ProjectDistDir::VERSION = '0.5.2';
+
+## no critic (RequireArgUnpacking)
+sub _croak { require Carp; goto &Carp::croak }
+sub _carp { require Carp; goto &Carp::carp }
+
+sub _path { require Path::Tiny; goto &Path::Tiny::path }
+
+sub _need_pathclass {
+ for my $package ( q[], q[::File], q[::Dir] ) {
+ ## no critic (Variables::RequireInitializationForLocalVars)
+ local $@ = undef;
+ my $code = sprintf 'require %s%s;1', 'Path::Class', $package;
+ ## no critic (BuiltinFunctions::ProhibitStringyEval,Lax::ProhibitStringyEval::ExceptForRequire)
+ next if eval $code;
+ my $err = $@;
+ _carp('Path::Class is not installed.');
+ ## no critic (RequireCarping, ErrorHandling::RequireUseOfExceptions)
+ die $err;
+ }
+ return 1;
}
-# ABSTRACT: Simple set-and-forget using of a '/share' directory in your projects root
-use Path::Class::File;
-use Path::IsDev qw();
-use Path::FindDev qw(find_dev);
-use Sub::Exporter qw(build_exporter);
-use File::ShareDir qw();
-my ($exporter) = build_exporter(
- {
- exports => [ dist_dir => \&build_dist_dir, dist_file => \&build_dist_file ],
- groups => {
- all => [qw( dist_dir dist_file )],
- 'default' => [qw( dist_dir dist_file )]
- },
- collectors => [ 'defaults', ],
- }
-);
-my $env_key = 'FILE_SHAREDIR_PROJECTDISTDIR_DEBUG';
-if ( $ENV{$env_key} ) {
- ## no critic (ProtectPrivateVars)
- *File::ShareDir::ProjectDistDir::_debug = sub ($) {
- *STDERR->printf( qq{[ProjectDistDir] %s\n}, $_[0] );
- };
- $Path::IsDev::DEBUG = 1;
- $Path::FindDev::DEBUG = 1;
-}
-else {
- ## no critic (ProtectPrivateVars)
- *File::ShareDir::ProjectDistDir::_debug = sub ($) { }
-}
-## no critic (RequireArgUnpacking)
-sub _croak { require Carp; goto &Carp::croak }
-sub _path { require Path::Tiny; goto &Path::Tiny::path }
-sub _pathclassfile { require Path::Class::File; return Path::Class::File->new(@_) }
-sub _pathclassdir { require Path::Class::Dir; return Path::Class::Dir->new(@_) }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
sub import {
my ( $class, @args ) = @_;
- my $has_defaults = undef;
- my ( $xclass, $xfilename, $xline ) = caller;
+ my ( undef, $xfilename, undef ) = caller;
my $defaults = {
filename => $xfilename,
projectdir => 'share',
pathclass => undef,
+ strict => undef,
};
if ( not @args ) {
@@ -71,13 +431,13 @@ sub import {
my ( $key, $value );
next unless $key = $args[$_] and $value = $args[ $_ + 1 ];
- if ( $key eq 'defaults' ) {
+ if ( 'defaults' eq $key ) {
$defaults = $value;
undef $args[$_];
undef $args[ $_ + 1 ];
next;
}
- for my $setting (qw( projectdir filename distname pathclass pathtiny )) {
+ for my $setting (qw( projectdir filename distname pathclass pathtiny strict )) {
if ( $key eq $setting and not ref $value ) {
$defaults->{$setting} = $value;
undef $args[$_];
@@ -90,29 +450,61 @@ sub import {
$defaults->{filename} = $xfilename if not defined $defaults->{filename};
$defaults->{projectdir} = 'share' if not defined $defaults->{projectdir};
+ if ( defined $defaults->{pathclass} ) {
+ _carp( 'Path::Class support depecated and will be removed from a future release.' . ' see Documentation for details' );
+ _need_pathclass();
+ }
+
@_ = ( $class, ( grep { defined } @args ), 'defaults' => $defaults );
goto $exporter;
}
-sub _devel_sharedir {
- my ( $filename, $subdir ) = @_;
- _debug( 'Working on: ' . $filename );
- my $dev = find_dev( _path($filename)->parent );
- return if not defined $dev;
- my $devel_share_dir = $dev->child($subdir);
- if ( -d $devel_share_dir ) {
- _debug( 'ISDEV : exists : <devroot>/' . $subdir . ' > ' . $devel_share_dir );
- return $devel_share_dir;
- }
- _debug( 'ISPROD: does not exist : <devroot>/' . $subdir . ' > ' . $devel_share_dir );
- #warn "Not a devel $dir";
- return;
-}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
sub _get_defaults {
@@ -129,67 +521,139 @@ sub _wrap_return {
return $value unless ref $value;
return "$value";
}
- if ( $type eq 'pathtiny' ) {
- return $value if ref $value eq 'Path::Tiny';
- return Path::Tiny::path($value);
+ if ( 'pathtiny' eq $type ) {
+ return $value if 'Path::Tiny' eq ref $value;
+ return _path($value);
}
- if ( $type eq 'pathclassdir' ) {
- return $value if ref $value eq 'Path::Class::Dir';
- require Path::Class::Dir;
+ if ( 'pathclassdir' eq $type ) {
+ return $value if 'Path::Class::Dir' eq ref $value;
+ _need_pathclass;
return Path::Class::Dir->new("$value");
}
- if ( $type eq 'pathclassfile' ) {
- return $value if ref $value eq 'Path::Class::File';
- require Path::Class::File;
+ if ( 'pathclassfile' eq $type ) {
+ return $value if 'Path::Class::File' eq ref $value;
+ _need_pathclass;
return Path::Class::File->new("$value");
}
return _croak("Unknown return type $type");
}
+our %DIST_DIR_CACHE;
+
+sub _get_cached_dist_dir_result {
+ my ( undef, $filename, $projectdir, $distname, $strict ) = @_;
+ if ( defined $DIST_DIR_CACHE{$distname} ) {
+ return $DIST_DIR_CACHE{$distname};
+ }
+ _debug( 'Working on: ' . $filename );
+ my $dev = find_dev( _path($filename)->parent );
+
+ if ( not defined $dev ) {
+ ## no critic (Variables::ProhibitPackageVars)
+ local $Carp::CarpLevel = $Carp::CarpLevel + 1;
+ return File::ShareDir::dist_dir($distname);
+ }
+
+ my $devel_share_dir = $dev->child($projectdir);
+
+ if ($strict) {
+ $devel_share_dir = $devel_share_dir->child( 'dist', $distname );
+ }
+ if ( -d $devel_share_dir ) {
+ _debug( 'ISDEV : exists : <devroot>/' . $devel_share_dir->relative($dev) );
+ return ( $DIST_DIR_CACHE{$distname} = $devel_share_dir );
+ }
+ _debug( 'ISPROD: does not exist : <devroot>/' . $devel_share_dir->relative($dev) );
+ ## no critic (Variables::ProhibitPackageVars)
+ local $Carp::CarpLevel = $Carp::CarpLevel + 1;
+ return File::ShareDir::dist_dir($distname);
+}
+
sub build_dist_dir {
- my ( $class, $name, $arg, $col ) = @_;
+ my ( $class, undef, $arg, $col ) = @_;
my $projectdir = _get_defaults( projectdir => $arg, $col );
my $pathclass = _get_defaults( pathclass => $arg, $col );
my $pathtiny = _get_defaults( pathtiny => $arg, $col );
+ my $strict = _get_defaults( strict => $arg, $col );
+ my $filename = _get_defaults( filename => $arg, $col );
my $wrap_return_type;
if ($pathclass) { $wrap_return_type = 'pathclassdir' }
if ($pathtiny) { $wrap_return_type = 'pathtiny' }
- my $root = _devel_sharedir( $col->{defaults}->{filename}, $projectdir );
-
my $distname = _get_defaults( distname => $arg, $col );
- # In dev
- if ($root) {
- return sub { return _wrap_return( $wrap_return_type, $root ) };
- }
-
- # Non-Dev, no hardcoded distname
if ( not $distname ) {
- my $string_method = \&File::ShareDir::dist_dir;
- return sub { return _wrap_return( $wrap_return_type, $string_method->(@_) ) };
+ return sub {
+ my ($udistname) = @_;
+ my $distdir = $class->_get_cached_dist_dir_result( $filename, $projectdir, $udistname, $strict );
+ return _wrap_return( $wrap_return_type, $distdir );
+ };
}
-
- # Non-Dev, hardcoded distname
- my $string_method = sub() {
- @_ = ($distname);
- goto &File::ShareDir::dist_dir;
+ return sub {
+ my $distdir = $class->_get_cached_dist_dir_result( $filename, $projectdir, $distname, $strict );
+ return _wrap_return( $wrap_return_type, $distdir );
};
- return sub { return _wrap_return( $wrap_return_type, $string_method->(@_) ) };
}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
sub build_dist_file {
- my ( $class, $name, $arg, $col ) = @_;
+ my ( $class, undef, $arg, $col ) = @_;
my $projectdir = _get_defaults( projectdir => $arg, $col );
my $pathclass = _get_defaults( pathclass => $arg, $col );
my $pathtiny = _get_defaults( pathtiny => $arg, $col );
- my $root = _devel_sharedir( $col->{defaults}->{filename}, $projectdir );
+ my $strict = _get_defaults( strict => $arg, $col );
+ my $filename = _get_defaults( filename => $arg, $col );
my $distname = _get_defaults( distname => $arg, $col );
@@ -198,42 +662,29 @@ sub build_dist_file {
if ($pathclass) { $wrap_return_type = 'pathclassfile' }
if ($pathtiny) { $wrap_return_type = 'pathtiny' }
- if ($root) {
- my $pathclass_method = sub {
- my $file = ( $distname ? $_[0] : $_[1] );
-
- # if the caller is devel, then we return the project root,
- # regardless of what package you asked for.
- # Might be bad, but we haven't imagined the scenario where yet.
- my $path_o = $root->child($file)->absolute;
- my $path_s = $path_o->stringify;
- ## no critic ( ProhibitExplicitReturnUndef )
- return undef unless -e $path_s;
- if ( not -f $path_s ) {
- return _croak("Found dist_file '$path_s', but not a file");
- }
- if ( not -r $path_s ) {
- return _croak("File '$path_s', no read permissions");
- }
- return $path_o;
- };
+ my $check_file = sub {
+ my ( $distdir, $wanted_file ) = @_;
+ my $child = _path($distdir)->child($wanted_file);
+ return unless -e $child;
+ if ( -d $child ) {
+ return _croak("Found dist_file '$child', but is a dir");
+ }
+ if ( not -r $child ) {
+ return _croak("File '$child', no read permissions");
+ }
+ return _wrap_return( $wrap_return_type, $child );
+ };
+ if ( not $distname ) {
return sub {
- return _wrap_return( $wrap_return_type, $pathclass_method->(@_) );
+ my ( $udistname, $wanted_file ) = @_;
+ my $distdir = $class->_get_cached_dist_dir_result( $filename, $projectdir, $udistname, $strict );
+ return $check_file->( $distdir, $wanted_file );
};
}
- if ( not $distname ) {
- my $string_method = \&File::ShareDir::dist_file;
- return sub { return _wrap_return( $wrap_return_type, $string_method->(@_) ) };
- }
- my $string_method = sub($) {
- if ( @_ != 1 or not defined $_[0] ) {
- return _croak('dist_file takes only one argument,a filename, due to distname being specified during import');
- }
- unshift @_, $distname;
- goto &File::ShareDir::dist_file;
- };
return sub {
- return _wrap_return( $wrap_return_type, $string_method->(@_) );
+ my ($wanted_file) = @_;
+ my $distdir = $class->_get_cached_dist_dir_result( $filename, $projectdir, $distname, $strict );
+ return $check_file->( $distdir, $wanted_file );
};
}
@@ -243,13 +694,15 @@ __END__
=pod
+=encoding UTF-8
+
=head1 NAME
File::ShareDir::ProjectDistDir - Simple set-and-forget using of a '/share' directory in your projects root
=head1 VERSION
-version 0.5.2
+version 1.000000
=head1 SYNOPSIS
@@ -280,7 +733,8 @@ you install that, you specify the different directory there also ) as follows:
use File::ShareDir::ProjectDistDir (@args);
-This uses L<< C<Sub::Exporter>|Sub::Exporter >> to do the heavy lifting, so most usage of this module can be maximised by understanding that first.
+This uses L<< C<Sub::Exporter>|Sub::Exporter >> to do the heavy lifting, so most usage of this module can be maximized by
+understanding that first.
=over 4
@@ -340,6 +794,26 @@ i.e:
my $dir = dist_dir();
my $file = dist_file('path/to/file.pm' );
+=item * B<C<strict>>
+
+ ->import( ... , strict => 1 );
+
+This parameter specifies that all C<dist> C<sharedirs> will occur within the C<projectdir> directory using the following layout:
+
+ <root>/<projectdir>/dist/<DISTNAME>/
+
+As opposed to
+
+ <root>/<projectdir>
+
+This means if Heuristics misfire and accidentally find another distributions C<share> directory, it will not pick up on it
+unless that C<share> directory also has that layout, and will instead revert to the C<installdir> path in C<@INC>
+
+B<This parameter may become the default option in the future>
+
+Specifying this parameter also mandates you B<MUST> declare the C<DISTNAME> value in your file somewhere. Doing otherwise is
+considered insanity anyway.
+
=item * B<C<defaults>>
->import( ... , defaults => {
@@ -415,12 +889,13 @@ which is mostly used internally, and their corresponding other values are packed
# And leverages Sub::Exporter to create 2 subs in your package.
-Generates the exported 'dist_dir' method. In development environments, the generated method will return
-a path to the development directories 'share' directory. In non-development environments, this simply returns
-C<File::ShareDir::dist_dir>.
+Generates the exported 'dist_dir' method. In development environments, the generated method will return a path to the
+development directories 'share' directory. In non-development environments, this simply returns C<File::ShareDir::dist_dir>.
+
+As a result of this, specifying the Distribution name is not required during development ( unless in C<strict> mode ), however,
+it will start to matter once it is installed. This is a potential avenues for bugs if you happen to name it wrong.
-As a result of this, specifying the Distribution name is not required during development, however, it will
-start to matter once it is installed. This is a potential avenues for bugs if you happen to name it wrong.
+In C<strict> mode, the distribution name is B<ALWAYS REQUIRED>, either at least at C<import> or C<dist_dir()> time.
=head2 build_dist_file
@@ -477,6 +952,117 @@ Caveats as a result of package-name as stated in L</build_dist_dir> also apply t
=head1 SIGNIFICANT CHANGES
+=head2 1.000000
+
+=head3 Strict Mode.
+
+=head4 Using Strict Mode
+
+ use File::ShareDir::ProjectDistDir ':all', strict => 1;
+ use File::ShareDir::ProjectDistDir 'dist_dir' => { defaults => { strict => 1 }};
+
+=head4 Why you should use strict mode
+
+Starting with C<1.000000>, there is a parameter C<strict> that changes
+how C<sharedir> resolution performs.
+
+Without strict:
+
+ lib/...
+ share/...
+
+With strict
+
+ lib/...
+ share/dist/Dist-Name-Here/...
+
+This technique greatly builds resilience to the long standing problem
+with "develop" vs "install" heuristic ambiguity.
+
+Here at least,
+
+ dist_dir('Dist-Name')
+
+Will instead fall back to
+
+ @INC/auto/share/dist/Dist-Name
+
+When
+
+ share/dist/Dist-Name
+
+Does not exist.
+
+This means if you have a layout like this:
+
+ <DEVROOT>/inc/<a local::lib path here>
+ <DEVROOT>/lib/<development files here>
+
+Then when C<Foo-Bar-Baz> is installed as:
+
+ <DEVROOT>/inc/lib/Foo/Bar/Baz.pm
+ <DEVROOT>/inc/lib/auto/share/dist/Foo-Bar-Baz
+
+Then C<Baz.pm> will not see the C<DEVROOT> and assume "Hey, this is development" and then proceed to try finding files in
+C<DEVROOT/share>
+
+Instead, C<DEVROOT> must have C<DEVROOT/share/dist/Foo-Bar-Baz> too, otherwise it reverts
+to C<DEVROOT/inc/lib/auto...>
+
+=head3 C<Path::Class> interfaces deprecated and dependency dropped.
+
+If you have any dependence on this function, now is the time to get yourself off it.
+
+=head4 Minimum Changes to stay with C<Path::Class> short term.
+
+As the dependency has been dropped on C<Path::Class>, if you have C<CPAN>
+modules relying on C<Path::Class> interface, you should now at a very minimum
+start declaring
+
+ { requires => "Path::Class" }
+
+This will keep your dist working, but will not be future proof against further changes.
+
+=head4 Staying with C<Path::Class> long term.
+
+Recommended approach if you want to stay using the C<Path::Class> interface:
+
+ use File::ShareDir::... etc
+ use Path::Class qw( dir file );
+
+ my $dir = dir( dist_dir('Dist-Name') );
+
+This should future-proof you against anything File::ShareDir may do in the future.
+
+=head3 C<Versioning Scheme arbitrary converted to float>
+
+This change is a superficial one, and should have no bearing on how significant you think this release is.
+
+It is a significant release, but the primary reason for the version change is simply to avoid compatibility issues in
+I<versions themselves>.
+
+However, outside that, C<x.y.z> semantics are still intended to be semi-meaningful, just with less C<.> and more C<0> ☺
+
+=head3 C<dev> path determination now deferred to call time instead of C<use>
+
+This was essentially a required change to make C<strict> mode plausible, because strict mode _requires_ the C<distname> to be
+known, even in the development environment.
+
+This should not have any user visible effects, but please, if you have any problems, file a bug.
+
+=head3 C<file> component determination wrested from C<File::ShareDir>.
+
+ dist_file('foo','bar')
+
+Is now simply sugar syntax for
+
+ path(dist_dir('foo'))->child('bar')
+
+This should have no side effects in your code, but please file any bugs you experience.
+
+( return value is still C<undef> if the file does not exist, and still C<croak>'s if the file is not a file, or unreadable, but
+these may both be subject to change )
+
=head2 0.5.0 - Heuristics and Return type changes
=head3 New C<devdir> heuristic
@@ -501,7 +1087,8 @@ For instance, have a look in C</usr/>
This would have the very bad side effect of anything installed in C</usr/lib> thinking its "in development".
-Fortunately, nobody seems to have hit this specific bug, which I suspect is due only to C</usr/lib> being a symbolic link on most x86_64 systems.
+Fortunately, nobody seems to have hit this specific bug, which I suspect is due only to C</usr/lib> being a symbolic link on most
+x86_64 systems.
=item * C<lib> is also reasonably common within C<CPAN> package names.
@@ -547,9 +1134,10 @@ Now you can also get C<Path::Tiny> objects back, by passing:
qw( dist_dir dist_file ),
defaults => { pathtiny => 1 };
-For the time being, you can still get Path::Class objects back, but its likely to be deprecated in future.
+B<< For the time being, you can still get Path::Class objects back, it is deprecated since 1.000000 >>
-( In fact, I may even make 2 specific sub-classes of C<PDD> for people who want objects back, as it will make the C<API> and the code much cleaner )
+( In fact, I may even make 2 specific sub-classes of C<PDD> for people who want objects back, as it will make the C<API> and the
+code much cleaner )
=head1 AUTHOR
@@ -557,7 +1145,7 @@ Kent Fredric <kentnl at cpan.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Kent Fredric <kentnl at cpan.org>.
+This software is copyright (c) 2014 by Kent Fredric <kentnl at cpan.org>.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/maint-travis-ci/.gitrepo b/maint-travis-ci/.gitrepo
new file mode 100644
index 0000000..b312d75
--- /dev/null
+++ b/maint-travis-ci/.gitrepo
@@ -0,0 +1,11 @@
+; DO NOT EDIT (unless you know what you are doing)
+;
+; This subdirectory is a git "subrepo", and this file is maintained by the
+; git-subrepo command. See https://github.com/ingydotnet/git-subrepo#readme
+;
+[subrepo]
+ remote = https://github.com/kentfredric/travis-scripts.git
+ branch = master
+ commit = 7c80dffae0d7e39b20582e368d85c290429219fa
+ former = 2a97d480cf5aa171c7499100babcf4707d3d5d9d
+ cmdver = 0.1.0
diff --git a/maint-travis-ci/.perltidyrc b/maint-travis-ci/.perltidyrc
new file mode 100644
index 0000000..3af28b5
--- /dev/null
+++ b/maint-travis-ci/.perltidyrc
@@ -0,0 +1,2 @@
+-i 2
+-l 130
diff --git a/maint-travis-ci/before_script.pl b/maint-travis-ci/before_script.pl
new file mode 100644
index 0000000..f852b51
--- /dev/null
+++ b/maint-travis-ci/before_script.pl
@@ -0,0 +1,31 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use tools;
+
+if ( not env_exists('STERILIZE_ENV') ) {
+ diag("\e[31mSTERILIZE_ENV \e[32munset\e[0m, skipping");
+ exit 0;
+}
+if ( env_is( 'TRAVIS_BRANCH', 'master' ) ) {
+ diag("before_script skipped, TRAVIS_BRANCH=master");
+ exit 0;
+}
+else {
+ if ( -e './Build.PL' ) {
+ safe_exec( $^X, './Build.PL' );
+ safe_exec("./Build");
+ exit 0;
+ }
+ if ( -e './Makefile.PL' ) {
+ safe_exec( $^X, './Makefile.PL' );
+ safe_exec("make");
+ exit 0;
+ }
+
+}
+
diff --git a/maint-travis-ci/branch_reset.pl b/maint-travis-ci/branch_reset.pl
new file mode 100644
index 0000000..0cc2257
--- /dev/null
+++ b/maint-travis-ci/branch_reset.pl
@@ -0,0 +1,51 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use tools;
+
+if ( not env_true('TRAVIS') ) {
+ diag('Is not running under travis!');
+ exit 1;
+}
+diag("Resetting branch to \e[32m$ENV{TRAVIS_BRANCH}\e[0m @ \e[33m$ENV{TRAVIS_COMMIT}\e[0m");
+git( 'checkout', $ENV{TRAVIS_BRANCH} );
+git( 'reset', '--hard', $ENV{TRAVIS_COMMIT} );
+my $goodtag;
+do {
+ my ( $output, $return ) = capture_stdout {
+ safe_exec_nonfatal( 'git', 'describe', '--tags', '--abbrev=0', $ENV{TRAVIS_BRANCH} );
+ };
+ ($goodtag) = split /\n/, $output;
+ if ( not $return ) {
+ diag("TIP Version tag is \e[32m$goodtag\e[0m");
+ }
+};
+my %good_tags;
+do {
+ my $output = capture_stdout {
+ git( 'log', '--simplify-by-decoration', '--pretty=format:%d' );
+ };
+ for my $line ( split /\n/, $output ) {
+ if ( $line =~ /\(tag:\s+(.*)\)/ ) {
+ my $tag = $1;
+ diag("Good tag: \e[32m$tag\e[0m");
+ $good_tags{$tag} = 1;
+ }
+ else {
+ diag("Line not matched regexp: <\e[31m$line\e[0m>");
+ }
+ }
+};
+do {
+ my $output = capture_stdout {
+ git('tag');
+ };
+ for my $line ( split /\n/, $output ) {
+ next if $good_tags{$line};
+ diag("Bad tag: \e[31m$line\e[0m");
+ git( 'tag', '-d', $line );
+ }
+};
diff --git a/maint-travis-ci/create_github_repo.pl b/maint-travis-ci/create_github_repo.pl
new file mode 100755
index 0000000..3499778
--- /dev/null
+++ b/maint-travis-ci/create_github_repo.pl
@@ -0,0 +1,38 @@
+#!/usr/bin/env perl
+# FILENAME: create_github_repo.pl
+# CREATED: 12/21/13 22:40:10 by Kent Fredric (kentnl) <kentfredric at gmail.com>
+# ABSTRACT: Create a github repo for the current repository
+
+use strict;
+use warnings;
+use utf8;
+use Carp qw(croak);
+
+sub _git_config {
+ my $key = shift;
+ chomp( my $value = `git config --get $key` );
+ croak "Unknown $key" unless $value;
+ return $value;
+}
+
+if ( not @ARGV == 2 ) {
+ die "$0 Repo-Name-Here \"Some Description\"";
+}
+
+my $github_user = _git_config('github.user');
+my $github_token = _git_config('github.token');
+
+use Net::GitHub;
+my $gh = Net::GitHub->new( access_token => $github_token );
+my $reponame = "git\@github.com:" . $github_user . "/" . $ARGV[0] . ".git";
+print "Creating $reponame \n";
+
+my $rp = $gh->repos->create(
+ {
+ name => $ARGV[0],
+ description => $ARGV[1],
+ }
+);
+
+system( 'git', 'remote', 'add', 'origin', $reponame );
+
diff --git a/maint-travis-ci/install_deps.pl b/maint-travis-ci/install_deps.pl
new file mode 100644
index 0000000..ab7277c
--- /dev/null
+++ b/maint-travis-ci/install_deps.pl
@@ -0,0 +1,87 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use utf8;
+
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use tools;
+
+if ( not env_exists('TRAVIS') ) {
+ diag('Is not running under travis!');
+ exit 1;
+}
+if ( not env_exists('STERILIZE_ENV') ) {
+ diag("\e[31STERILIZE_ENV is not set, skipping, because this is probably Travis's Default ( and unwanted ) target");
+ exit 0;
+}
+if ( env_is( 'TRAVIS_BRANCH', 'master' ) and env_is( 'TRAVIS_PERL_VERSION', '5.8' ) ) {
+ diag("\e[31minstalldeps skipped on 5.8 on master, because \@Git, a dependency of \@Author::KENTNL, is unavailble on 5.8\e[0m");
+ exit 0;
+}
+my (@params) = qw[ --quiet --notest --mirror http://cpan.metacpan.org/ --no-man-pages ];
+if ( env_true('DEVELOPER_DEPS') ) {
+ push @params, '--dev';
+}
+if ( env_is( 'TRAVIS_BRANCH', 'master' ) ) {
+ cpanm( @params, 'Devel::Confess' );
+ $ENV{PERL5OPT} = '-MDevel::Confess';
+ cpanm( @params, 'Dist::Zilla', 'Capture::Tiny', 'Pod::Weaver' );
+ cpanm( @params, '--dev', 'Dist::Zilla~>5.002', 'Pod::Weaver' );
+ safe_exec( 'git', 'config', '--global', 'user.email', 'kentfredric+travisci at gmail.com' );
+ safe_exec( 'git', 'config', '--global', 'user.name', 'Travis CI ( On behalf of Kent Fredric )' );
+
+ my $stdout = capture_stdout {
+ safe_exec( 'dzil', 'authordeps', '--missing' );
+ };
+
+ if ( $stdout !~ /^\s*$/msx ) {
+ cpanm( @params, split /\n/, $stdout );
+ }
+ $stdout = capture_stdout {
+ safe_exec( 'dzil', 'listdeps', '--author', '--versions', '--missing' );
+ };
+
+ if ( $stdout !~ /^\s*$/msx ) {
+ my @deps = split /\n/, $stdout;
+ my @parsedeps;
+ for my $dep ( split /\n/, $stdout ) {
+ diag("Missing: \e[31m$dep\e[0m");
+ if ( $dep =~ /^\s*([^=\s]+)\s*=\s*(.*$)/ ) {
+ my ( $module, $version ) = ( $1, $2 );
+ diag("Module: \e[31m$module\e[0m -> \e[32m$version\e[0m");
+ if ( $version =~ /^\s*0\s*$/ ) {
+ push @parsedeps, $module;
+ next;
+ }
+ if ( $version =~ /^v?[0-9._]+/ ) {
+ push @parsedeps, "$module~>=$version";
+ next;
+ }
+ push @parsedeps, "$module~$version";
+ }
+ }
+ cpanm( @params, @parsedeps );
+ }
+}
+else {
+ cpanm( @params, '--installdeps', '.' );
+ if ( env_true('AUTHOR_TESTING') or env_true('RELEASE_TESTING') ) {
+ my $prereqs = parse_meta_json()->effective_prereqs;
+ my $reqs = $prereqs->requirements_for( 'develop', 'requires' );
+ my @wanted;
+
+ for my $want ( $reqs->required_modules ) {
+ my $module_requirement = $reqs->requirements_for_module($want);
+ if ( $module_requirement =~ /^\d/ ) {
+ push @wanted, $want . '~>=' . $module_requirement;
+ next;
+ }
+ push @wanted, $want . '~' . $module_requirement;
+ }
+ cpanm( @params, @wanted );
+
+ }
+}
+
+exit 0;
diff --git a/maint-travis-ci/install_deps_early.pl b/maint-travis-ci/install_deps_early.pl
new file mode 100644
index 0000000..9a750df
--- /dev/null
+++ b/maint-travis-ci/install_deps_early.pl
@@ -0,0 +1,47 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use utf8;
+
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use tools;
+
+if ( not env_exists('TRAVIS') ) {
+ diag('Is not running under travis!');
+ exit 1;
+}
+if ( not env_exists('STERILIZE_ENV') ) {
+ diag("\e[31STERILIZE_ENV is not set, skipping, because this is probably Travis's Default ( and unwanted ) target");
+ exit 0;
+}
+
+# See https://github.com/dbsrgits/dbix-class/commit/8c11c33f8
+safe_exec_nonfatal( 'sudo', 'ip6tables', '-I', 'OUTPUT', '-d', 'api.metacpan.org', '-j', 'REJECT' );
+my (@params) = qw[ --quiet --notest --mirror http://cpan.metacpan.org/ --no-man-pages ];
+my ($branch) = $ENV{TRAVIS_BRANCH};
+my ($prefix) = './.travis_early_installdeps.';
+
+$branch =~ s{/}{_}g;
+my ($depsfile) = ( $prefix . $branch );
+my ($paramsfile) = ( $prefix . 'params.' . $branch );
+
+if ( not( -e $depsfile and -f $depsfile ) ) {
+ diag("\e[31m$depsfile does not exist, no extra deps\e[0m");
+ exit 0;
+}
+
+my (@deps) = split /\n/, do {
+ open my $fh, '<', $depsfile;
+ local $/ = undef;
+ scalar <$fh>;
+};
+if ( -e $paramsfile and -f $paramsfile ) {
+ push @params, split /\n/, do {
+ open my $fh, '<', $paramsfile;
+ local $/ = undef;
+ scalar <$fh>;
+ };
+}
+cpanm( @params, @deps );
+exit 0;
diff --git a/maint-travis-ci/lib/tools.pm b/maint-travis-ci/lib/tools.pm
new file mode 100644
index 0000000..4d43163
--- /dev/null
+++ b/maint-travis-ci/lib/tools.pm
@@ -0,0 +1,204 @@
+use strict;
+use warnings;
+
+package tools;
+
+use Cwd qw(cwd);
+use Config;
+
+sub capture_stdout(&) {
+ require Capture::Tiny;
+ goto &Capture::Tiny::capture_stdout;
+}
+
+sub diag {
+ my $handle = \*STDERR;
+ for (@_) {
+ print {$handle} $_;
+ }
+ print {$handle} "\n";
+}
+
+sub env_exists {
+ return exists $ENV{ $_[0] };
+}
+
+sub env_true {
+ return ( env_exists( $_[0] ) and $ENV{ $_[0] } );
+}
+sub env_is { return ( env_exists( $_[0] ) and $ENV{ $_[0] } eq $_[1] ) }
+
+sub safe_exec_nonfatal {
+ my ( $command, @params ) = @_;
+ diag("running $command @params");
+ my $exit = system( $command, @params );
+ if ( $exit != 0 ) {
+ my $low = $exit & 0b11111111;
+ my $high = $exit >> 8;
+ warn "$command failed: $? $! and exit = $high , flags = $low";
+ if ( $high != 0 ) {
+ return $high;
+ }
+ else {
+ return 1;
+ }
+
+ }
+ return 0;
+}
+
+sub safe_exec {
+ my ( $command, @params ) = @_;
+ my $exit_code = safe_exec_nonfatal( $command, @params );
+ if ( $exit_code != 0 ) {
+ exit $exit_code;
+ }
+ return 1;
+}
+
+sub cpanm {
+ my (@params) = @_;
+ my $cpanm_lines = 4000;
+ my $exit_code = safe_exec_nonfatal( 'cpanm', @params );
+ if ( $exit_code != 0 ) {
+ diag("\e[32m cpanm \e[0m failed, showing last \e[31m$cpanm_lines\e[0m lines");
+ safe_exec( 'tail', '-n', $cpanm_lines, '/home/travis/.cpanm/build.log' );
+ exit $exit_code;
+ }
+ return 1;
+}
+
+sub git {
+ my (@params) = @_;
+ safe_exec( 'git', @params );
+}
+
+my $got_fixes;
+
+sub get_fixes {
+ return if $got_fixes;
+ my $cwd = cwd();
+ chdir '/tmp';
+ safe_exec( 'git', 'clone', 'https://github.com/kentfredric/cpan-fixes.git' );
+ chdir $cwd;
+ $got_fixes = 1;
+}
+
+my $got_sterile;
+
+sub get_sterile {
+ return if $got_sterile;
+ my $cwd = cwd();
+ chdir '/tmp';
+ my $version = $];
+ safe_exec(
+ 'git', 'clone', '--depth=1',
+ '--branch=' . $version,
+ 'https://github.com/kentfredric/perl5-sterile.git',
+ 'perl5-sterile'
+ );
+ chdir $cwd;
+ $got_sterile = 1;
+}
+my $fixed_up;
+
+sub fixup_sterile {
+ return if $fixed_up;
+ get_sterile();
+ my $cwd = cwd();
+ chdir '/tmp/perl5-sterile';
+ safe_exec( 'bash', 'patch_fixlist.sh', '/home/travis/perl5/perlbrew/perls/' . $ENV{TRAVIS_PERL_VERSION} );
+ chdir $cwd;
+ $fixed_up = 1;
+}
+my $sterile_deployed;
+
+sub deploy_sterile {
+ return if $sterile_deployed;
+ cpanm( '--skip-satisfied', 'Capture::Tiny' );
+ require Capture::Tiny; # load before we oblitterate everything.
+
+ fixup_sterile();
+ for my $key ( keys %Config ) {
+ next unless $key =~ /(lib|arch)exp$/;
+ my $value = $Config{$key};
+ next unless defined $value;
+ next unless length $value;
+ my $clean_path = '/tmp/perl5-sterile/' . $key;
+ diag("\e[32m?$clean_path\e[0m");
+ if ( -e $clean_path and -d $clean_path ) {
+ diag("\e[31mRsyncing over $value\e[0m");
+ $clean_path =~ s{/?$}{/};
+ $value =~ s{/?$}{/};
+ safe_exec( 'rsync', '-a', '--delete-delay', $clean_path, $value );
+ }
+ }
+ for my $key ( keys %Config ) {
+ next unless $key =~ /(prefix|bin|scriptdir|script)exp$/;
+ my $value = $Config{$key};
+ next unless defined $value;
+ next unless length $value;
+ my $clean_path = '/tmp/perl5-sterile/' . $key;
+ diag("\e[32m?$clean_path\e[0m");
+ if ( -e $clean_path and -d $clean_path ) {
+ diag("\e[31mPre-Cleaning $value\e[0m");
+ my $content = capture_stdout {
+ safe_exec( 'find', $value, '-type', 'f', '-executable', '-print0' );
+ };
+ for my $file ( split /\0/, $content ) {
+ if ( -B $file ) {
+ diag("\e[33m: Protected\e[34m: $file\e[0m");
+ next;
+ }
+ unlink $file;
+ diag("\e[31m: Removed:\e[34m: $file\e[0m");
+ }
+ diag("\e[31mRsyncing over $value\e[0m");
+ $clean_path =~ s{/?$}{/};
+ $value =~ s{/?$}{/};
+ safe_exec( 'rsync', '-a', $clean_path, $value );
+ }
+ }
+}
+
+sub cpanm_fix {
+ my (@params) = @_;
+ get_fixes();
+ my $cwd = cwd();
+ chdir '/tmp/cpan-fixes';
+ cpanm(@params);
+ chdir $cwd;
+}
+
+sub parse_meta_json {
+ $_[0] ||= 'META.json';
+ require CPAN::Meta;
+ return CPAN::Meta->load_file( $_[0] );
+}
+
+sub import {
+ my ( $self, @args ) = @_;
+
+ my $caller = [caller]->[0];
+
+ my $caller_stash = do {
+ no strict 'refs';
+ *{ $caller . '::' };
+ };
+
+ $caller_stash->{diag} = *diag;
+ $caller_stash->{env_exists} = *env_exists;
+ $caller_stash->{env_true} = *env_true;
+ $caller_stash->{env_is} = *env_is;
+ $caller_stash->{safe_exec_nonfatal} = *safe_exec_nonfatal;
+ $caller_stash->{safe_exec} = *safe_exec;
+ $caller_stash->{cpanm} = *cpanm;
+ $caller_stash->{git} = *git;
+ $caller_stash->{get_fixes} = *get_fixes;
+ $caller_stash->{cpanm_fix} = *cpanm_fix;
+ $caller_stash->{parse_meta_json} = *parse_meta_json;
+ $caller_stash->{capture_stdout} = *capture_stdout;
+ $caller_stash->{deploy_sterile} = *deploy_sterile;
+}
+
+1;
diff --git a/maint-travis-ci/merge_travis_yml.pl b/maint-travis-ci/merge_travis_yml.pl
index fc33dca..3dd5ae6 100644
--- a/maint-travis-ci/merge_travis_yml.pl
+++ b/maint-travis-ci/merge_travis_yml.pl
@@ -12,16 +12,16 @@ my $template = find_dev('./')->child('.travis-template.yml');
my $target = find_dev('./')->child('.travis.yml');
if ( -f -e $template ) {
- require YAML::Loader;
- my $loader = YAML::Loader->new();
- $hashref = $loader->load( $template->slurp );
+ require YAML::Loader;
+ my $loader = YAML::Loader->new();
+ $hashref = $loader->load( $template->slurp );
}
if ( not exists $hashref->{language} ) {
- $hashref->{language} = 'perl';
+ $hashref->{language} = 'perl';
}
if ( not exists $hashref->{perl} ) {
- $hashref->{perl} = [ '5.18', '5.19' ];
+ $hashref->{perl} = [ '5.18', '5.19' ];
}
use Data::Dump qw(pp);
diff --git a/maint-travis-ci/report_fail_ctx.pl b/maint-travis-ci/report_fail_ctx.pl
new file mode 100644
index 0000000..8709ca0
--- /dev/null
+++ b/maint-travis-ci/report_fail_ctx.pl
@@ -0,0 +1,13 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use utf8;
+
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use tools;
+
+diag("\e[31mLast 4000 lines of cpanm build log\e[0m");
+safe_exec( 'tail', '-n', '4000', $ENV{HOME} . '/.cpanm/build.log' );
+
diff --git a/maint-travis-ci/script.pl b/maint-travis-ci/script.pl
new file mode 100644
index 0000000..6ed15eb
--- /dev/null
+++ b/maint-travis-ci/script.pl
@@ -0,0 +1,35 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use utf8;
+
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use tools;
+
+if ( not env_exists('TRAVIS') ) {
+ diag('Is not running under travis!');
+ exit 1;
+}
+if ( not env_exists('STERILIZE_ENV') ) {
+ diag("\e[31mSTERILIZE_ENV is not set, skipping, because this is probably Travis's Default ( and unwanted ) target");
+ exit 0;
+}
+if ( env_is( 'TRAVIS_BRANCH', 'master' ) and env_is( 'TRAVIS_PERL_VERSION', '5.8' ) ) {
+ diag("\e[31mscript skipped on 5.8 on master\e[32m, because \@Git, a dependency of \@Author::KENTNL, is unavailble on 5.8\e[0m");
+ exit 0;
+}
+if ( env_is( 'TRAVIS_BRANCH', 'master' ) ) {
+ $ENV{HARNESS_OPTIONS} = 'j100:c';
+ $ENV{PERL5OPT} = '-MDevel::Confess';
+ safe_exec( 'dzil', 'test', '--release' );
+}
+else {
+ my @paths = './t';
+
+ if ( env_true('AUTHOR_TESTING') or env_true('RELEASE_TESTING') ) {
+ push @paths, './xt';
+ }
+ safe_exec( 'prove', '--blib', '--shuffle', '--color', '--recurse', '--timer', '--jobs', 30, @paths );
+}
diff --git a/maint-travis-ci/sterilize_env.pl b/maint-travis-ci/sterilize_env.pl
index df4c9de..df9dc09 100644
--- a/maint-travis-ci/sterilize_env.pl
+++ b/maint-travis-ci/sterilize_env.pl
@@ -1,31 +1,23 @@
#!/usr/bin/env perl
use strict;
use warnings;
-use utf8;
-sub diag {
- print STDERR @_;
- print STDERR "\n";
-}
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use tools;
-if ( not exists $ENV{STERILIZE_ENV} ) {
- diag('STERILIZE_ENV unset');
- exit 0;
-}
-if ( $ENV{STERILIZE_ENV} < 1 ) {
- diag('STERLIZIE_ENV < 1, Not Sterilizing');
- exit 0;
+if ( not env_exists('STERILIZE_ENV') ) {
+ diag("\e[31STERILIZE_ENV is not set, skipping, because this is probably Travis's Default ( and unwanted ) target");
+ exit 0;
}
-if ( not exists $ENV{TRAVIS} ) {
- diag('Is not running under travis!');
- exit 1;
+if ( not env_true('STERILIZE_ENV') ) {
+ diag('STERILIZE_ENV unset or false, not sterilizing');
+ exit 0;
}
-for my $i (@INC) {
- next if $i !~ /site/;
- next if $i eq '.';
- diag( 'Sterilizing files in ' . $i );
- system( 'find', $i, '-type', 'f', '-delete' );
- diag( 'Sterilizing dirs in ' . $i );
- system( 'find', $i, '-depth', '-type', 'd', '-delete' );
+
+if ( not env_true('TRAVIS') ) {
+ diag('Is not running under travis!');
+ exit 1;
}
+deploy_sterile();
diff --git a/maint-travis-ci/sync_tree.pl b/maint-travis-ci/sync_tree.pl
index 542d325..6ca79e6 100755
--- a/maint-travis-ci/sync_tree.pl
+++ b/maint-travis-ci/sync_tree.pl
@@ -1,7 +1,10 @@
#!/usr/bin/env perl
use strict;
use warnings;
-use utf8;
+
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use tools;
use Path::FindDev qw( find_dev );
my $root = find_dev('./');
@@ -9,16 +12,70 @@ my $root = find_dev('./');
chdir "$root";
sub git_subtree {
- system( 'git', 'subtree', @_ ) == 0 or die "Git subtree had nonzero exit";
+ safe_exec( 'git', 'subtree', @_ );
+}
+
+sub git_subrepo {
+ safe_exec( 'git', 'subrepo', @_ );
}
my $travis = 'https://github.com/kentfredric/travis-scripts.git';
my $prefix = 'maint-travis-ci';
-if ( not -d -e $root->child($prefix) ) {
- git_subtree( 'add', '--prefix=' . $prefix, $travis, 'master' );
+my $opts = { pushas => 'incomming' };
+
+for my $id ( 0 .. $#ARGV ) {
+ my ($field) = $ARGV[$id];
+ next unless $field;
+ next unless $field =~ /^-+(.*?$)/;
+ my ($field_name) = $1;
+ my ($value) = $ARGV[ $id + 1 ];
+ undef $ARGV[$id];
+ undef $ARGV[ $id + 1 ];
+ if ( $field_name eq 'push' ) {
+ $opts->{push} = 1;
+ $opts->{push_to} = $value;
+ next;
+ }
+ if ( $field_name eq 'pushas' ) {
+ $opts->{pushas} = $value;
+ next;
+ }
+ if ( $field_name eq 'mc' ) {
+ $opts->{has_commit} = 1;
+ $opts->{commit} = $value;
+ next;
+ }
+}
+if ( not $opts->{push} ) {
+ my $commitish = 'master';
+ $commitish = $opts->{commit} if $opts->{has_commit};
+
+ if ( not -d -e $root->child($prefix) ) {
+ if ( $ENV{"SUBREPO"} ) {
+ git_subrepo( 'clone', $travis, $prefix, '-b', $commitish );
+ }
+ else {
+ git_subtree( 'add', '--squash', '--prefix=' . $prefix, $travis, $commitish );
+ }
+ }
+ else {
+ if ( $ENV{"SUBREPO"} ) {
+ git_subrepo( 'pull', $prefix, '-b', $commitish );
+ }
+ else {
+
+ git_subtree(
+ 'pull', '--squash', '-m',
+ 'Synchronise git subtree maint-travis-ci',
+ '--prefix=' . $prefix,
+ $travis, $commitish
+ );
+ }
+ }
}
else {
- git_subtree( 'pull', '-m', 'Synchronise git subtree maint-travis-ci', '--prefix=' . $prefix, $travis, 'master' );
+ die "NO!" if $ENV{"SUBREPO"};
+ git_subtree( 'push', '--prefix=' . $prefix, $opts->{push_to}, $opts->{pushas} );
}
diff --git a/maint-travis-ci/travis_enable.pl b/maint-travis-ci/travis_enable.pl
new file mode 100755
index 0000000..a6b902b
--- /dev/null
+++ b/maint-travis-ci/travis_enable.pl
@@ -0,0 +1,88 @@
+#!/usr/bin/env perl
+use v5.10;
+use strict;
+use warnings;
+use Carp;
+use Net::GitHub;
+use Getopt::Lucid ':all';
+use Path::Tiny;
+use FindBin;
+
+my $yamls = path($FindBin::Bin)->child('yamls');
+
+my $opts = Getopt::Lucid->getopt(
+ [
+ #<<< No perltidy
+ Param('repo|r'),
+ #>>>
+ ]
+);
+
+$opts->validate;
+
+sub _detect_repo {
+ my ($origin) = grep { /origin/ } `git remote -v`;
+
+ die "Couldn't determine origin\n" unless $origin;
+
+ chomp $origin;
+ $origin =~ s/^origin\s+//;
+ $origin =~ s/\s+\(.*$//;
+ if ( $origin =~ m{^.+?://github.com/([^/]+)/(.+)\.git$} ) {
+ return [ $1, $2 ];
+ }
+ elsif ( $origin =~ m{^git\@github\.com:([^/]+)/(.+)\.git$} ) {
+ return [ $1, $2 ];
+ }
+ else {
+ die "Can't determine repo name from '$origin'. Try manually with -r REPO\n";
+ }
+}
+
+sub _git_config {
+ my $key = shift;
+ chomp( my $value = `git config --get $key` );
+ croak "Unknown $key" unless $value;
+ return $value;
+}
+
+my $github_user = _git_config("github.user");
+my $github_token = _git_config("github.token");
+my $travis_token = _git_config("travis.token");
+
+my $gh = Net::GitHub->new( access_token => $github_token );
+
+my @repos;
+
+if ( $opts->get_repo ) {
+ @repos = $opts->get_repo;
+}
+else {
+ ( $github_user, @repos ) = @{ _detect_repo() };
+}
+
+my $hook_hash = {
+ name => 'travis',
+ config => {
+ token => $travis_token,
+ user => $github_user,
+ domain => '',
+ },
+ events => [qw/push pull_request issue_comment public member/],
+ active => 1,
+};
+
+my $repos = $gh->repos;
+$repos->set_default_user_repo( $github_user, $repos[0] );
+my $hook = eval { $repos->create_hook($hook_hash) };
+if ($@) {
+ say "Failed: $@";
+}
+else {
+ say "Enabled travis for $repos[0]";
+}
+
+unless ( -f '.travis.yml' ) {
+ $yamls->child('sterile2.yaml')->copy('./.travis.yml');
+ say "copied .travis.yml to current directory";
+}
diff --git a/maint-travis-ci/yamls/sterile.mkdn b/maint-travis-ci/yamls/sterile.mkdn
new file mode 100644
index 0000000..2091483
--- /dev/null
+++ b/maint-travis-ci/yamls/sterile.mkdn
@@ -0,0 +1,54 @@
+## ABOUT
+
+ sterile.yaml
+
+## Tests
+
+### Version conformance tests
+
+Every version of Perl that can be tested on travis is tested.
+
+ - perl: <V>
+ env: STERILIZE_ENV=0
+
+This is to test simply that the code works on that platform
+
+### Installable tests
+
+This tests both the maximum and minimum perls on travis to ensure
+that:
+
+ a. All dependencies are installable on all versions of Perl
+ b. No dependencies are inherently required by the code which are not specified.
+
+ - perl: <V>
+ env: STERILIZE_ENV=1
+
+Tree sterilization occurs here to ensure that only the versions of things
+that are provided by that version of perl exists prior to installing dependencies.
+
+### Pending upstream breakage
+
+This tests that of all the listed direct dependencies, that the code works as expected
+after upgrading to the latest version of all direct dependencies.
+
+Presently this only runs on the newest `perl` on travis, because it is seemed that
+if "-dev" versions are going to be a problem, they'll exhibit the same problems on all perls.
+
+Tree sterilization is not performed here, though may be in future, because that will reveal breakages
+between downstream dependencies.
+
+ - perl: <V>
+ env: STERILIZE_ENV=0 DEVELOPER_DEPS=1
+
+### Author Testing
+
+This is the most dependency expensive method, as this mode pulls in all dependencies
+listed in `develop.requires`, and additionally runs `xt/*`
+
+This is presently only performed on the latest perl due to the time expensiveness
+of this, requiring significantly more dependencies to perform tests.
+
+ - perl: <V>
+ env: STERILIZE_ENV=0 RELEASE_TESTING=1 AUTHOR_TESTING=1
+
diff --git a/maint-travis-ci/yamls/sterile.yaml b/maint-travis-ci/yamls/sterile.yaml
index df1af65..d32f20d 100644
--- a/maint-travis-ci/yamls/sterile.yaml
+++ b/maint-travis-ci/yamls/sterile.yaml
@@ -1,15 +1,40 @@
language: perl
-perl:
- - "5.16"
- - "5.14"
- - "5.18"
- - "5.19"
-env:
- matrix:
- - STERILIZE_ENV=0
- - STERILIZE_ENV=1
+matrix:
+ include:
+ - perl: "5.8"
+ env: STERILIZE_ENV=0
+ - perl: "5.10"
+ env: STERILIZE_ENV=0
+ - perl: "5.12"
+ env: STERILIZE_ENV=0
+ - perl: "5.14"
+ env: STERILIZE_ENV=0
+ - perl: "5.16"
+ env: STERILIZE_ENV=0
+ - perl: "5.18"
+ env: STERILIZE_ENV=0
+ - perl: "5.19"
+ env: STERILIZE_ENV=0
+ - perl: "5.12"
+ env: STERILIZE_ENV=1
+ - perl: "5.19"
+ env: STERILIZE_ENV=1
+ - perl: "5.19"
+ env: STERILIZE_ENV=0 DEVELOPER_DEPS=1
+ - perl: "5.19"
+ env: STERILIZE_ENV=0 RELEASE_TESTING=1 AUTHOR_TESTING=1
before_install:
- - perl ./maint-travis-ci/sterilize_env.pl
+ - perlbrew list
+ - time perl ./maint-travis-ci/branch_reset.pl
+ - time perl ./maint-travis-ci/sterilize_env.pl
+install:
+ - time perl ./maint-travis-ci/install_deps.pl
+before_script:
+ - time perl ./maint-travis-ci/before_script.pl
+script:
+ - time perl ./maint-travis-ci/script.pl
+after_failure:
+ - perl ./maint-travis-ci/report_fail_ctx.pl
branches:
only:
- "build/master"
diff --git a/maint-travis-ci/yamls/sterile2.yaml b/maint-travis-ci/yamls/sterile2.yaml
new file mode 100644
index 0000000..d0a6ce1
--- /dev/null
+++ b/maint-travis-ci/yamls/sterile2.yaml
@@ -0,0 +1,50 @@
+language: perl
+matrix:
+ allow_failures:
+ - perl: "5.8"
+ - env: STERILIZE_ENV=0 RELEASE_TESTING=1 AUTHOR_TESTING=1
+ - env: STERILIZE_ENV=0 DEVELOPER_DEPS=1
+ include:
+ - perl: "5.8"
+ env: STERILIZE_ENV=0
+ - perl: "5.10"
+ env: STERILIZE_ENV=0
+ - perl: "5.12"
+ env: STERILIZE_ENV=0
+ - perl: "5.14"
+ env: STERILIZE_ENV=0
+ - perl: "5.16"
+ env: STERILIZE_ENV=0
+ - perl: "5.18"
+ env: STERILIZE_ENV=0
+ - perl: "5.19"
+ env: STERILIZE_ENV=0
+ - perl: "5.8"
+ env: STERILIZE_ENV=1
+ - perl: "5.10"
+ env: STERILIZE_ENV=1
+ - perl: "5.19"
+ env: STERILIZE_ENV=1
+ - perl: "5.19"
+ env: STERILIZE_ENV=0 DEVELOPER_DEPS=1
+ - perl: "5.19"
+ env: STERILIZE_ENV=0 RELEASE_TESTING=1 AUTHOR_TESTING=1
+before_install:
+ - perlbrew list
+ - time perl ./maint-travis-ci/branch_reset.pl
+ - time perl ./maint-travis-ci/sterilize_env.pl
+install:
+ - time perl ./maint-travis-ci/install_deps_early.pl
+ - time perl ./maint-travis-ci/install_deps.pl
+before_script:
+ - time perl ./maint-travis-ci/before_script.pl
+script:
+ - time perl ./maint-travis-ci/script.pl
+after_failure:
+ - perl ./maint-travis-ci/report_fail_ctx.pl
+branches:
+ only:
+ - "master"
+ - "build/master"
+ - "releases"
+
diff --git a/maint/perlcritic.rc.gen.pl b/maint/perlcritic.rc.gen.pl
new file mode 100644
index 0000000..0b3d90b
--- /dev/null
+++ b/maint/perlcritic.rc.gen.pl
@@ -0,0 +1,45 @@
+#!/usr/bin/env perl
+# FILENAME: bundle_to_ini.pl
+# CREATED: 02/06/14 01:48:56 by Kent Fredric (kentnl) <kentfredric at gmail.com>
+# ABSTRACT: Write an INI file from a bundle
+
+use strict;
+use warnings;
+use utf8;
+
+use Carp qw( croak carp );
+use Perl::Critic::ProfileCompiler::Util qw( create_bundle );
+
+my $bundle = create_bundle('Example::Author::KENTNL');
+$bundle->configure;
+
+my @stopwords = ();
+for my $var (@stopwords) {
+ $bundle->add_or_append_policy_field( 'Documentation::PodSpelling' => ( 'stop_words' => $var ) );
+}
+$bundle->add_or_append_policy_field(
+ 'Subroutines::ProhibitCallsToUndeclaredSubs' => ( 'exempt_subs' => 'String::Formatter::str_rf' ), );
+
+$bundle->remove_policy('ValuesAndExpressions::RequireNumericVersion');
+
+#$bundle->remove_policy('ErrorHandling::RequireCarping');
+#$bundle->remove_policy('NamingConventions::Capitalization');
+
+my $inf = $bundle->actionlist->get_inflated;
+
+my $config = $inf->apply_config;
+{
+ open my $rcfile, '>', './perlcritic.rc' or croak 'Cant open perlcritic.rc';
+ $rcfile->print( $config->as_ini, "\n" );
+ close $rcfile or croak 'Something fubared closing perlcritic.rc';
+}
+my $deps = $inf->own_deps;
+{
+ open my $depsfile, '>', './perlcritic.deps' or croak 'Cant open perlcritic.deps';
+ for my $key ( sort keys %{$deps} ) {
+ $depsfile->printf( "%s~%s\n", $key, $deps->{$key} );
+ *STDERR->printf( "%s => %s\n", $key, $deps->{$key} );
+ }
+ close $depsfile or carp 'Something fubared closing perlcritic.deps';
+}
+
diff --git a/perlcritic.deps b/perlcritic.deps
new file mode 100644
index 0000000..282a34d
--- /dev/null
+++ b/perlcritic.deps
@@ -0,0 +1,15 @@
+Perl::Critic::Policy::Lax::RequireExplicitPackage::ExceptForPragmata~0
+Perl::Critic::Policy::Subroutines::ProhibitCallsToUndeclaredSubs~0
+Perl::Critic::Policy::Variables::ProhibitUnusedVarsStricter~0
+Perl::Critic::ProfileCompiler::Bundle::Bangs~0
+Perl::Critic::ProfileCompiler::Bundle::Compatibility~0
+Perl::Critic::ProfileCompiler::Bundle::Core~0
+Perl::Critic::ProfileCompiler::Bundle::Deprecated~0
+Perl::Critic::ProfileCompiler::Bundle::Itch~0
+Perl::Critic::ProfileCompiler::Bundle::Lax~0
+Perl::Critic::ProfileCompiler::Bundle::Moose~0
+Perl::Critic::ProfileCompiler::Bundle::More~0
+Perl::Critic::ProfileCompiler::Bundle::Pulp~0
+Perl::Critic::ProfileCompiler::Bundle::StricterSubs~0
+Perl::Critic::ProfileCompiler::Bundle::Swift~0
+Perl::Critic::ProfileCompiler::Bundle::Tics~0
diff --git a/perlcritic.rc b/perlcritic.rc
index ebc7a14..99c934b 100644
--- a/perlcritic.rc
+++ b/perlcritic.rc
@@ -1,23 +1,456 @@
-severity = 1
-exclude = RequireTidyCode RequirePodSections ProhibitPostfixControls RequireRcsKeywords RequireExplicitPackage
-include = Moose::ProhibitMultipleWiths Moose::ProhibitNewMethod Moose::RequireCleanNamespace Moose::RequireMakeImmutable
color = 1
+color-severity-low = green
+color-severity-medium = yellow
+only = 1
+severity = 1
verbose = 9
+[Bangs::ProhibitBitwiseOperators]
+
+[Bangs::ProhibitCommentedOutCode]
+
+[Bangs::ProhibitDebuggingModules]
+
+[-Bangs::ProhibitFlagComments]
+
+[Bangs::ProhibitNoPlan]
+
+[Bangs::ProhibitNumberedNames]
+
+[Bangs::ProhibitRefProtoOrProto]
+
+[Bangs::ProhibitUselessRegexModifiers]
+
+[Bangs::ProhibitVagueNames]
+
+[BuiltinFunctions::ProhibitBooleanGrep]
+
+[BuiltinFunctions::ProhibitComplexMappings]
+
+[BuiltinFunctions::ProhibitLvalueSubstr]
+
+[BuiltinFunctions::ProhibitReverseSortBlock]
+
+[BuiltinFunctions::ProhibitSleepViaSelect]
+
[BuiltinFunctions::ProhibitStringyEval]
allow_includes = 1
+[BuiltinFunctions::ProhibitStringySplit]
+
+[BuiltinFunctions::ProhibitUniversalCan]
+
+[BuiltinFunctions::ProhibitUniversalIsa]
+
+[BuiltinFunctions::ProhibitVoidGrep]
+
+[BuiltinFunctions::ProhibitVoidMap]
+
+[BuiltinFunctions::RequireBlockGrep]
+
+[BuiltinFunctions::RequireBlockMap]
+
+[BuiltinFunctions::RequireGlobFunction]
+
+[BuiltinFunctions::RequireSimpleSortBlock]
+
+[ClassHierarchies::ProhibitAutoloading]
+
+[ClassHierarchies::ProhibitExplicitISA]
+
+[ClassHierarchies::ProhibitOneArgBless]
+
+[CodeLayout::ProhibitFatCommaNewline]
+
+[CodeLayout::ProhibitHardTabs]
+
+[-CodeLayout::ProhibitHashBarewords]
+
+[CodeLayout::ProhibitIfIfSameLine]
+
+[CodeLayout::ProhibitParensWithBuiltins]
+
+[CodeLayout::ProhibitQuotedWordLists]
+
[CodeLayout::ProhibitTrailingWhitespace]
+[-CodeLayout::RequireASCII]
+
+[CodeLayout::RequireConsistentNewlines]
+
+[CodeLayout::RequireFinalSemicolon]
+
+[-CodeLayout::RequireTidyCode]
+
+[CodeLayout::RequireTrailingCommaAtNewline]
+
+[CodeLayout::RequireTrailingCommas]
+
+[CodeLayout::RequireUseUTF8]
+
+[Compatibility::ConstantLeadingUnderscore]
+
+[Compatibility::ConstantPragmaHash]
+
+[Compatibility::Gtk2Constants]
+
+[Compatibility::PerlMinimumVersionAndWhy]
+
+[-Compatibility::PodMinimumVersion]
+
+[Compatibility::ProhibitThreeArgumentOpen]
+
+[Compatibility::ProhibitUnixDevNull]
+
+[ControlStructures::ProhibitCStyleForLoops]
+
+[ControlStructures::ProhibitCascadingIfElse]
+
+[ControlStructures::ProhibitDeepNests]
+
+[ControlStructures::ProhibitLabelsWithSpecialBlockNames]
+
+[ControlStructures::ProhibitMutatingListFunctions]
+
+[ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions]
+
+[-ControlStructures::ProhibitPostfixControls]
+
+[ControlStructures::ProhibitUnlessBlocks]
+
+[ControlStructures::ProhibitUnreachableCode]
+
+[ControlStructures::ProhibitUntilBlocks]
+
[Documentation::PodSpelling]
-stop_words = maximised
+spell_command = aspell list --lang en_US
+
+[Documentation::ProhibitAdjacentLinks]
+
+[Documentation::ProhibitBadAproposMarkup]
+
+[Documentation::ProhibitDuplicateHeadings]
+
+[Documentation::ProhibitDuplicateSeeAlso]
+
+[Documentation::ProhibitLinkToSelf]
+
+[Documentation::ProhibitParagraphEndComma]
+
+[Documentation::ProhibitParagraphTwoDots]
+
+[Documentation::ProhibitUnbalancedParens]
+
+[Documentation::ProhibitVerbatimMarkup]
+
+[Documentation::RequireEndBeforeLastPod]
+
+[Documentation::RequireFinalCut]
+
+[Documentation::RequireLinkedURLs]
+
+[-Documentation::RequirePODUseEncodingUTF8]
+
+[Documentation::RequirePackageMatchesPodName]
+
+[Documentation::RequirePodAtEnd]
+
+[Documentation::RequirePodLinksIncludeText]
+
+[-Documentation::RequirePodSections]
+
+[-Editor::RequireEmacsFileVariables]
+
+[ErrorHandling::RequireCarping]
+
+[ErrorHandling::RequireCheckingReturnValueOfEval]
+
+[ErrorHandling::RequireUseOfExceptions]
+
+[InputOutput::ProhibitBacktickOperators]
+
+[InputOutput::ProhibitBarewordFileHandles]
+
+[InputOutput::ProhibitExplicitStdin]
+
+[InputOutput::ProhibitInteractiveTest]
+
+[InputOutput::ProhibitJoinedReadline]
+
+[InputOutput::ProhibitOneArgSelect]
+
+[InputOutput::ProhibitReadlineInForLoop]
+
+[InputOutput::ProhibitTwoArgOpen]
+
+[InputOutput::RequireBracedFileHandleWithPrint]
+
+[InputOutput::RequireBriefOpen]
+
+[InputOutput::RequireCheckedClose]
+
+[InputOutput::RequireCheckedOpen]
+
+[InputOutput::RequireCheckedSyscalls]
+
+[InputOutput::RequireEncodingWithUTF8Layer]
+
+[Lax::ProhibitComplexMappings::LinesNotStatements]
+
+[Lax::ProhibitEmptyQuotes::ExceptAsFallback]
+
+[Lax::ProhibitLeadingZeros::ExceptChmod]
+
+[Lax::ProhibitStringyEval::ExceptForRequire]
+
+[Lax::RequireEndWithTrueConst]
+
+[Lax::RequireExplicitPackage::ExceptForPragmata]
+allowed_pragmata = diagnostics feature perlversion strict warnings utf8
+
+[Miscellanea::ProhibitFormats]
+
+[Miscellanea::ProhibitTies]
+
+[Miscellanea::ProhibitUnrestrictedNoCritic]
+
+[-Miscellanea::ProhibitUselessNoCritic]
+
+[-Miscellanea::RequireRcsKeywords]
+
+[Miscellanea::TextDomainPlaceholders]
+
+[Miscellanea::TextDomainUnused]
+
+[Modules::PerlMinimumVersion]
+
+[Modules::ProhibitAutomaticExportation]
+
+[Modules::ProhibitConditionalUseStatements]
+
+[Modules::ProhibitEvilModules]
+
+[Modules::ProhibitExcessMainComplexity]
+
+[Modules::ProhibitModuleShebang]
+
+[Modules::ProhibitMultiplePackages]
+
+[Modules::ProhibitPOSIXimport]
+
+[Modules::ProhibitUseQuotedVersion]
+
+[Modules::RequireBarewordIncludes]
+
+[Modules::RequireEndWithOne]
+
+[-Modules::RequireExplicitInclusion]
+
+[-Modules::RequireExplicitPackage]
+
+[Modules::RequireFilenameMatchesPackage]
+
+[Modules::RequireNoMatchVarsWithUseEnglish]
+
+[Modules::RequirePerlVersion]
+
+[Modules::RequireVersionVar]
+
+[-Moose::ProhibitMultipleWiths]
+
+[Moose::ProhibitNewMethod]
+
+[Moose::RequireCleanNamespace]
+
+[Moose::RequireMakeImmutable]
+
+[NamingConventions::Capitalization]
+
+[NamingConventions::ProhibitAmbiguousNames]
+
+[NamingConventions::ProhibitMixedCaseSubs]
+
+[NamingConventions::ProhibitMixedCaseVars]
+
+[Objects::ProhibitIndirectSyntax]
+
+[References::ProhibitDoubleSigils]
+
+[RegularExpressions::ProhibitCaptureWithoutTest]
+
+[RegularExpressions::ProhibitComplexRegexes]
+
+[RegularExpressions::ProhibitEnumeratedClasses]
+
+[RegularExpressions::ProhibitEscapedMetacharacters]
+
+[RegularExpressions::ProhibitFixedStringMatches]
+
+[RegularExpressions::ProhibitSingleCharAlternation]
+
+[RegularExpressions::ProhibitUnusedCapture]
+
+[RegularExpressions::ProhibitUnusualDelimiters]
+
+[RegularExpressions::RequireBracesForMultiline]
+
+[RegularExpressions::RequireDotMatchAnything]
+
+[RegularExpressions::RequireExtendedFormatting]
+
+[RegularExpressions::RequireLineBoundaryMatching]
+
+[Subroutines::ProhibitAmpersandSigils]
+
+[Subroutines::ProhibitBuiltinHomonyms]
+
+[Subroutines::ProhibitCallsToUndeclaredSubs]
+exempt_subs = String::Formatter::str_rf
+
+[Subroutines::ProhibitCallsToUnexportedSubs]
+
+[Subroutines::ProhibitExcessComplexity]
+
+[Subroutines::ProhibitExplicitReturnUndef]
+
+[Subroutines::ProhibitExportingUndeclaredSubs]
+
+[Subroutines::ProhibitManyArgs]
+
+[Subroutines::ProhibitNestedSubs]
+
+[Subroutines::ProhibitQualifiedSubDeclarations]
+
+[Subroutines::ProhibitReturnSort]
+
+[Subroutines::ProhibitSubroutinePrototypes]
[Subroutines::ProhibitUnusedPrivateSubroutines]
private_name_regex = _(?!build_)\w
+[Subroutines::ProtectPrivateSubs]
+
+[Subroutines::RequireArgUnpacking]
+
+[Subroutines::RequireFinalReturn]
+
+[TestingAndDebugging::ProhibitNoStrict]
+
+[TestingAndDebugging::ProhibitNoWarnings]
+
+[TestingAndDebugging::ProhibitProlongedStrictureOverride]
+
+[TestingAndDebugging::RequireTestLabels]
+
[TestingAndDebugging::RequireUseStrict]
-equivalent_modules = Moose
+equivalent_modules = Moose Moo
[TestingAndDebugging::RequireUseWarnings]
-equivalent_modules = Moose
+equivalent_modules = Moose Moo
+
+[Tics::ProhibitLongLines]
+base_max = 130
+
+[Tics::ProhibitManyArrows]
+
+[Tics::ProhibitUseBase]
+
+[ValuesAndExpressions::ConstantBeforeLt]
+
+[ValuesAndExpressions::NotWithCompare]
+
+[ValuesAndExpressions::ProhibitArrayAssignAref]
+
+[ValuesAndExpressions::ProhibitBarewordDoubleColon]
+
+[ValuesAndExpressions::ProhibitCommaSeparatedStatements]
+
+[ValuesAndExpressions::ProhibitComplexVersion]
+
+[ValuesAndExpressions::ProhibitConstantPragma]
+
+[ValuesAndExpressions::ProhibitDuplicateHashKeys]
+
+[-ValuesAndExpressions::ProhibitEmptyCommas]
+
+[ValuesAndExpressions::ProhibitEmptyQuotes]
+
+[ValuesAndExpressions::ProhibitEscapedCharacters]
+
+[ValuesAndExpressions::ProhibitFiletest_f]
+
+[ValuesAndExpressions::ProhibitImplicitNewlines]
+
+[ValuesAndExpressions::ProhibitInterpolationOfLiterals]
+
+[ValuesAndExpressions::ProhibitLeadingZeros]
+
+[ValuesAndExpressions::ProhibitLongChainsOfMethodCalls]
+
+[-ValuesAndExpressions::ProhibitMagicNumbers]
+
+[ValuesAndExpressions::ProhibitMismatchedOperators]
+
+[ValuesAndExpressions::ProhibitMixedBooleanOperators]
+
+[ValuesAndExpressions::ProhibitNoisyQuotes]
+
+[ValuesAndExpressions::ProhibitNullStatements]
+
+[ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters]
+
+[ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator]
+
+[ValuesAndExpressions::ProhibitUnknownBackslash]
+
+[ValuesAndExpressions::ProhibitVersionStrings]
+
+[ValuesAndExpressions::RequireConstantOnLeftSideOfEquality]
+
+[ValuesAndExpressions::RequireConstantVersion]
+
+[ValuesAndExpressions::RequireInterpolationOfMetachars]
+
+[ValuesAndExpressions::RequireNumberSeparators]
+
+[-ValuesAndExpressions::RequireNumericVersion]
+
+[ValuesAndExpressions::RequireQuotedHeredocTerminator]
+
+[ValuesAndExpressions::RequireUpperCaseHeredocTerminator]
+
+[ValuesAndExpressions::RestrictLongStrings]
+
+[ValuesAndExpressions::UnexpandedSpecialLiteral]
+
+[Variables::ProhibitAugmentedAssignmentInDeclaration]
+
+[Variables::ProhibitConditionalDeclarations]
+
+[Variables::ProhibitEvilVariables]
+
+[Variables::ProhibitLocalVars]
+
+[Variables::ProhibitMatchVars]
+
+[Variables::ProhibitPackageVars]
+
+[Variables::ProhibitPerl4PackageNames]
+
+[-Variables::ProhibitPunctuationVars]
+
+[Variables::ProhibitReusedNames]
+
+[Variables::ProhibitUnusedVariables]
+
+[Variables::ProhibitUnusedVarsStricter]
+
+[Variables::ProtectPrivateVars]
+
+[Variables::RequireInitializationForLocalVars]
+
+[Variables::RequireLexicalLoopIterators]
+
+[Variables::RequireLocalizedPunctuationVars]
+[Variables::RequireNegativeIndices]
diff --git a/t/00-compile.t b/t/00-compile.t
deleted file mode 100644
index bc2d91c..0000000
--- a/t/00-compile.t
+++ /dev/null
@@ -1,46 +0,0 @@
-use strict;
-use warnings;
-
-# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.033
-
-use Test::More tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
-
-
-
-my @module_files = (
- 'File/ShareDir/ProjectDistDir.pm'
-);
-
-
-
-# no fake home requested
-
-use File::Spec;
-use IPC::Open3;
-use IO::Handle;
-
-my @warnings;
-for my $lib (@module_files)
-{
- # see L<perlfaq8/How can I capture STDERR from an external command?>
- open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
- my $stderr = IO::Handle->new;
-
- my $pid = open3($stdin, '>&STDERR', $stderr, $^X, '-Mblib', '-e', "require q[$lib]");
- binmode $stderr, ':crlf' if $^O eq 'MSWin32';
- my @_warnings = <$stderr>;
- waitpid($pid, 0);
- is($? >> 8, 0, "$lib loaded ok");
-
- if (@_warnings)
- {
- warn @_warnings;
- push @warnings, @_warnings;
- }
-}
-
-
-
-is(scalar(@warnings), 0, 'no warnings found') if $ENV{AUTHOR_TESTING};
-
-
diff --git a/t/00-compile/lib_File_ShareDir_ProjectDistDir_pm.t b/t/00-compile/lib_File_ShareDir_ProjectDistDir_pm.t
new file mode 100644
index 0000000..2351d8f
--- /dev/null
+++ b/t/00-compile/lib_File_ShareDir_ProjectDistDir_pm.t
@@ -0,0 +1,11 @@
+use strict;
+use warnings;
+
+# This test was generated for <lib/File/ShareDir/ProjectDistDir.pm>
+# using by Dist::Zilla::Plugin::Test::Compile::PerFile ( @Author::KENTNL/Test::Compile::PerFile ) version 0.001001
+# with template 01-basic.t.tpl
+
+use Test::More 0.89 tests => 1;
+
+require_ok("lib/File/ShareDir/ProjectDistDir.pm");
+
diff --git a/t/00-report-prereqs.t b/t/00-report-prereqs.t
new file mode 100644
index 0000000..701ab7b
--- /dev/null
+++ b/t/00-report-prereqs.t
@@ -0,0 +1,232 @@
+#!perl
+
+use strict;
+use warnings;
+
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.013
+
+use Test::More tests => 1;
+
+use ExtUtils::MakeMaker;
+use File::Spec::Functions;
+use List::Util qw/max/;
+use version;
+
+# hide optional CPAN::Meta modules from prereq scanner
+# and check if they are available
+my $cpan_meta = "CPAN::Meta";
+my $cpan_meta_req = "CPAN::Meta::Requirements";
+my $HAS_CPAN_META = eval "require $cpan_meta"; ## no critic
+my $HAS_CPAN_META_REQ = eval "require $cpan_meta_req; $cpan_meta_req->VERSION('2.120900')";
+
+# Verify requirements?
+my $DO_VERIFY_PREREQS = 1;
+
+sub _merge_requires {
+ my ($collector, $prereqs) = @_;
+ for my $phase ( qw/configure build test runtime develop/ ) {
+ next unless exists $prereqs->{$phase};
+ if ( my $req = $prereqs->{$phase}{'requires'} ) {
+ my $cmr = CPAN::Meta::Requirements->from_string_hash( $req );
+ $collector->add_requirements( $cmr );
+ }
+ }
+}
+
+my %include = map {; $_ => 1 } qw(
+
+);
+
+my %exclude = map {; $_ => 1 } qw(
+
+);
+
+# Add static prereqs to the included modules list
+my $static_prereqs = do { my $x = {
+ 'configure' => {
+ 'recommends' => {
+ 'ExtUtils::MakeMaker' => '6.90'
+ },
+ 'requires' => {
+ 'ExtUtils::MakeMaker' => '6.30'
+ }
+ },
+ 'develop' => {
+ 'requires' => {
+ 'Dist::Zilla::Plugin::Authority' => '1.006',
+ 'Dist::Zilla::Plugin::AutoPrereqs' => '0',
+ 'Dist::Zilla::Plugin::ConfirmRelease' => '0',
+ 'Dist::Zilla::Plugin::EOLTests' => '0',
+ 'Dist::Zilla::Plugin::Git::Check' => '0',
+ 'Dist::Zilla::Plugin::Git::Commit' => '0',
+ 'Dist::Zilla::Plugin::Git::CommitBuild' => '0',
+ 'Dist::Zilla::Plugin::Git::GatherDir' => '0',
+ 'Dist::Zilla::Plugin::Git::NextRelease' => '0',
+ 'Dist::Zilla::Plugin::Git::NextVersion::Sanitized' => '0',
+ 'Dist::Zilla::Plugin::Git::Tag' => '0',
+ 'Dist::Zilla::Plugin::GithubMeta' => '0',
+ 'Dist::Zilla::Plugin::License' => '0',
+ 'Dist::Zilla::Plugin::MakeMaker' => '0',
+ 'Dist::Zilla::Plugin::Manifest' => '0',
+ 'Dist::Zilla::Plugin::ManifestSkip' => '0',
+ 'Dist::Zilla::Plugin::MetaConfig' => '0',
+ 'Dist::Zilla::Plugin::MetaData::BuiltWith' => '0',
+ 'Dist::Zilla::Plugin::MetaJSON' => '0',
+ 'Dist::Zilla::Plugin::MetaProvides::Package' => '1.14000001',
+ 'Dist::Zilla::Plugin::MetaTests' => '0',
+ 'Dist::Zilla::Plugin::MetaYAML' => '0',
+ 'Dist::Zilla::Plugin::MinimumPerl' => '0',
+ 'Dist::Zilla::Plugin::PkgVersion' => '0',
+ 'Dist::Zilla::Plugin::PodCoverageTests' => '0',
+ 'Dist::Zilla::Plugin::PodSyntaxTests' => '0',
+ 'Dist::Zilla::Plugin::PodWeaver' => '0',
+ 'Dist::Zilla::Plugin::Prereqs' => '0',
+ 'Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled' => '0',
+ 'Dist::Zilla::Plugin::ReadmeAnyFromPod' => '0',
+ 'Dist::Zilla::Plugin::ReadmeFromPod' => '0',
+ 'Dist::Zilla::Plugin::RunExtraTests' => '0',
+ 'Dist::Zilla::Plugin::Test::CPAN::Changes' => '0',
+ 'Dist::Zilla::Plugin::Test::Compile::PerFile' => '0',
+ 'Dist::Zilla::Plugin::Test::Kwalitee' => '0',
+ 'Dist::Zilla::Plugin::Test::MinimumVersion' => '0',
+ 'Dist::Zilla::Plugin::Test::Perl::Critic' => '0',
+ 'Dist::Zilla::Plugin::Test::ReportPrereqs' => '0',
+ 'Dist::Zilla::Plugin::TestRelease' => '0',
+ 'Dist::Zilla::Plugin::Twitter' => '0',
+ 'Dist::Zilla::Plugin::UploadToCPAN' => '0',
+ 'Dist::Zilla::PluginBundle::Author::KENTNL' => '2.012000',
+ 'Pod::Coverage::TrustPod' => '0',
+ 'Test::CPAN::Changes' => '0.19',
+ 'Test::CPAN::Meta' => '0',
+ 'Test::Kwalitee' => '1.12',
+ 'Test::Pod' => '1.41',
+ 'Test::Pod::Coverage' => '1.08'
+ },
+ 'suggests' => {
+ 'Dist::Zilla::PluginBundle::Author::KENTNL::Lite' => 'v1.3.0'
+ }
+ },
+ 'runtime' => {
+ 'requires' => {
+ 'Carp' => '0',
+ 'File::ShareDir' => '0',
+ 'Path::FindDev' => '0',
+ 'Path::IsDev' => '0',
+ 'Path::Tiny' => '0',
+ 'Sub::Exporter' => '0',
+ 'perl' => '5.008',
+ 'strict' => '0',
+ 'utf8' => '0',
+ 'warnings' => '0'
+ }
+ },
+ 'test' => {
+ 'recommends' => {
+ 'CPAN::Meta' => '0',
+ 'CPAN::Meta::Requirements' => '2.120900',
+ 'ExtUtils::MakeMaker' => '6.90',
+ 'Test::More' => '1.001002'
+ },
+ 'requires' => {
+ 'ExtUtils::MakeMaker' => '0',
+ 'File::Spec::Functions' => '0',
+ 'FindBin' => '0',
+ 'List::Util' => '0',
+ 'Test::More' => '0.96',
+ 'lib' => '0',
+ 'version' => '0'
+ }
+ }
+ };
+ $x;
+ };
+
+delete $static_prereqs->{develop} if not $ENV{AUTHOR_TESTING};
+$include{$_} = 1 for map { keys %$_ } map { values %$_ } values %$static_prereqs;
+
+# Merge requirements for major phases (if we can)
+my $all_requires;
+if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META_REQ ) {
+ $all_requires = $cpan_meta_req->new;
+ _merge_requires($all_requires, $static_prereqs);
+}
+
+
+# Add dynamic prereqs to the included modules list (if we can)
+my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
+if ( $source && $HAS_CPAN_META ) {
+ if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
+ my $dynamic_prereqs = $meta->prereqs;
+ delete $dynamic_prereqs->{develop} if not $ENV{AUTHOR_TESTING};
+ $include{$_} = 1 for map { keys %$_ } map { values %$_ } values %$dynamic_prereqs;
+
+ if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META_REQ ) {
+ _merge_requires($all_requires, $dynamic_prereqs);
+ }
+ }
+}
+else {
+ $source = 'static metadata';
+}
+
+my @modules = sort grep { ! $exclude{$_} } keys %include;
+my @reports = [qw/Version Module/];
+my @dep_errors;
+my $req_hash = defined($all_requires) ? $all_requires->as_string_hash : {};
+
+for my $mod ( @modules ) {
+ next if $mod eq 'perl';
+ my $file = $mod;
+ $file =~ s{::}{/}g;
+ $file .= ".pm";
+ my ($prefix) = grep { -e catfile($_, $file) } @INC;
+ if ( $prefix ) {
+ my $ver = MM->parse_version( catfile($prefix, $file) );
+ $ver = "undef" unless defined $ver; # Newer MM should do this anyway
+ push @reports, [$ver, $mod];
+
+ if ( $DO_VERIFY_PREREQS && $all_requires ) {
+ my $req = $req_hash->{$mod};
+ if ( defined $req && length $req ) {
+ if ( ! defined eval { version->parse($ver) } ) {
+ push @dep_errors, "$mod version '$ver' cannot be parsed (version '$req' required)";
+ }
+ elsif ( ! $all_requires->accepts_module( $mod => $ver ) ) {
+ push @dep_errors, "$mod version '$ver' is not in required range '$req'";
+ }
+ }
+ }
+
+ }
+ else {
+ push @reports, ["missing", $mod];
+
+ if ( $DO_VERIFY_PREREQS && $all_requires ) {
+ my $req = $req_hash->{$mod};
+ if ( defined $req && length $req ) {
+ push @dep_errors, "$mod is not installed (version '$req' required)";
+ }
+ }
+ }
+}
+
+if ( @reports ) {
+ my $vl = max map { length $_->[0] } @reports;
+ my $ml = max map { length $_->[1] } @reports;
+ splice @reports, 1, 0, ["-" x $vl, "-" x $ml];
+ diag "\nVersions for all modules listed in $source (including optional ones):\n",
+ map {sprintf(" %*s %*s\n",$vl,$_->[0],-$ml,$_->[1])} @reports;
+}
+
+if ( @dep_errors ) {
+ diag join("\n",
+ "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
+ "The following REQUIRED prerequisites were not satisfied:\n",
+ @dep_errors,
+ "\n"
+ );
+}
+
+pass;
+
+# vim: ts=4 sts=4 sw=4 et:
diff --git a/t/000-report-versions-tiny.t b/t/000-report-versions-tiny.t
deleted file mode 100644
index a3d3dcc..0000000
--- a/t/000-report-versions-tiny.t
+++ /dev/null
@@ -1,95 +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.09\n";
-
-eval { # no excuses!
- # report our Perl details
- my $want = '5.006';
- $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('Carp','any version') };
-eval { $v .= pmver('Dist::Zilla::PluginBundle::Author::KENTNL','v1.8.3') };
-eval { $v .= pmver('Dist::Zilla::PluginBundle::Author::KENTNL::Lite','v1.3.0') };
-eval { $v .= pmver('File::ShareDir','any version') };
-eval { $v .= pmver('File::Spec','any version') };
-eval { $v .= pmver('FindBin','any version') };
-eval { $v .= pmver('IO::Handle','any version') };
-eval { $v .= pmver('IPC::Open3','any version') };
-eval { $v .= pmver('Module::Build','0.4007') };
-eval { $v .= pmver('Path::Class::Dir','any version') };
-eval { $v .= pmver('Path::Class::File','any version') };
-eval { $v .= pmver('Path::FindDev','any version') };
-eval { $v .= pmver('Path::IsDev','any version') };
-eval { $v .= pmver('Path::Tiny','any version') };
-eval { $v .= pmver('Pod::Coverage::TrustPod','any version') };
-eval { $v .= pmver('Sub::Exporter','any version') };
-eval { $v .= pmver('Test::CPAN::Changes','0.19') };
-eval { $v .= pmver('Test::CPAN::Meta','any version') };
-eval { $v .= pmver('Test::Kwalitee','1.08') };
-eval { $v .= pmver('Test::More','0.98') };
-eval { $v .= pmver('Test::Pod','1.41') };
-eval { $v .= pmver('Test::Pod::Coverage','1.08') };
-eval { $v .= pmver('lib','any version') };
-eval { $v .= pmver('strict','any version') };
-eval { $v .= pmver('version','0.9901') };
-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;
diff --git a/t/01_files/lib/Example_01.pm b/t/01_files/lib/Example_01.pm
deleted file mode 100644
index 86ad549..0000000
--- a/t/01_files/lib/Example_01.pm
+++ /dev/null
@@ -1,14 +0,0 @@
-use strict;
-use warnings;
-
-package Example_01;
-
-use File::ShareDir::ProjectDistDir;
-
-use Path::Class::File;
-
-sub test {
- return scalar Path::Class::File->new( dist_file( 'Example_01', 'file' ) )->slurp();
-}
-
-1;
diff --git a/t/02_files/develdir/lib/Example_03.pm b/t/02_files/develdir/lib/Example_03.pm
deleted file mode 100644
index b5bdd64..0000000
--- a/t/02_files/develdir/lib/Example_03.pm
+++ /dev/null
@@ -1,14 +0,0 @@
-use strict;
-use warnings;
-
-package Example_03;
-
-#use File::ShareDir::ProjectDistDir;
-
-#use Path::Class::File;
-
-#sub test {
-# return scalar Path::Class::File->new( dist_file('Example_01', 'file') )->slurp();
-#}
-
-1;
diff --git a/t/02_files/installdir/lib/Example_02.pm b/t/02_files/installdir/lib/Example_02.pm
deleted file mode 100644
index e270928..0000000
--- a/t/02_files/installdir/lib/Example_02.pm
+++ /dev/null
@@ -1,14 +0,0 @@
-use strict;
-use warnings;
-
-package Example_02;
-
-use File::ShareDir::ProjectDistDir;
-
-use Path::Class::File;
-
-sub test {
- return scalar Path::Class::File->new( dist_file( 'Example_02', 'file' ) )->slurp();
-}
-
-1;
diff --git a/t/03_files/develdir/lib/Example_05.pm b/t/03_files/develdir/lib/Example_05.pm
deleted file mode 100644
index 075dee2..0000000
--- a/t/03_files/develdir/lib/Example_05.pm
+++ /dev/null
@@ -1,14 +0,0 @@
-use strict;
-use warnings;
-
-package Example_05;
-
-use File::ShareDir::ProjectDistDir;
-
-use Path::Class::File;
-
-sub test {
- return scalar Path::Class::File->new( dist_file( 'Example_05', 'file' ) )->slurp();
-}
-
-1;
diff --git a/t/03_files/installdir/lib/Example_04.pm b/t/03_files/installdir/lib/Example_04.pm
deleted file mode 100644
index db5316c..0000000
--- a/t/03_files/installdir/lib/Example_04.pm
+++ /dev/null
@@ -1,14 +0,0 @@
-use strict;
-use warnings;
-
-package Example_04;
-
-use File::ShareDir::ProjectDistDir;
-
-use Path::Class::File;
-
-sub test {
- return scalar Path::Class::File->new( dist_file( 'Example_04', 'file' ) )->slurp();
-}
-
-1;
diff --git a/t/04_files/develdir/lib/Example_06.pm b/t/04_files/develdir/lib/Example_06.pm
deleted file mode 100644
index f7adf70..0000000
--- a/t/04_files/develdir/lib/Example_06.pm
+++ /dev/null
@@ -1,14 +0,0 @@
-use strict;
-use warnings;
-
-package Example_06;
-
-use File::ShareDir::ProjectDistDir;
-
-use Path::Class::File;
-
-sub test {
- return scalar Path::Class::File->new( dist_file( 'Example_0', 'file' ) )->slurp();
-}
-
-1;
diff --git a/t/04_files/installdir/lib/Example_06.pm b/t/04_files/installdir/lib/Example_06.pm
deleted file mode 100644
index 50cad76..0000000
--- a/t/04_files/installdir/lib/Example_06.pm
+++ /dev/null
@@ -1,14 +0,0 @@
-use strict;
-use warnings;
-
-package Example_06;
-
-use File::ShareDir::ProjectDistDir;
-
-use Path::Class::File;
-
-sub test {
- return scalar Path::Class::File->new( dist_file( 'Example_06', 'file' ) )->slurp();
-}
-
-1;
diff --git a/t/01_devel.t b/t/classic/01_devel.t
similarity index 100%
copy from t/01_devel.t
copy to t/classic/01_devel.t
diff --git a/t/01_files/.devdir b/t/classic/01_files/.devdir
similarity index 100%
copy from t/01_files/.devdir
copy to t/classic/01_files/.devdir
diff --git a/t/classic/01_files/lib/Example_01.pm b/t/classic/01_files/lib/Example_01.pm
new file mode 100644
index 0000000..e3601db
--- /dev/null
+++ b/t/classic/01_files/lib/Example_01.pm
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+
+package Example_01;
+
+use File::ShareDir::ProjectDistDir;
+
+use Path::Tiny qw(path);
+
+sub test {
+ return scalar path( dist_file( 'Example_01', 'file' ) )->slurp();
+}
+
+1;
diff --git a/t/01_files/share/file b/t/classic/01_files/share/file
similarity index 100%
copy from t/01_files/share/file
copy to t/classic/01_files/share/file
diff --git a/t/02_files/develdir/.devdir b/t/classic/02_files/develdir/.devdir
similarity index 100%
rename from t/02_files/develdir/.devdir
rename to t/classic/02_files/develdir/.devdir
diff --git a/t/classic/02_files/develdir/lib/Example_03.pm b/t/classic/02_files/develdir/lib/Example_03.pm
new file mode 100644
index 0000000..3e3a41c
--- /dev/null
+++ b/t/classic/02_files/develdir/lib/Example_03.pm
@@ -0,0 +1,6 @@
+use strict;
+use warnings;
+
+package Example_03;
+
+1;
diff --git a/t/02_files/develdir/share/file b/t/classic/02_files/develdir/share/file
similarity index 100%
copy from t/02_files/develdir/share/file
copy to t/classic/02_files/develdir/share/file
diff --git a/t/classic/02_files/installdir/lib/Example_02.pm b/t/classic/02_files/installdir/lib/Example_02.pm
new file mode 100644
index 0000000..9150e04
--- /dev/null
+++ b/t/classic/02_files/installdir/lib/Example_02.pm
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+
+package Example_02;
+
+use File::ShareDir::ProjectDistDir;
+
+use Path::Tiny qw(path);
+
+sub test {
+ return scalar path( dist_file( 'Example_02', 'file' ) )->slurp();
+}
+
+1;
diff --git a/t/02_files/installdir/lib/auto/share/dist/Example_02/file b/t/classic/02_files/installdir/lib/auto/share/dist/Example_02/file
similarity index 100%
copy from t/02_files/installdir/lib/auto/share/dist/Example_02/file
copy to t/classic/02_files/installdir/lib/auto/share/dist/Example_02/file
diff --git a/t/02_installed_only.t b/t/classic/02_installed_only.t
similarity index 100%
copy from t/02_installed_only.t
copy to t/classic/02_installed_only.t
diff --git a/t/03_files/develdir/.devdir b/t/classic/03_files/develdir/.devdir
similarity index 100%
rename from t/03_files/develdir/.devdir
rename to t/classic/03_files/develdir/.devdir
diff --git a/t/classic/03_files/develdir/lib/Example_05.pm b/t/classic/03_files/develdir/lib/Example_05.pm
new file mode 100644
index 0000000..284ffe5
--- /dev/null
+++ b/t/classic/03_files/develdir/lib/Example_05.pm
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+
+package Example_05;
+
+use File::ShareDir::ProjectDistDir;
+
+use Path::Tiny qw(path);
+
+sub test {
+ return scalar path( dist_file( 'Example_05', 'file' ) )->slurp();
+}
+
+1;
diff --git a/t/03_files/develdir/share/file b/t/classic/03_files/develdir/share/file
similarity index 100%
copy from t/03_files/develdir/share/file
copy to t/classic/03_files/develdir/share/file
diff --git a/t/classic/03_files/installdir/lib/Example_04.pm b/t/classic/03_files/installdir/lib/Example_04.pm
new file mode 100644
index 0000000..6f45b83
--- /dev/null
+++ b/t/classic/03_files/installdir/lib/Example_04.pm
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+
+package Example_04;
+
+use File::ShareDir::ProjectDistDir;
+
+use Path::Tiny qw(path);
+
+sub test {
+ return scalar path( dist_file( 'Example_04', 'file' ) )->slurp();
+}
+
+1;
diff --git a/t/03_files/installdir/lib/auto/share/dist/Example_04/file b/t/classic/03_files/installdir/lib/auto/share/dist/Example_04/file
similarity index 100%
copy from t/03_files/installdir/lib/auto/share/dist/Example_04/file
copy to t/classic/03_files/installdir/lib/auto/share/dist/Example_04/file
diff --git a/t/03_installed_and_dev_different.t b/t/classic/03_installed_and_dev_different.t
similarity index 100%
copy from t/03_installed_and_dev_different.t
copy to t/classic/03_installed_and_dev_different.t
diff --git a/t/04_developing_installed.t b/t/classic/04_developing_installed.t
similarity index 100%
copy from t/04_developing_installed.t
copy to t/classic/04_developing_installed.t
diff --git a/t/04_files/develdir/.devdir b/t/classic/04_files/develdir/.devdir
similarity index 100%
rename from t/04_files/develdir/.devdir
rename to t/classic/04_files/develdir/.devdir
diff --git a/t/classic/04_files/develdir/lib/Example_06.pm b/t/classic/04_files/develdir/lib/Example_06.pm
new file mode 100644
index 0000000..6749111
--- /dev/null
+++ b/t/classic/04_files/develdir/lib/Example_06.pm
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+
+package Example_06;
+
+use File::ShareDir::ProjectDistDir;
+
+use Path::Tiny qw(path);
+
+sub test {
+ return scalar path( dist_file( 'Example_06', 'file' ) )->slurp();
+}
+
+1;
diff --git a/t/04_files/develdir/share/file b/t/classic/04_files/develdir/share/file
similarity index 100%
copy from t/04_files/develdir/share/file
copy to t/classic/04_files/develdir/share/file
diff --git a/t/classic/04_files/installdir/lib/Example_06.pm b/t/classic/04_files/installdir/lib/Example_06.pm
new file mode 100644
index 0000000..6749111
--- /dev/null
+++ b/t/classic/04_files/installdir/lib/Example_06.pm
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+
+package Example_06;
+
+use File::ShareDir::ProjectDistDir;
+
+use Path::Tiny qw(path);
+
+sub test {
+ return scalar path( dist_file( 'Example_06', 'file' ) )->slurp();
+}
+
+1;
diff --git a/t/04_files/installdir/lib/auto/share/dist/Example_06/file b/t/classic/04_files/installdir/lib/auto/share/dist/Example_06/file
similarity index 100%
copy from t/04_files/installdir/lib/auto/share/dist/Example_06/file
copy to t/classic/04_files/installdir/lib/auto/share/dist/Example_06/file
diff --git a/t/05_devel_spec.t b/t/classic/05_devel_spec.t
similarity index 100%
copy from t/05_devel_spec.t
copy to t/classic/05_devel_spec.t
diff --git a/t/05_files/.devdir b/t/classic/05_files/.devdir
similarity index 100%
rename from t/05_files/.devdir
rename to t/classic/05_files/.devdir
diff --git a/t/05_files/lib/Example_05.pm b/t/classic/05_files/lib/Example_05.pm
similarity index 55%
copy from t/05_files/lib/Example_05.pm
copy to t/classic/05_files/lib/Example_05.pm
index b33336f..1deed8d 100644
--- a/t/05_files/lib/Example_05.pm
+++ b/t/classic/05_files/lib/Example_05.pm
@@ -5,10 +5,10 @@ package Example_05;
use File::ShareDir::ProjectDistDir ':all', projectdir => 'templates';
-use Path::Class::File;
+use Path::Tiny qw(path);
sub test {
- return scalar Path::Class::File->new( dist_file( 'Example_05', 'file' ) )->slurp();
+ return scalar path( dist_file( 'Example_05', 'file' ) )->slurp();
}
1;
diff --git a/t/05_files/templates/file b/t/classic/05_files/templates/file
similarity index 100%
rename from t/05_files/templates/file
rename to t/classic/05_files/templates/file
diff --git a/t/06_distname.t b/t/classic/06_distname.t
similarity index 100%
copy from t/06_distname.t
copy to t/classic/06_distname.t
diff --git a/t/06_files/develdir/.devdir b/t/classic/06_files/develdir/.devdir
similarity index 100%
rename from t/06_files/develdir/.devdir
rename to t/classic/06_files/develdir/.devdir
diff --git a/t/06_files/develdir/lib/Example_05.pm b/t/classic/06_files/develdir/lib/Example_05.pm
similarity index 60%
copy from t/06_files/develdir/lib/Example_05.pm
copy to t/classic/06_files/develdir/lib/Example_05.pm
index 6595cc9..7b7b89d 100644
--- a/t/06_files/develdir/lib/Example_05.pm
+++ b/t/classic/06_files/develdir/lib/Example_05.pm
@@ -5,10 +5,10 @@ package Example_05;
use File::ShareDir::ProjectDistDir qw( :all ), distname => 'Example_05';
-use Path::Class::File;
+use Path::Tiny qw(path);
sub test {
- return scalar Path::Class::File->new( dist_file('file') )->slurp();
+ return scalar path( dist_file('file') )->slurp();
}
1;
diff --git a/t/06_files/develdir/share/file b/t/classic/06_files/develdir/share/file
similarity index 100%
rename from t/06_files/develdir/share/file
rename to t/classic/06_files/develdir/share/file
diff --git a/t/06_files/installdir/lib/Example_04.pm b/t/classic/06_files/installdir/lib/Example_04.pm
similarity index 60%
copy from t/06_files/installdir/lib/Example_04.pm
copy to t/classic/06_files/installdir/lib/Example_04.pm
index bdbccff..e4c5976 100644
--- a/t/06_files/installdir/lib/Example_04.pm
+++ b/t/classic/06_files/installdir/lib/Example_04.pm
@@ -5,10 +5,10 @@ package Example_04;
use File::ShareDir::ProjectDistDir qw( :all ), distname => "Example_04";
-use Path::Class::File;
+use Path::Tiny qw(path);
sub test {
- return scalar Path::Class::File->new( dist_file('file') )->slurp();
+ return scalar path( dist_file('file') )->slurp();
}
1;
diff --git a/t/06_files/installdir/lib/auto/share/dist/Example_04/file b/t/classic/06_files/installdir/lib/auto/share/dist/Example_04/file
similarity index 100%
rename from t/06_files/installdir/lib/auto/share/dist/Example_04/file
rename to t/classic/06_files/installdir/lib/auto/share/dist/Example_04/file
diff --git a/t/deprecations/fatal_no_pathclass_installed.t b/t/deprecations/fatal_no_pathclass_installed.t
new file mode 100644
index 0000000..de61abf
--- /dev/null
+++ b/t/deprecations/fatal_no_pathclass_installed.t
@@ -0,0 +1,49 @@
+use strict;
+use warnings;
+
+use Test::More;
+
+# FILENAME: deprecate_path_class.t
+# CREATED: 03/01/14 02:01:07 by Kent Fredric (kentnl) <kentfredric at gmail.com>
+# ABSTRACT: Test for warnings about deprecated Path::Class
+
+for my $package ('Capture::Tiny') {
+ if ( not eval "require $package;1" ) {
+ plan skip_all => "$package required for this test";
+ done_testing;
+ exit;
+ }
+}
+for my $package ('Path::Class') {
+ if ( eval "require $package;1" ) {
+ plan skip_all => "Test only run without $package installed";
+ done_testing;
+ exit;
+ }
+}
+
+pass('Test requirements available');
+my $ex;
+
+sub test {
+
+ package Foo;
+ File::ShareDir::ProjectDistDir->import( q[:all], pathclass => 1 );
+ 1;
+}
+
+my $err = Capture::Tiny::capture_stderr(
+ sub {
+ require File::ShareDir::ProjectDistDir;
+ delete $INC{'Path/Class.pm'};
+ local $@ = undef;
+ if ( not eval { test() } ) {
+ $ex = $@;
+ }
+ }
+);
+like( $err, qr/Path::Class support depecated/, "warns about invocation" );
+like( $err, qr/Path::Class is not installed/, "warns if require failed" );
+like( $ex, qr/Can\'t locate Path\/Class\.pm/, "dies with core failure" );
+done_testing;
+
diff --git a/t/deprecations/warn_on_pathclass.t b/t/deprecations/warn_on_pathclass.t
new file mode 100644
index 0000000..e49eb58
--- /dev/null
+++ b/t/deprecations/warn_on_pathclass.t
@@ -0,0 +1,28 @@
+use strict;
+use warnings;
+
+use Test::More;
+
+# FILENAME: deprecate_path_class.t
+# CREATED: 03/01/14 02:01:07 by Kent Fredric (kentnl) <kentfredric at gmail.com>
+# ABSTRACT: Test for warnings about deprecated Path::Class
+
+for my $package ( 'Path::Class', 'Capture::Tiny' ) {
+ if ( not eval "require $package;1" ) {
+ plan skip_all => "$package required for this test";
+ done_testing;
+ exit;
+ }
+}
+pass('Test requirements available');
+my $err = Capture::Tiny::capture_stderr(
+ sub {
+ eval '
+ package Foo;
+ use File::ShareDir::ProjectDistDir q[:all], pathclass => 1;
+ ';
+ }
+);
+like( $err, qr/Path::Class support depecated/, "Deprecated support" );
+done_testing;
+
diff --git a/t/01_devel.t b/t/strict/01_devel.t
similarity index 100%
rename from t/01_devel.t
rename to t/strict/01_devel.t
diff --git a/t/01_files/.devdir b/t/strict/01_files/.devdir
similarity index 100%
copy from t/01_files/.devdir
copy to t/strict/01_files/.devdir
diff --git a/t/strict/01_files/lib/Example_01.pm b/t/strict/01_files/lib/Example_01.pm
new file mode 100644
index 0000000..1746101
--- /dev/null
+++ b/t/strict/01_files/lib/Example_01.pm
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+
+package Example_01;
+
+use File::ShareDir::ProjectDistDir ':all', strict => 1;
+
+use Path::Tiny qw(path);
+
+sub test {
+ return scalar path( dist_file( 'Example_01', 'file' ) )->slurp();
+}
+
+1;
diff --git a/t/01_files/share/file b/t/strict/01_files/share/dist/Example_01/file
similarity index 100%
rename from t/01_files/share/file
rename to t/strict/01_files/share/dist/Example_01/file
diff --git a/t/01_files/.devdir b/t/strict/02_files/develdir/.devdir
similarity index 100%
copy from t/01_files/.devdir
copy to t/strict/02_files/develdir/.devdir
diff --git a/t/strict/02_files/develdir/lib/Example_03.pm b/t/strict/02_files/develdir/lib/Example_03.pm
new file mode 100644
index 0000000..3e3a41c
--- /dev/null
+++ b/t/strict/02_files/develdir/lib/Example_03.pm
@@ -0,0 +1,6 @@
+use strict;
+use warnings;
+
+package Example_03;
+
+1;
diff --git a/t/02_files/develdir/share/file b/t/strict/02_files/develdir/share/file
similarity index 100%
rename from t/02_files/develdir/share/file
rename to t/strict/02_files/develdir/share/file
diff --git a/t/strict/02_files/installdir/lib/Example_02.pm b/t/strict/02_files/installdir/lib/Example_02.pm
new file mode 100644
index 0000000..4bbdf89
--- /dev/null
+++ b/t/strict/02_files/installdir/lib/Example_02.pm
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+
+package Example_02;
+
+use File::ShareDir::ProjectDistDir;
+
+use Path::Tiny qw( path );
+
+sub test {
+ return scalar path( dist_file( 'Example_02', 'file' ) )->slurp();
+}
+
+1;
diff --git a/t/02_files/installdir/lib/auto/share/dist/Example_02/file b/t/strict/02_files/installdir/lib/auto/share/dist/Example_02/file
similarity index 100%
rename from t/02_files/installdir/lib/auto/share/dist/Example_02/file
rename to t/strict/02_files/installdir/lib/auto/share/dist/Example_02/file
diff --git a/t/02_installed_only.t b/t/strict/02_installed_only.t
similarity index 100%
rename from t/02_installed_only.t
rename to t/strict/02_installed_only.t
diff --git a/t/01_files/.devdir b/t/strict/03_files/develdir/.devdir
similarity index 100%
copy from t/01_files/.devdir
copy to t/strict/03_files/develdir/.devdir
diff --git a/t/strict/03_files/develdir/lib/Example_05.pm b/t/strict/03_files/develdir/lib/Example_05.pm
new file mode 100644
index 0000000..5c0ffa2
--- /dev/null
+++ b/t/strict/03_files/develdir/lib/Example_05.pm
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+
+package Example_05;
+
+use File::ShareDir::ProjectDistDir ':all', strict => 1;
+
+use Path::Tiny qw(path);
+
+sub test {
+ return scalar path( dist_file( 'Example_05', 'file' ) )->slurp();
+}
+
+1;
diff --git a/t/03_files/develdir/share/file b/t/strict/03_files/develdir/share/dist/Example_05/file
similarity index 100%
copy from t/03_files/develdir/share/file
copy to t/strict/03_files/develdir/share/dist/Example_05/file
diff --git a/t/strict/03_files/installdir/lib/Example_04.pm b/t/strict/03_files/installdir/lib/Example_04.pm
new file mode 100644
index 0000000..bc8c303
--- /dev/null
+++ b/t/strict/03_files/installdir/lib/Example_04.pm
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+
+package Example_04;
+
+use File::ShareDir::ProjectDistDir ':all', strict => 1;
+
+use Path::Tiny qw(path);
+
+sub test {
+ return scalar path( dist_file( 'Example_04', 'file' ) )->slurp();
+}
+
+1;
diff --git a/t/03_files/installdir/lib/auto/share/dist/Example_04/file b/t/strict/03_files/installdir/lib/auto/share/dist/Example_04/file
similarity index 100%
copy from t/03_files/installdir/lib/auto/share/dist/Example_04/file
copy to t/strict/03_files/installdir/lib/auto/share/dist/Example_04/file
diff --git a/t/03_installed_and_dev_different.t b/t/strict/03_installed_and_dev_different.t
similarity index 100%
rename from t/03_installed_and_dev_different.t
rename to t/strict/03_installed_and_dev_different.t
diff --git a/t/04_developing_installed.t b/t/strict/04_developing_installed.t
similarity index 100%
rename from t/04_developing_installed.t
rename to t/strict/04_developing_installed.t
diff --git a/t/01_files/.devdir b/t/strict/04_files/develdir/.devdir
similarity index 100%
copy from t/01_files/.devdir
copy to t/strict/04_files/develdir/.devdir
diff --git a/t/strict/04_files/develdir/lib/Example_06.pm b/t/strict/04_files/develdir/lib/Example_06.pm
new file mode 100644
index 0000000..31ec072
--- /dev/null
+++ b/t/strict/04_files/develdir/lib/Example_06.pm
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+
+package Example_06;
+
+use File::ShareDir::ProjectDistDir ':all', strict => 1;
+
+use Path::Tiny qw(path);
+
+sub test {
+ return scalar path( dist_file( 'Example_06', 'file' ) )->slurp();
+}
+
+1;
diff --git a/t/04_files/develdir/share/file b/t/strict/04_files/develdir/share/dist/Example_06/file
similarity index 100%
rename from t/04_files/develdir/share/file
rename to t/strict/04_files/develdir/share/dist/Example_06/file
diff --git a/t/strict/04_files/installdir/lib/Example_06.pm b/t/strict/04_files/installdir/lib/Example_06.pm
new file mode 100644
index 0000000..31ec072
--- /dev/null
+++ b/t/strict/04_files/installdir/lib/Example_06.pm
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+
+package Example_06;
+
+use File::ShareDir::ProjectDistDir ':all', strict => 1;
+
+use Path::Tiny qw(path);
+
+sub test {
+ return scalar path( dist_file( 'Example_06', 'file' ) )->slurp();
+}
+
+1;
diff --git a/t/04_files/installdir/lib/auto/share/dist/Example_06/file b/t/strict/04_files/installdir/lib/auto/share/dist/Example_06/file
similarity index 100%
rename from t/04_files/installdir/lib/auto/share/dist/Example_06/file
rename to t/strict/04_files/installdir/lib/auto/share/dist/Example_06/file
diff --git a/t/05_devel_spec.t b/t/strict/05_devel_spec.t
similarity index 100%
rename from t/05_devel_spec.t
rename to t/strict/05_devel_spec.t
diff --git a/t/01_files/.devdir b/t/strict/05_files/.devdir
similarity index 100%
copy from t/01_files/.devdir
copy to t/strict/05_files/.devdir
diff --git a/t/05_files/lib/Example_05.pm b/t/strict/05_files/lib/Example_05.pm
similarity index 53%
rename from t/05_files/lib/Example_05.pm
rename to t/strict/05_files/lib/Example_05.pm
index b33336f..bd04a39 100644
--- a/t/05_files/lib/Example_05.pm
+++ b/t/strict/05_files/lib/Example_05.pm
@@ -3,12 +3,12 @@ use warnings;
package Example_05;
-use File::ShareDir::ProjectDistDir ':all', projectdir => 'templates';
+use File::ShareDir::ProjectDistDir ':all', projectdir => 'templates', strict => 1;
-use Path::Class::File;
+use Path::Tiny qw(path);
sub test {
- return scalar Path::Class::File->new( dist_file( 'Example_05', 'file' ) )->slurp();
+ return scalar path( dist_file( 'Example_05', 'file' ) )->slurp();
}
1;
diff --git a/t/03_files/develdir/share/file b/t/strict/05_files/templates/dist/Example_05/file
similarity index 100%
copy from t/03_files/develdir/share/file
copy to t/strict/05_files/templates/dist/Example_05/file
diff --git a/t/06_distname.t b/t/strict/06_distname.t
similarity index 100%
rename from t/06_distname.t
rename to t/strict/06_distname.t
diff --git a/t/01_files/.devdir b/t/strict/06_files/develdir/.devdir
similarity index 100%
rename from t/01_files/.devdir
rename to t/strict/06_files/develdir/.devdir
diff --git a/t/06_files/develdir/lib/Example_05.pm b/t/strict/06_files/develdir/lib/Example_05.pm
similarity index 56%
rename from t/06_files/develdir/lib/Example_05.pm
rename to t/strict/06_files/develdir/lib/Example_05.pm
index 6595cc9..bf0e08e 100644
--- a/t/06_files/develdir/lib/Example_05.pm
+++ b/t/strict/06_files/develdir/lib/Example_05.pm
@@ -3,12 +3,12 @@ use warnings;
package Example_05;
-use File::ShareDir::ProjectDistDir qw( :all ), distname => 'Example_05';
+use File::ShareDir::ProjectDistDir qw( :all ), distname => 'Example_05', strict => 1;
-use Path::Class::File;
+use Path::Tiny qw(path);
sub test {
- return scalar Path::Class::File->new( dist_file('file') )->slurp();
+ return scalar path( dist_file('file') )->slurp();
}
1;
diff --git a/t/03_files/develdir/share/file b/t/strict/06_files/develdir/share/dist/Example_05/file
similarity index 100%
rename from t/03_files/develdir/share/file
rename to t/strict/06_files/develdir/share/dist/Example_05/file
diff --git a/t/06_files/installdir/lib/Example_04.pm b/t/strict/06_files/installdir/lib/Example_04.pm
similarity index 56%
rename from t/06_files/installdir/lib/Example_04.pm
rename to t/strict/06_files/installdir/lib/Example_04.pm
index bdbccff..34ba9b4 100644
--- a/t/06_files/installdir/lib/Example_04.pm
+++ b/t/strict/06_files/installdir/lib/Example_04.pm
@@ -3,12 +3,12 @@ use warnings;
package Example_04;
-use File::ShareDir::ProjectDistDir qw( :all ), distname => "Example_04";
+use File::ShareDir::ProjectDistDir qw( :all ), distname => "Example_04", strict => 1;
-use Path::Class::File;
+use Path::Tiny qw(path);
sub test {
- return scalar Path::Class::File->new( dist_file('file') )->slurp();
+ return scalar path( dist_file('file') )->slurp();
}
1;
diff --git a/t/03_files/installdir/lib/auto/share/dist/Example_04/file b/t/strict/06_files/installdir/lib/auto/share/dist/Example_04/file
similarity index 100%
rename from t/03_files/installdir/lib/auto/share/dist/Example_04/file
rename to t/strict/06_files/installdir/lib/auto/share/dist/Example_04/file
diff --git a/weaver.ini b/weaver.ini
index eba0dcf..e6f2b37 100644
--- a/weaver.ini
+++ b/weaver.ini
@@ -1,4 +1,5 @@
[@CorePrep]
+[-SingleEncoding]
[Name]
[Version]
diff --git a/xt/release/distmeta.t b/xt/release/distmeta.t
index b46c7fc..c2280dc 100644
--- a/xt/release/distmeta.t
+++ b/xt/release/distmeta.t
@@ -1,7 +1,6 @@
#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::MetaTests.
-use Test::More;
+use Test::CPAN::Meta;
-eval "use Test::CPAN::Meta";
-plan skip_all => "Test::CPAN::Meta required for testing META.yml" if $@;
meta_yaml_ok();
diff --git a/xt/release/kwalitee.t b/xt/release/kwalitee.t
index 0b20dc1..13cecfa 100644
--- a/xt/release/kwalitee.t
+++ b/xt/release/kwalitee.t
@@ -1,4 +1,4 @@
-# This test is generated by Dist::Zilla::Plugin::Test::Kwalitee
+# this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.07
use strict;
use warnings;
use Test::Kwalitee;
diff --git a/xt/release/pod-coverage.t b/xt/release/pod-coverage.t
index b52218b..66b3b64 100644
--- a/xt/release/pod-coverage.t
+++ b/xt/release/pod-coverage.t
@@ -1,13 +1,7 @@
#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.08";
-plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage"
- if $@;
-
-eval "use Pod::Coverage::TrustPod";
-plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage"
- if $@;
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
diff --git a/xt/release/pod-syntax.t b/xt/release/pod-syntax.t
index 8a22900..f0468f1 100644
--- a/xt/release/pod-syntax.t
+++ b/xt/release/pod-syntax.t
@@ -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();
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libfile-sharedir-projectdistdir-perl.git
More information about the Pkg-perl-cvs-commits
mailing list