[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