The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Build.PL 12
CONTRIBUTING 610
Changes 08
MANIFEST 19
META.json 88255
META.yml 117244
Makefile.PL 3350
README 13
README.md 1728
dist.ini 09
lib/MooseX/Object/Pluggable.pm 46221
t/00-report-prereqs.t 48122
t/05-load-failure.t 067
t/boilerplate.t 460
t/lib/TestApp3/Plugin/Dies1.pm 06
t/lib/TestApp3/Plugin/Dies2.pm 06
t/lib/TestApp3/Plugin/Lives.pm 010
t/lib/TestApp3.pm 011
weaver.ini 08
xt/author/00-compile.t 24
xt/author/pod-spell.t 14
xt/release/changes_has_content.t 11
xt/release/clean-namespaces.t 09
xt/release/distmeta.t 01
xt/release/no-tabs.t 11
xt/release/pod-coverage.t 01
xt/release/pod-syntax.t 01
xt/release/portability.t 011
28 files changed (This is a version diff) 4091102
@@ -1,3 +1,4 @@
+# This Build.PL for MooseX-Object-Pluggable was generated by Dist::Zilla::Plugin::ModuleBuildTiny 0.006.
 use 5.006;
-use Module::Build::Tiny 0.030;
+use Module::Build::Tiny 0.034;
 Build_PL();
@@ -50,12 +50,12 @@ Once installed, here are some dzil commands you might try:
   $ dzil test --release
   $ dzil xtest
   $ dzil listdeps --json
-  $ dzil build --not
+  $ dzil build --notgz
 
 You can learn more about Dist::Zilla at http://dzil.org/.
 
-The code for this distribution is hosted at GitHub. The main repository is:
-https://github.com/moose/MooseX-Object-Pluggable.
+The code for this distribution is hosted at GitHub. The repository is:
+https://github.com/moose/MooseX-Object-Pluggable
 You can submit code changes by forking the repository, pushing your code
 changes to your clone, and then submitting a pull request. Detailed
 instructions for doing that is available here:
@@ -67,8 +67,12 @@ If you have found a bug, but do not have an accompanying patch to fix it, you
 can submit an issue report here:
 https://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-Object-Pluggable
 or via bug-MooseX-Object-Pluggable@rt.cpan.org.
-This is also a good place to send your questions about the usage of this distribution.
 
+There is also a mailing list available for users of this distribution, at
+http://lists.perl.org/list/moose.html.
+There is also an irc channel available for users of this distribution, at
+irc://irc.perl.org/#moose.
 
-This file was generated via Dist::Zilla::Plugin::GenerateFile::ShareDir 0.002 from a
-template file originating in Dist-Zilla-PluginBundle-Author-ETHER-0.039.
+
+This file was generated via Dist::Zilla::Plugin::GenerateFile::ShareDir 0.005 from a
+template file originating in Dist-Zilla-PluginBundle-Author-ETHER-0.049.
@@ -1,5 +1,13 @@
 Revision history for MooseX-Object-Pluggable
 
+0.0013    2014-02-02 08:53:34Z
+          - line numbers in shipped code are now almost the same (within 3) as
+            the repository source, for easier debugging
+          - add error diagnostic if the plugin is not a Moose role (RT#49507)
+          - avoid continuing on after failing to load a plugin (RT#63013)
+          - keep track of all plugins successfully loaded so far in case we
+            fail in the middle (RT#88562)
+
 0.0012    2013-11-11 03:59:19Z
           - removed use of deprecated Class::MOP::load_class
           - repository migrated from shadowcat to the github moose organization
@@ -1,3 +1,4 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.012.
 Build.PL
 CONTRIBUTING
 Changes
@@ -17,7 +18,7 @@ t/01-basic.t
 t/02-basic2.t
 t/03-custom-ns.t
 t/04-reload.t
-t/boilerplate.t
+t/05-load-failure.t
 t/lib/CustomNS/Plugin/Foo.pm
 t/lib/TestApp.pm
 t/lib/TestApp/Plugin/Bar.pm
@@ -26,9 +27,15 @@ t/lib/TestApp/Plugin/Bor.pm
 t/lib/TestApp/Plugin/Foo.pm
 t/lib/TestApp2.pm
 t/lib/TestApp2/Plugin/Foo.pm
+t/lib/TestApp3.pm
+t/lib/TestApp3/Plugin/Dies1.pm
+t/lib/TestApp3/Plugin/Dies2.pm
+t/lib/TestApp3/Plugin/Lives.pm
+weaver.ini
 xt/author/00-compile.t
 xt/author/pod-spell.t
 xt/release/changes_has_content.t
+xt/release/clean-namespaces.t
 xt/release/cpan-changes.t
 xt/release/distmeta.t
 xt/release/eol.t
@@ -39,5 +46,6 @@ xt/release/no-tabs.t
 xt/release/pod-coverage.t
 xt/release/pod-no404s.t
 xt/release/pod-syntax.t
+xt/release/portability.t
 xt/release/test-version.t
 xt/release/unused-vars.t
@@ -4,7 +4,7 @@
       "Guillermo Roditi <groditi@cpan.org>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.132830",
+   "generated_by" : "Dist::Zilla version 5.012, CPAN::Meta::Converter version 2.133380",
    "license" : [
       "perl_5"
    ],
@@ -17,27 +17,30 @@
       "directory" : [
          "t",
          "xt",
-         "examples"
+         "examples",
+         "share"
       ]
    },
    "prereqs" : {
       "configure" : {
          "requires" : {
             "ExtUtils::MakeMaker" : "6.30",
-            "Module::Build::Tiny" : "0.030"
+            "Module::Build::Tiny" : "0.034"
          }
       },
       "develop" : {
          "recommends" : {
-            "Dist::Zilla::PluginBundle::Author::ETHER" : "0.039"
+            "Dist::Zilla::PluginBundle::Author::ETHER" : "0.049"
          },
          "requires" : {
-            "Dist::Zilla" : "5.006",
+            "Dist::Zilla" : "5.012",
             "Dist::Zilla::Plugin::ContributorsFromGit" : "0",
             "Dist::Zilla::Plugin::GitHub::Update" : "0",
             "Dist::Zilla::Plugin::GithubMeta" : "0",
             "Dist::Zilla::Plugin::MakeMaker::Fallback" : "0",
+            "Dist::Zilla::Plugin::MetaResources" : "0",
             "Dist::Zilla::Plugin::ModuleBuildTiny" : "0.004",
+            "Dist::Zilla::Plugin::Prereqs" : "0",
             "Dist::Zilla::PluginBundle::Author::ETHER" : "0.039",
             "File::Spec" : "0",
             "IO::Handle" : "0",
@@ -46,6 +49,7 @@
             "Pod::Weaver::Section::Contributors" : "0",
             "Test::CPAN::Changes" : "0.19",
             "Test::CPAN::Meta" : "0",
+            "Test::CleanNamespaces" : "0",
             "Test::Kwalitee" : "1.12",
             "Test::More" : "0.94",
             "Test::NoTabs" : "0",
@@ -56,26 +60,31 @@
       "runtime" : {
          "requires" : {
             "Carp" : "0",
-            "Class::Load" : "0",
             "Module::Pluggable::Object" : "0",
+            "Module::Runtime" : "0",
             "Moose::Role" : "0",
+            "Moose::Util" : "0",
             "Scalar::Util" : "0",
+            "Try::Tiny" : "0",
+            "namespace::autoclean" : "0",
             "perl" : "5.006"
          }
       },
       "test" : {
          "recommends" : {
             "CPAN::Meta" : "0",
-            "CPAN::Meta::Requirements" : "0"
+            "CPAN::Meta::Requirements" : "2.120900"
          },
          "requires" : {
             "ExtUtils::MakeMaker" : "0",
             "File::Spec::Functions" : "0",
             "List::Util" : "0",
             "Moose" : "0",
+            "Test::Fatal" : "0",
             "Test::More" : "0",
             "lib" : "0",
             "strict" : "0",
+            "version" : "0",
             "warnings" : "0"
          }
       }
@@ -83,7 +92,7 @@
    "provides" : {
       "MooseX::Object::Pluggable" : {
          "file" : "lib/MooseX/Object/Pluggable.pm",
-         "version" : "0.0012"
+         "version" : "0.0013"
       }
    },
    "release_status" : "stable",
@@ -97,73 +106,95 @@
          "type" : "git",
          "url" : "https://github.com/moose/MooseX-Object-Pluggable.git",
          "web" : "https://github.com/moose/MooseX-Object-Pluggable"
-      }
+      },
+      "x_IRC" : "irc://irc.perl.org/#moose",
+      "x_MailingList" : "http://lists.perl.org/list/moose.html"
    },
-   "version" : "0.0012",
+   "version" : "0.0013",
    "x_Dist_Zilla" : {
       "perl" : {
-         "version" : "5.019005"
+         "version" : "5.019007"
       },
       "plugins" : [
          {
             "class" : "Dist::Zilla::Plugin::Git::NextVersion",
             "name" : "@Author::ETHER/Git::NextVersion",
-            "version" : "2.017"
+            "version" : "2.019"
          },
          {
             "class" : "Dist::Zilla::Plugin::PromptIfStale",
+            "config" : {
+               "Dist::Zilla::Plugin::PromptIfStale" : {
+                  "check_all_plugins" : 0,
+                  "check_all_prereqs" : 0,
+                  "modules" : [
+                     "Dist::Zilla::PluginBundle::Author::ETHER"
+                  ],
+                  "phase" : "build",
+                  "skip" : []
+               }
+            },
             "name" : "@Author::ETHER/build",
-            "version" : "0.012"
+            "version" : "0.015"
          },
          {
             "class" : "Dist::Zilla::Plugin::PromptIfStale",
+            "config" : {
+               "Dist::Zilla::Plugin::PromptIfStale" : {
+                  "check_all_plugins" : "1",
+                  "check_all_prereqs" : "1",
+                  "modules" : [],
+                  "phase" : "release",
+                  "skip" : []
+               }
+            },
             "name" : "@Author::ETHER/release",
-            "version" : "0.012"
+            "version" : "0.015"
          },
          {
             "class" : "Dist::Zilla::Plugin::ExecDir",
             "name" : "@Author::ETHER/ExecDir",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::ShareDir",
             "name" : "@Author::ETHER/ShareDir",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::FileFinder::ByName",
             "name" : "@Author::ETHER/Examples",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::GatherDir",
             "name" : "@Author::ETHER/Git::GatherDir",
-            "version" : "2.017"
+            "version" : "2.019"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaYAML",
             "name" : "@Author::ETHER/MetaYAML",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaJSON",
             "name" : "@Author::ETHER/MetaJSON",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::License",
             "name" : "@Author::ETHER/License",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::Readme",
             "name" : "@Author::ETHER/Readme",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::Manifest",
             "name" : "@Author::ETHER/Manifest",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::GenerateFile::ShareDir",
@@ -175,8 +206,8 @@
                   "source_filename" : "CONTRIBUTING"
                }
             },
-            "name" : "@Author::ETHER/GenerateFile::ShareDir",
-            "version" : "0.002"
+            "name" : "@Author::ETHER/generate CONTRIBUTING",
+            "version" : "0.005"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::Compile",
@@ -193,7 +224,7 @@
                }
             },
             "name" : "@Author::ETHER/Test::Compile",
-            "version" : "2.037"
+            "version" : "2.039"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::NoTabs",
@@ -209,7 +240,7 @@
                }
             },
             "name" : "@Author::ETHER/Test::NoTabs",
-            "version" : "0.05"
+            "version" : "0.06"
          },
          {
             "class" : "Dist::Zilla::Plugin::EOLTests",
@@ -219,7 +250,7 @@
          {
             "class" : "Dist::Zilla::Plugin::MetaTests",
             "name" : "@Author::ETHER/MetaTests",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::Version",
@@ -249,17 +280,17 @@
          {
             "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
             "name" : "@Author::ETHER/PodSyntaxTests",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::PodCoverageTests",
             "name" : "@Author::ETHER/PodCoverageTests",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::PodSpelling",
             "name" : "@Author::ETHER/Test::PodSpelling",
-            "version" : "2.006001"
+            "version" : "2.006002"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::Pod::No404s",
@@ -279,22 +310,12 @@
          {
             "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs",
             "name" : "@Author::ETHER/Test::ReportPrereqs",
-            "version" : "0.010"
+            "version" : "0.013"
          },
          {
-            "class" : "Dist::Zilla::Plugin::PruneCruft",
-            "name" : "@Author::ETHER/PruneCruft",
-            "version" : "5.006"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::ManifestSkip",
-            "name" : "@Author::ETHER/ManifestSkip",
-            "version" : "5.006"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Authority",
-            "name" : "@Author::ETHER/Authority",
-            "version" : "1.006"
+            "class" : "Dist::Zilla::Plugin::Test::Portability",
+            "name" : "@Author::ETHER/Test::Portability",
+            "version" : "2.000005"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Describe",
@@ -304,7 +325,12 @@
          {
             "class" : "Dist::Zilla::Plugin::PkgVersion",
             "name" : "@Author::ETHER/PkgVersion",
-            "version" : "5.006"
+            "version" : "5.012"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::Authority",
+            "name" : "@Author::ETHER/Authority",
+            "version" : "1.006"
          },
          {
             "class" : "Dist::Zilla::Plugin::PodWeaver",
@@ -313,21 +339,118 @@
                   "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" : "@Default/SingleEncoding",
+                        "version" : "4.006"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Name",
+                        "name" : "@Default/Name",
+                        "version" : "4.006"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Version",
+                        "name" : "@Default/Version",
+                        "version" : "4.006"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Region",
+                        "name" : "@Default/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" : "ATTRIBUTES",
+                        "version" : "4.006"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Collect",
+                        "name" : "METHODS",
+                        "version" : "4.006"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Collect",
+                        "name" : "FUNCTIONS",
+                        "version" : "4.006"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Leftovers",
+                        "name" : "@Default/Leftovers",
+                        "version" : "4.006"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Region",
+                        "name" : "@Default/postlude",
+                        "version" : "4.006"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Authors",
+                        "name" : "@Default/Authors",
+                        "version" : "4.006"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Legal",
+                        "name" : "@Default/Legal",
+                        "version" : "4.006"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Plugin::Transformer",
+                        "name" : "-Transformer",
+                        "version" : "4.006"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Plugin::StopWords",
+                        "name" : "-StopWords",
+                        "version" : "1.008"
+                     },
+                     {
+                        "class" : "Pod::Weaver::Section::Contributors",
+                        "name" : "Contributors",
+                        "version" : "0.007"
+                     }
                   ]
                }
             },
             "name" : "@Author::ETHER/PodWeaver",
-            "version" : "4.001"
+            "version" : "4.005"
          },
          {
             "class" : "Dist::Zilla::Plugin::NextRelease",
             "name" : "@Author::ETHER/NextRelease",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
             "name" : "@Author::ETHER/ReadmeAnyFromPod",
-            "version" : "0.133030"
+            "version" : "0.133360"
          },
          {
             "class" : "Dist::Zilla::Plugin::GithubMeta",
@@ -342,17 +465,23 @@
          {
             "class" : "Dist::Zilla::Plugin::MetaNoIndex",
             "name" : "@Author::ETHER/MetaNoIndex",
-            "version" : "5.006"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::FinderCode",
-            "name" : "@Author::ETHER/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaProvides::Package",
             "config" : {
-               "Dist::Zilla::Plugin::MetaProvides::Package" : {},
+               "Dist::Zilla::Plugin::MetaProvides::Package" : {
+                  "finder" : [
+                     ":InstallModules"
+                  ],
+                  "finder_objects" : [
+                     {
+                        "class" : "Dist::Zilla::Plugin::FinderCode",
+                        "name" : ":InstallModules",
+                        "version" : "5.012"
+                     }
+                  ]
+               },
                "Dist::Zilla::Role::MetaProvider::Provider" : {
                   "inherit_missing" : "1",
                   "inherit_version" : "1",
@@ -360,17 +489,17 @@
                }
             },
             "name" : "@Author::ETHER/MetaProvides::Package",
-            "version" : "1.15000000"
+            "version" : "2.000000"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaConfig",
             "name" : "@Author::ETHER/MetaConfig",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::AutoPrereqs",
             "name" : "@Author::ETHER/AutoPrereqs",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::Prereqs::AuthorDeps",
@@ -391,7 +520,7 @@
                }
             },
             "name" : "@Author::ETHER/installer_requirements",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::Prereqs",
@@ -402,32 +531,39 @@
                }
             },
             "name" : "@Author::ETHER/pluginbundle_version",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::RunExtraTests",
             "name" : "@Author::ETHER/RunExtraTests",
-            "version" : "0.015"
+            "version" : "0.016"
          },
          {
             "class" : "Dist::Zilla::Plugin::MakeMaker::Fallback",
             "name" : "@Author::ETHER/MakeMaker::Fallback",
-            "version" : "0.003"
+            "version" : "0.006"
          },
          {
             "class" : "Dist::Zilla::Plugin::ModuleBuildTiny",
             "name" : "@Author::ETHER/ModuleBuildTiny",
-            "version" : "0.005"
+            "version" : "0.006"
          },
          {
             "class" : "Dist::Zilla::Plugin::InstallGuide",
             "name" : "@Author::ETHER/InstallGuide",
-            "version" : "1.200001"
+            "version" : "1.200002"
          },
          {
             "class" : "Dist::Zilla::Plugin::CheckSelfDependency",
+            "config" : {
+               "Dist::Zilla::Plugin::CheckSelfDependency" : {
+                  "finder" : [
+                     ":InstallModules"
+                  ]
+               }
+            },
             "name" : "@Author::ETHER/CheckSelfDependency",
-            "version" : "0.005"
+            "version" : "0.007"
          },
          {
             "class" : "Dist::Zilla::Plugin::Run::AfterBuild",
@@ -437,37 +573,42 @@
          {
             "class" : "Dist::Zilla::Plugin::Git::Check",
             "name" : "@Author::ETHER/initial check",
-            "version" : "2.017"
+            "version" : "2.019"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts",
+            "name" : "@Author::ETHER/Git::CheckFor::MergeConflicts",
+            "version" : "0.009"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch",
             "name" : "@Author::ETHER/Git::CheckFor::CorrectBranch",
-            "version" : "0.007"
+            "version" : "0.009"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Remote::Check",
             "name" : "@Author::ETHER/Git::Remote::Check",
-            "version" : "0.1.2"
+            "version" : "0.2.0"
          },
          {
             "class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
             "name" : "@Author::ETHER/CheckPrereqsIndexed",
-            "version" : "0.009"
+            "version" : "0.010"
          },
          {
             "class" : "Dist::Zilla::Plugin::TestRelease",
             "name" : "@Author::ETHER/TestRelease",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Check",
             "name" : "@Author::ETHER/after tests",
-            "version" : "2.017"
+            "version" : "2.019"
          },
          {
             "class" : "Dist::Zilla::Plugin::UploadToCPAN",
             "name" : "@Author::ETHER/UploadToCPAN",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::CopyFilesFromRelease",
@@ -477,22 +618,22 @@
          {
             "class" : "Dist::Zilla::Plugin::Git::Commit",
             "name" : "@Author::ETHER/Git::Commit",
-            "version" : "2.017"
+            "version" : "2.019"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Tag",
             "name" : "@Author::ETHER/Git::Tag",
-            "version" : "2.017"
+            "version" : "2.019"
          },
          {
             "class" : "Dist::Zilla::Plugin::GitHub::Update",
             "name" : "@Author::ETHER/GitHub::Update",
-            "version" : "0.35"
+            "version" : "0.36"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Push",
             "name" : "@Author::ETHER/Git::Push",
-            "version" : "2.017"
+            "version" : "2.019"
          },
          {
             "class" : "Dist::Zilla::Plugin::InstallRelease",
@@ -500,9 +641,25 @@
             "version" : "0.008"
          },
          {
+            "class" : "Dist::Zilla::Plugin::Prereqs",
+            "config" : {
+               "Dist::Zilla::Plugin::Prereqs" : {
+                  "phase" : "develop",
+                  "type" : "requires"
+               }
+            },
+            "name" : "@Author::ETHER/via_options",
+            "version" : "5.012"
+         },
+         {
             "class" : "Dist::Zilla::Plugin::ConfirmRelease",
             "name" : "@Author::ETHER/ConfirmRelease",
-            "version" : "5.006"
+            "version" : "5.012"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::MetaResources",
+            "name" : "MetaResources",
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::Prereqs",
@@ -512,8 +669,8 @@
                   "type" : "requires"
                }
             },
-            "name" : "@Author::ETHER/via_options",
-            "version" : "5.006"
+            "name" : "DevelopRequires",
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::ContributorsFromGit",
@@ -523,32 +680,42 @@
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":InstallModules",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":IncModules",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":TestFiles",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ExecFiles",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ShareFiles",
-            "version" : "5.006"
+            "version" : "5.012"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":MainModule",
-            "version" : "5.006"
+            "version" : "5.012"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::FinderCode",
+            "name" : ":AllFiles",
+            "version" : "5.012"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::FinderCode",
+            "name" : ":NoFiles",
+            "version" : "5.012"
          }
       ],
       "zilla" : {
@@ -556,12 +723,12 @@
          "config" : {
             "is_trial" : "0"
          },
-         "version" : "5.006"
+         "version" : "5.012"
       }
    },
    "x_authority" : "cpan:GRODITI",
    "x_contributors" : [
-      "Guillermo Roditi <groditi@gmail.com>",
+      "David Steinbrunner <dsteinbrunner@pobox.com>",
       "Karen Etheridge <ether@cpan.org>",
       "Robert Boone <robo4288@gmail.com>",
       "Shawn M Moore <sartak@gmail.com>",
@@ -3,97 +3,120 @@ abstract: 'Make your classes pluggable'
 author:
   - 'Guillermo Roditi <groditi@cpan.org>'
 build_requires:
-  ExtUtils::MakeMaker: 0
-  File::Spec::Functions: 0
-  List::Util: 0
-  Moose: 0
-  Test::More: 0
-  lib: 0
-  strict: 0
-  warnings: 0
+  ExtUtils::MakeMaker: '0'
+  File::Spec::Functions: '0'
+  List::Util: '0'
+  Moose: '0'
+  Test::Fatal: '0'
+  Test::More: '0'
+  lib: '0'
+  strict: '0'
+  version: '0'
+  warnings: '0'
 configure_requires:
-  ExtUtils::MakeMaker: 6.30
-  Module::Build::Tiny: 0.030
+  ExtUtils::MakeMaker: '6.30'
+  Module::Build::Tiny: '0.034'
 dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.132830'
+generated_by: 'Dist::Zilla version 5.012, 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: MooseX-Object-Pluggable
 no_index:
   directory:
     - t
     - xt
     - examples
+    - share
 provides:
   MooseX::Object::Pluggable:
     file: lib/MooseX/Object/Pluggable.pm
-    version: 0.0012
+    version: '0.0013'
 requires:
-  Carp: 0
-  Class::Load: 0
-  Module::Pluggable::Object: 0
-  Moose::Role: 0
-  Scalar::Util: 0
-  perl: 5.006
+  Carp: '0'
+  Module::Pluggable::Object: '0'
+  Module::Runtime: '0'
+  Moose::Role: '0'
+  Moose::Util: '0'
+  Scalar::Util: '0'
+  Try::Tiny: '0'
+  namespace::autoclean: '0'
+  perl: '5.006'
 resources:
+  IRC: irc://irc.perl.org/#moose
+  MailingList: http://lists.perl.org/list/moose.html
   bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-Object-Pluggable
   homepage: https://github.com/moose/MooseX-Object-Pluggable
   repository: https://github.com/moose/MooseX-Object-Pluggable.git
-version: 0.0012
+version: '0.0013'
 x_Dist_Zilla:
   perl:
-    version: 5.019005
+    version: '5.019007'
   plugins:
     -
       class: Dist::Zilla::Plugin::Git::NextVersion
       name: '@Author::ETHER/Git::NextVersion'
-      version: 2.017
+      version: '2.019'
     -
       class: Dist::Zilla::Plugin::PromptIfStale
+      config:
+        Dist::Zilla::Plugin::PromptIfStale:
+          check_all_plugins: 0
+          check_all_prereqs: 0
+          modules:
+            - Dist::Zilla::PluginBundle::Author::ETHER
+          phase: build
+          skip: []
       name: '@Author::ETHER/build'
-      version: 0.012
+      version: '0.015'
     -
       class: Dist::Zilla::Plugin::PromptIfStale
+      config:
+        Dist::Zilla::Plugin::PromptIfStale:
+          check_all_plugins: '1'
+          check_all_prereqs: '1'
+          modules: []
+          phase: release
+          skip: []
       name: '@Author::ETHER/release'
-      version: 0.012
+      version: '0.015'
     -
       class: Dist::Zilla::Plugin::ExecDir
       name: '@Author::ETHER/ExecDir'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::ShareDir
       name: '@Author::ETHER/ShareDir'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::FileFinder::ByName
       name: '@Author::ETHER/Examples'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::Git::GatherDir
       name: '@Author::ETHER/Git::GatherDir'
-      version: 2.017
+      version: '2.019'
     -
       class: Dist::Zilla::Plugin::MetaYAML
       name: '@Author::ETHER/MetaYAML'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::MetaJSON
       name: '@Author::ETHER/MetaJSON'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::License
       name: '@Author::ETHER/License'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::Readme
       name: '@Author::ETHER/Readme'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::Manifest
       name: '@Author::ETHER/Manifest'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::GenerateFile::ShareDir
       config:
@@ -102,8 +125,8 @@ x_Dist_Zilla:
           dist: Dist-Zilla-PluginBundle-Author-ETHER
           encoding: UTF-8
           source_filename: CONTRIBUTING
-      name: '@Author::ETHER/GenerateFile::ShareDir'
-      version: 0.002
+      name: '@Author::ETHER/generate CONTRIBUTING'
+      version: '0.005'
     -
       class: Dist::Zilla::Plugin::Test::Compile
       config:
@@ -115,7 +138,7 @@ x_Dist_Zilla:
             - ':ExecFiles'
             - '@Author::ETHER/Examples'
       name: '@Author::ETHER/Test::Compile'
-      version: 2.037
+      version: '2.039'
     -
       class: Dist::Zilla::Plugin::Test::NoTabs
       config:
@@ -126,83 +149,79 @@ x_Dist_Zilla:
             - ':ExecFiles'
             - '@Author::ETHER/Examples'
       name: '@Author::ETHER/Test::NoTabs'
-      version: 0.05
+      version: '0.06'
     -
       class: Dist::Zilla::Plugin::EOLTests
       name: '@Author::ETHER/EOLTests'
-      version: 0.02
+      version: '0.02'
     -
       class: Dist::Zilla::Plugin::MetaTests
       name: '@Author::ETHER/MetaTests'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::Test::Version
       name: '@Author::ETHER/Test::Version'
-      version: 0.002004
+      version: '0.002004'
     -
       class: Dist::Zilla::Plugin::Test::CPAN::Changes
       name: '@Author::ETHER/Test::CPAN::Changes'
-      version: 0.008
+      version: '0.008'
     -
       class: Dist::Zilla::Plugin::Test::ChangesHasContent
       name: '@Author::ETHER/Test::ChangesHasContent'
-      version: 0.006
+      version: '0.006'
     -
       class: Dist::Zilla::Plugin::Test::UnusedVars
       name: '@Author::ETHER/Test::UnusedVars'
-      version: 2.000005
+      version: '2.000005'
     -
       class: Dist::Zilla::Plugin::Test::MinimumVersion
       name: '@Author::ETHER/Test::MinimumVersion'
-      version: 2.000005
+      version: '2.000005'
     -
       class: Dist::Zilla::Plugin::PodSyntaxTests
       name: '@Author::ETHER/PodSyntaxTests'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::PodCoverageTests
       name: '@Author::ETHER/PodCoverageTests'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::Test::PodSpelling
       name: '@Author::ETHER/Test::PodSpelling'
-      version: 2.006001
+      version: '2.006002'
     -
       class: Dist::Zilla::Plugin::Test::Pod::No404s
       name: '@Author::ETHER/Test::Pod::No404s'
-      version: 1.001
+      version: '1.001'
     -
       class: Dist::Zilla::Plugin::Test::Kwalitee
       name: '@Author::ETHER/Test::Kwalitee'
-      version: 2.07
+      version: '2.07'
     -
       class: Dist::Zilla::Plugin::MojibakeTests
       name: '@Author::ETHER/MojibakeTests'
-      version: 0.5
+      version: '0.5'
     -
       class: Dist::Zilla::Plugin::Test::ReportPrereqs
       name: '@Author::ETHER/Test::ReportPrereqs'
-      version: 0.010
-    -
-      class: Dist::Zilla::Plugin::PruneCruft
-      name: '@Author::ETHER/PruneCruft'
-      version: 5.006
-    -
-      class: Dist::Zilla::Plugin::ManifestSkip
-      name: '@Author::ETHER/ManifestSkip'
-      version: 5.006
+      version: '0.013'
     -
-      class: Dist::Zilla::Plugin::Authority
-      name: '@Author::ETHER/Authority'
-      version: 1.006
+      class: Dist::Zilla::Plugin::Test::Portability
+      name: '@Author::ETHER/Test::Portability'
+      version: '2.000005'
     -
       class: Dist::Zilla::Plugin::Git::Describe
       name: '@Author::ETHER/Git::Describe'
-      version: 0.003
+      version: '0.003'
     -
       class: Dist::Zilla::Plugin::PkgVersion
       name: '@Author::ETHER/PkgVersion'
-      version: 5.006
+      version: '5.012'
+    -
+      class: Dist::Zilla::Plugin::Authority
+      name: '@Author::ETHER/Authority'
+      version: '1.006'
     -
       class: Dist::Zilla::Plugin::PodWeaver
       config:
@@ -210,58 +229,138 @@ x_Dist_Zilla:
           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: '@Default/SingleEncoding'
+              version: '4.006'
+            -
+              class: Pod::Weaver::Section::Name
+              name: '@Default/Name'
+              version: '4.006'
+            -
+              class: Pod::Weaver::Section::Version
+              name: '@Default/Version'
+              version: '4.006'
+            -
+              class: Pod::Weaver::Section::Region
+              name: '@Default/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: ATTRIBUTES
+              version: '4.006'
+            -
+              class: Pod::Weaver::Section::Collect
+              name: METHODS
+              version: '4.006'
+            -
+              class: Pod::Weaver::Section::Collect
+              name: FUNCTIONS
+              version: '4.006'
+            -
+              class: Pod::Weaver::Section::Leftovers
+              name: '@Default/Leftovers'
+              version: '4.006'
+            -
+              class: Pod::Weaver::Section::Region
+              name: '@Default/postlude'
+              version: '4.006'
+            -
+              class: Pod::Weaver::Section::Authors
+              name: '@Default/Authors'
+              version: '4.006'
+            -
+              class: Pod::Weaver::Section::Legal
+              name: '@Default/Legal'
+              version: '4.006'
+            -
+              class: Pod::Weaver::Plugin::Transformer
+              name: -Transformer
+              version: '4.006'
+            -
+              class: Pod::Weaver::Plugin::StopWords
+              name: -StopWords
+              version: '1.008'
+            -
+              class: Pod::Weaver::Section::Contributors
+              name: Contributors
+              version: '0.007'
       name: '@Author::ETHER/PodWeaver'
-      version: 4.001
+      version: '4.005'
     -
       class: Dist::Zilla::Plugin::NextRelease
       name: '@Author::ETHER/NextRelease'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::ReadmeAnyFromPod
       name: '@Author::ETHER/ReadmeAnyFromPod'
-      version: 0.133030
+      version: '0.133360'
     -
       class: Dist::Zilla::Plugin::GithubMeta
       name: '@Author::ETHER/GithubMeta'
-      version: 0.42
+      version: '0.42'
     -
       class: Dist::Zilla::Plugin::AutoMetaResources
       name: '@Author::ETHER/AutoMetaResources'
-      version: 1.20
+      version: '1.20'
     -
       class: Dist::Zilla::Plugin::MetaNoIndex
       name: '@Author::ETHER/MetaNoIndex'
-      version: 5.006
-    -
-      class: Dist::Zilla::Plugin::FinderCode
-      name: '@Author::ETHER/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::MetaProvides::Package
       config:
-        Dist::Zilla::Plugin::MetaProvides::Package: {}
+        Dist::Zilla::Plugin::MetaProvides::Package:
+          finder:
+            - ':InstallModules'
+          finder_objects:
+            -
+              class: Dist::Zilla::Plugin::FinderCode
+              name: ':InstallModules'
+              version: '5.012'
         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::ETHER/MetaProvides::Package'
-      version: 1.15000000
+      version: '2.000000'
     -
       class: Dist::Zilla::Plugin::MetaConfig
       name: '@Author::ETHER/MetaConfig'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::AutoPrereqs
       name: '@Author::ETHER/AutoPrereqs'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::Prereqs::AuthorDeps
       name: '@Author::ETHER/Prereqs::AuthorDeps'
-      version: 0.002
+      version: '0.002'
     -
       class: Dist::Zilla::Plugin::MinimumPerl
       name: '@Author::ETHER/MinimumPerl'
-      version: 1.003
+      version: '1.003'
     -
       class: Dist::Zilla::Plugin::Prereqs
       config:
@@ -269,7 +368,7 @@ x_Dist_Zilla:
           phase: develop
           type: requires
       name: '@Author::ETHER/installer_requirements'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::Prereqs
       config:
@@ -277,131 +376,159 @@ x_Dist_Zilla:
           phase: develop
           type: recommends
       name: '@Author::ETHER/pluginbundle_version'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::RunExtraTests
       name: '@Author::ETHER/RunExtraTests'
-      version: 0.015
+      version: '0.016'
     -
       class: Dist::Zilla::Plugin::MakeMaker::Fallback
       name: '@Author::ETHER/MakeMaker::Fallback'
-      version: 0.003
+      version: '0.006'
     -
       class: Dist::Zilla::Plugin::ModuleBuildTiny
       name: '@Author::ETHER/ModuleBuildTiny'
-      version: 0.005
+      version: '0.006'
     -
       class: Dist::Zilla::Plugin::InstallGuide
       name: '@Author::ETHER/InstallGuide'
-      version: 1.200001
+      version: '1.200002'
     -
       class: Dist::Zilla::Plugin::CheckSelfDependency
+      config:
+        Dist::Zilla::Plugin::CheckSelfDependency:
+          finder:
+            - ':InstallModules'
       name: '@Author::ETHER/CheckSelfDependency'
-      version: 0.005
+      version: '0.007'
     -
       class: Dist::Zilla::Plugin::Run::AfterBuild
       name: '@Author::ETHER/Run::AfterBuild'
-      version: 0.020
+      version: '0.020'
     -
       class: Dist::Zilla::Plugin::Git::Check
       name: '@Author::ETHER/initial check'
-      version: 2.017
+      version: '2.019'
+    -
+      class: Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts
+      name: '@Author::ETHER/Git::CheckFor::MergeConflicts'
+      version: '0.009'
     -
       class: Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch
       name: '@Author::ETHER/Git::CheckFor::CorrectBranch'
-      version: 0.007
+      version: '0.009'
     -
       class: Dist::Zilla::Plugin::Git::Remote::Check
       name: '@Author::ETHER/Git::Remote::Check'
-      version: 0.1.2
+      version: 0.2.0
     -
       class: Dist::Zilla::Plugin::CheckPrereqsIndexed
       name: '@Author::ETHER/CheckPrereqsIndexed'
-      version: 0.009
+      version: '0.010'
     -
       class: Dist::Zilla::Plugin::TestRelease
       name: '@Author::ETHER/TestRelease'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::Git::Check
       name: '@Author::ETHER/after tests'
-      version: 2.017
+      version: '2.019'
     -
       class: Dist::Zilla::Plugin::UploadToCPAN
       name: '@Author::ETHER/UploadToCPAN'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::CopyFilesFromRelease
       name: '@Author::ETHER/CopyFilesFromRelease'
-      version: 0.001
+      version: '0.001'
     -
       class: Dist::Zilla::Plugin::Git::Commit
       name: '@Author::ETHER/Git::Commit'
-      version: 2.017
+      version: '2.019'
     -
       class: Dist::Zilla::Plugin::Git::Tag
       name: '@Author::ETHER/Git::Tag'
-      version: 2.017
+      version: '2.019'
     -
       class: Dist::Zilla::Plugin::GitHub::Update
       name: '@Author::ETHER/GitHub::Update'
-      version: 0.35
+      version: '0.36'
     -
       class: Dist::Zilla::Plugin::Git::Push
       name: '@Author::ETHER/Git::Push'
-      version: 2.017
+      version: '2.019'
     -
       class: Dist::Zilla::Plugin::InstallRelease
       name: '@Author::ETHER/InstallRelease'
-      version: 0.008
+      version: '0.008'
+    -
+      class: Dist::Zilla::Plugin::Prereqs
+      config:
+        Dist::Zilla::Plugin::Prereqs:
+          phase: develop
+          type: requires
+      name: '@Author::ETHER/via_options'
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::ConfirmRelease
       name: '@Author::ETHER/ConfirmRelease'
-      version: 5.006
+      version: '5.012'
+    -
+      class: Dist::Zilla::Plugin::MetaResources
+      name: MetaResources
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::Prereqs
       config:
         Dist::Zilla::Plugin::Prereqs:
           phase: develop
           type: requires
-      name: '@Author::ETHER/via_options'
-      version: 5.006
+      name: DevelopRequires
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::ContributorsFromGit
       name: ContributorsFromGit
-      version: 0.006
+      version: '0.006'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':InstallModules'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':IncModules'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':TestFiles'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ExecFiles'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ShareFiles'
-      version: 5.006
+      version: '5.012'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':MainModule'
-      version: 5.006
+      version: '5.012'
+    -
+      class: Dist::Zilla::Plugin::FinderCode
+      name: ':AllFiles'
+      version: '5.012'
+    -
+      class: Dist::Zilla::Plugin::FinderCode
+      name: ':NoFiles'
+      version: '5.012'
   zilla:
     class: Dist::Zilla::Dist::Builder
     config:
-      is_trial: 0
-    version: 5.006
+      is_trial: '0'
+    version: '5.012'
 x_authority: cpan:GRODITI
 x_contributors:
-  - 'Guillermo Roditi <groditi@gmail.com>'
+  - 'David Steinbrunner <dsteinbrunner@pobox.com>'
   - 'Karen Etheridge <ether@cpan.org>'
   - 'Robert Boone <robo4288@gmail.com>'
   - 'Shawn M Moore <sartak@gmail.com>'
@@ -1,6 +1,7 @@
 # This Makefile.PL for MooseX-Object-Pluggable was generated by
-# Dist::Zilla::Plugin::MakeMaker::Fallback 0.003.
-# Don't edit it but the dist.ini used to construct it.
+# Dist::Zilla::Plugin::MakeMaker::Fallback 0.006
+# and Dist::Zilla::Plugin::MakeMaker::Awesome 0.19.
+# Don't edit it but the dist.ini and plugins used to construct it.
 
 use strict;
 use warnings;
@@ -8,7 +9,7 @@ use warnings;
 BEGIN {
 my %configure_requires = (
     'ExtUtils::MakeMaker' => '6.30',
-    'Module::Build::Tiny' => '0.030',
+    'Module::Build::Tiny' => '0.034',
 );
 
 my @missing = grep {
@@ -21,10 +22,10 @@ if (not @missing)
 }
 else
 {
-    warn <<'EOW';
+    $ENV{PERL_MM_FALLBACK_SILENCE_WARNING} or warn <<'EOW';
 *** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***
 
-If you're seeing this warning, your toolchain is really, really old and you'll
+If you're seeing this warning, your toolchain is really, really old* and you'll
 almost certainly have problems installing CPAN modules from this century. But
 never fear, dear user, for we have the technology to fix this!
 
@@ -45,9 +46,18 @@ when present instead.
 This public service announcement was brought to you by the Perl Toolchain
 Gang, the irc.perl.org #toolchain IRC channel, and the number 42.
 
+----
+
+* Alternatively, you are doing something overly clever, in which case you
+should consider setting the 'prefer_installer' config option in CPAN.pm, or
+'prefer_makefile' in CPANPLUS, to 'mb" and '0' respectively.
+
+You can also silence this warning for future installations by setting the
+PERL_MM_FALLBACK_SILENCE_WARNING environment variable.
+
 EOW
 
-    sleep 10 if -t STDIN;
+    sleep 10 if -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT));
 }
 }
 
@@ -63,7 +73,7 @@ my %WriteMakefileArgs = (
   "BUILD_REQUIRES" => {},
   "CONFIGURE_REQUIRES" => {
     "ExtUtils::MakeMaker" => "6.30",
-    "Module::Build::Tiny" => "0.030"
+    "Module::Build::Tiny" => "0.034"
   },
   "DISTNAME" => "MooseX-Object-Pluggable",
   "EXE_FILES" => [],
@@ -71,52 +81,59 @@ my %WriteMakefileArgs = (
   "NAME" => "MooseX::Object::Pluggable",
   "PREREQ_PM" => {
     "Carp" => 0,
-    "Class::Load" => 0,
     "Module::Pluggable::Object" => 0,
+    "Module::Runtime" => 0,
     "Moose::Role" => 0,
-    "Scalar::Util" => 0
+    "Moose::Util" => 0,
+    "Scalar::Util" => 0,
+    "Try::Tiny" => 0,
+    "namespace::autoclean" => 0
   },
   "TEST_REQUIRES" => {
     "ExtUtils::MakeMaker" => 0,
     "File::Spec::Functions" => 0,
     "List::Util" => 0,
     "Moose" => 0,
+    "Test::Fatal" => 0,
     "Test::More" => 0,
     "lib" => 0,
     "strict" => 0,
+    "version" => 0,
     "warnings" => 0
   },
-  "VERSION" => "0.0012",
+  "VERSION" => "0.0013",
   "test" => {
     "TESTS" => "t/*.t"
   }
 );
 
 
-unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
-  my $tr = delete $WriteMakefileArgs{TEST_REQUIRES};
-  my $br = $WriteMakefileArgs{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 %FallbackPrereqs = (
+  "Carp" => 0,
+  "ExtUtils::MakeMaker" => 0,
+  "File::Spec::Functions" => 0,
+  "List::Util" => 0,
+  "Module::Pluggable::Object" => 0,
+  "Module::Runtime" => 0,
+  "Moose" => 0,
+  "Moose::Role" => 0,
+  "Moose::Util" => 0,
+  "Scalar::Util" => 0,
+  "Test::Fatal" => 0,
+  "Test::More" => 0,
+  "Try::Tiny" => 0,
+  "lib" => 0,
+  "namespace::autoclean" => 0,
+  "strict" => 0,
+  "version" => 0,
+  "warnings" => 0
+);
 
-unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {
-  my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
-  my $pp = $WriteMakefileArgs{PREREQ_PM};
-  for my $mod ( keys %$br ) {
-    if ( exists $pp->{$mod} ) {
-      $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod};
-    }
-    else {
-      $pp->{$mod} = $br->{$mod};
-    }
-  }
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+  delete $WriteMakefileArgs{TEST_REQUIRES};
+  delete $WriteMakefileArgs{BUILD_REQUIRES};
+  $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
 }
 
 delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
@@ -1,7 +1,7 @@
 
 
 This archive contains the distribution MooseX-Object-Pluggable,
-version 0.0012:
+version 0.0013:
 
   Make your classes pluggable
 
@@ -11,3 +11,5 @@ This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
 
 
+This README file was generated by Dist::Zilla::Plugin::Readme v5.012.
+
@@ -4,7 +4,7 @@ MooseX::Object::Pluggable - Make your classes pluggable
 
 # VERSION
 
-version 0.0012
+version 0.0013
 
 # SYNOPSIS
 
@@ -30,8 +30,8 @@ version 0.0012
 
 # DESCRIPTION
 
-This module is meant to be loaded as a role from Moose-based classes
-it will add five methods and four attributes to assist you with the loading
+This module is meant to be loaded as a role from Moose-based classes.
+It will add five methods and four attributes to assist you with the loading
 and handling of plugins and extensions for plugins. I understand that this may
 pollute your namespace, however I took great care in using the least ambiguous
 names possible.
@@ -44,13 +44,13 @@ one instance of a class they can all have different plugins loaded. This is a fe
 
 Plugin methods are allowed to `around`, `before`, `after`
 their consuming classes, so it is important to watch for load order as plugins can
-and will overload each other. You may also add attributes through has.
+and will overload each other. You may also add attributes through `has`.
 
 Please note that when you load at runtime you lose the ability to wrap `BUILD`
 and roles using `has` will not go through compile time checks like `required`
-and <default>.
+and `default`.
 
-Even though `override` will work , I STRONGLY discourage it's use
+Even though `override` will work, I __STRONGLY__ discourage its use
 and a warning will be thrown if you try to use it.
 This is closely linked to the way multiple roles being applied is handled and is not
 likely to change. `override` behavior is closely linked to inheritance and thus will
@@ -60,7 +60,8 @@ save yourself the headache.
 # How plugins are loaded
 
 When roles are applied at runtime an anonymous class will wrap your class and
-`$self->blessed` and `ref $self` will no longer return the name of your object,
+`$self->blessed`, `ref $self` and `$self->meta->name`
+will no longer return the name of your object;
 they will instead return the name of the anonymous class created at runtime.
 See `_original_class_name`.
 
@@ -72,24 +73,25 @@ For a simple example see the tests included in this distribution.
 
 ## \_plugin\_ns
 
-String. The prefix to use for plugin names provided. MyApp::Plugin is sensible.
+String. The prefix to use for plugin names provided. `MyApp::Plugin` is sensible.
 
 ## \_plugin\_app\_ns
 
-ArrayRef, Accessor automatically dereferences into array on a read call.
-By default will be filled with the class name and its precedents, it is used
+An ArrayRef accessor that automatically dereferences into array on a read call.
+By default it will be filled with the class name and its precedents. It is used
 to determine which directories to look for plugins as well as which plugins
 take precedence upon namespace collisions. This allows you to subclass a pluggable
-class and still use it's plugins while using yours first if they are available.
+class and still use its plugins while using yours first if they are available.
 
 ## \_plugin\_locator
 
-An automatically built instance of [Module::Pluggable::Object](http://search.cpan.org/perldoc?Module::Pluggable::Object) used to locate
+An automatically built instance of [Module::Pluggable::Object](https://metacpan.org/pod/Module::Pluggable::Object) used to locate
 available plugins.
 
 ## \_original\_class\_name
 
-Because of the way roles apply `$self->blessed` and `ref $self` will
+Because of the way roles apply, `$self->blessed`, `ref $self`
+and `$self->meta->name` will
 no longer return what you expect. Instead, upon instantiation, the name of the
 class instantiated will be stored in this attribute if you need to access the
 name the class held before any runtime roles were applied.
@@ -130,16 +132,16 @@ class precedence list that are not part of Moose.
 
 ## \_build\_plugin\_locator
 
-Automatically creates a [Module::Pluggable::Object](http://search.cpan.org/perldoc?Module::Pluggable::Object) instance with the correct
+Automatically creates a [Module::Pluggable::Object](https://metacpan.org/pod/Module::Pluggable::Object) instance with the correct
 search\_path.
 
 ## meta
 
-Keep tests happy. See [Moose](http://search.cpan.org/perldoc?Moose)
+Keep tests happy. See [Moose](https://metacpan.org/pod/Moose)
 
 # SEE ALSO
 
-[Moose](http://search.cpan.org/perldoc?Moose), [Moose::Role](http://search.cpan.org/perldoc?Moose::Role), [Class::Inspector](http://search.cpan.org/perldoc?Class::Inspector)
+[Moose](https://metacpan.org/pod/Moose), [Moose::Role](https://metacpan.org/pod/Moose::Role), [Class::Inspector](https://metacpan.org/pod/Class::Inspector)
 
 # BUGS
 
@@ -177,7 +179,7 @@ You can also look for information at:
 
 # ACKNOWLEDGEMENTS
 
-- \#Moose - Huge number of questions
+- #Moose - Huge number of questions
 - Matt S Trout <mst@shadowcatsystems.co.uk> - ideas / planning.
 - Stevan Little - EVERYTHING. Without him this would have never happened.
 - Shawn M Moore - bugfixes
@@ -192,3 +194,12 @@ This software is copyright (c) 2007 by Guillermo Roditi <groditi@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.
+
+# CONTRIBUTORS
+
+- David Steinbrunner <dsteinbrunner@pobox.com>
+- Karen Etheridge <ether@cpan.org>
+- Robert Boone <robo4288@gmail.com>
+- Shawn M Moore <sartak@gmail.com>
+- Todd Hepler <thepler@employees.org>
+- Yuval Kogman <nothingmuch@woobling.org>
@@ -8,7 +8,16 @@ copyright_year = 2007
 :version = 0.039
 server = github
 Authority.authority = cpan:GRODITI
+AutoPrereqs.skip = TestApp3::Missing
 
+[MetaResources]
+x_IRC = irc://irc.perl.org/#moose
+x_MailingList = http://lists.perl.org/list/moose.html
+
+[Prereqs / DevelopRequires]
+Test::CleanNamespaces = 0
+
+; authordep Pod::Weaver 4
 ; authordep Pod::Weaver::Section::Contributors
 
 [ContributorsFromGit]
@@ -1,20 +1,113 @@
 package MooseX::Object::Pluggable;
-{
-  $MooseX::Object::Pluggable::VERSION = '0.0012';
-}
-# git description: v0.0011-6-g98105e4
-
 BEGIN {
   $MooseX::Object::Pluggable::AUTHORITY = 'cpan:GRODITI';
 }
+# git description: v0.0012-15-gff720b0
+$MooseX::Object::Pluggable::VERSION = '0.0013';
 # ABSTRACT: Make your classes pluggable
 
 use Carp;
 use Moose::Role;
-use Class::Load 'load_class';
+use Module::Runtime 'use_module';
 use Scalar::Util 'blessed';
+use Try::Tiny;
 use Module::Pluggable::Object;
-
+use Moose::Util 'find_meta';
+use namespace::autoclean;
+
+# =head1 SYNOPSIS
+#
+#     package MyApp;
+#     use Moose;
+#
+#     with 'MooseX::Object::Pluggable';
+#
+#     ...
+#
+#     package MyApp::Plugin::Pretty;
+#     use Moose::Role;
+#
+#     sub pretty{ print "I am pretty" }
+#
+#     1;
+#
+#     #
+#     use MyApp;
+#     my $app = MyApp->new;
+#     $app->load_plugin('Pretty');
+#     $app->pretty;
+#
+# =head1 DESCRIPTION
+#
+# This module is meant to be loaded as a role from Moose-based classes.
+# It will add five methods and four attributes to assist you with the loading
+# and handling of plugins and extensions for plugins. I understand that this may
+# pollute your namespace, however I took great care in using the least ambiguous
+# names possible.
+#
+# =head1 How plugins Work
+#
+# Plugins and extensions are just Roles by a fancy name. They are loaded at runtime
+# on demand and are instance, not class based. This means that if you have more than
+# one instance of a class they can all have different plugins loaded. This is a feature.
+#
+# Plugin methods are allowed to C<around>, C<before>, C<after>
+# their consuming classes, so it is important to watch for load order as plugins can
+# and will overload each other. You may also add attributes through C<has>.
+#
+# Please note that when you load at runtime you lose the ability to wrap C<BUILD>
+# and roles using C<has> will not go through compile time checks like C<required>
+# and C<default>.
+#
+# Even though C<override> will work, I B<STRONGLY> discourage its use
+# and a warning will be thrown if you try to use it.
+# This is closely linked to the way multiple roles being applied is handled and is not
+# likely to change. C<override> behavior is closely linked to inheritance and thus will
+# likely not work as you expect it in multiple inheritance situations. Point being,
+# save yourself the headache.
+#
+# =head1 How plugins are loaded
+#
+# When roles are applied at runtime an anonymous class will wrap your class and
+# C<< $self->blessed >>, C<< ref $self >> and C<< $self->meta->name >>
+# will no longer return the name of your object;
+# they will instead return the name of the anonymous class created at runtime.
+# See C<_original_class_name>.
+#
+# =head1 Usage
+#
+# For a simple example see the tests included in this distribution.
+#
+# =head1 Attributes
+#
+# =head2 _plugin_ns
+#
+# String. The prefix to use for plugin names provided. C<MyApp::Plugin> is sensible.
+#
+# =head2 _plugin_app_ns
+#
+# An ArrayRef accessor that automatically dereferences into array on a read call.
+# By default it will be filled with the class name and its precedents. It is used
+# to determine which directories to look for plugins as well as which plugins
+# take precedence upon namespace collisions. This allows you to subclass a pluggable
+# class and still use its plugins while using yours first if they are available.
+#
+# =head2 _plugin_locator
+#
+# An automatically built instance of L<Module::Pluggable::Object> used to locate
+# available plugins.
+#
+# =head2 _original_class_name
+#
+# =for stopwords instantiation
+#
+# Because of the way roles apply, C<< $self->blessed >>, C<< ref $self >>
+# and C<< $self->meta->name >> will
+# no longer return what you expect. Instead, upon instantiation, the name of the
+# class instantiated will be stored in this attribute if you need to access the
+# name the class held before any runtime roles were applied.
+#
+# =cut
 
 #--------#---------#---------#---------#---------#---------#---------#---------#
 
@@ -61,23 +154,34 @@ has _plugin_locator => (
 
 #--------#---------#---------#---------#---------#---------#---------#---------#
 
+# =head1 Public Methods
+#
+# =head2 load_plugins @plugins
+#
+# =head2 load_plugin $plugin
+#
+# Load the appropriate role for C<$plugin>.
+#
+# =cut
 
 sub load_plugins {
     my ($self, @plugins) = @_;
     die("You must provide a plugin name") unless @plugins;
 
     my $loaded = $self->_plugin_loaded;
-    my @load = grep { not exists $loaded->{$_} } @plugins;
-    my @roles = map { $self->_role_from_plugin($_) } @load;
+    @plugins = grep { not exists $loaded->{$_} } @plugins;
+
+    return if @plugins == 0;
 
-    return if @roles == 0;
+    foreach my $plugin (@plugins)
+    {
+        my $role = $self->_role_from_plugin($plugin);
+        return if not $self->_load_and_apply_role($role);
 
-    if ( $self->_load_and_apply_role(@roles) ) {
-        @{ $loaded }{@load} = @roles;
-        return 1;
-    } else {
-        return;
+        $loaded->{$plugin} = $role;
     }
+
+    return 1;
 }
 
 
@@ -86,6 +190,23 @@ sub load_plugin {
   $self->load_plugins(@_);
 }
 
+# =head1 Private Methods
+#
+# There's nothing stopping you from using these, but if you are using them
+# for anything that's not really complicated you are probably doing
+# something wrong.
+#
+# =head2 _role_from_plugin $plugin
+#
+# Creates a role name from a plugin name. If the plugin name is prepended
+# with a C<+> it will be treated as a full name returned as is. Otherwise
+# a string consisting of C<$plugin>  prepended with the C<_plugin_ns>
+# and the first valid value from C<_plugin_app_ns> will be returned. Example
+#
+#    #assuming appname MyApp and C<_plugin_ns> 'Plugin'
+#    $self->_role_from_plugin("MyPlugin"); # MyApp::Plugin::MyPlugin
+#
+# =cut
 
 sub _role_from_plugin{
     my ($self, $plugin) = @_;
@@ -100,32 +221,45 @@ sub _role_from_plugin{
     return $roles[0] if @roles == 1;
 
     my $i = 0;
-    my %presedence_list = map{ $i++; "${_}::${o}", $i } $self->_plugin_app_ns;
+    my %precedence_list = map{ $i++; "${_}::${o}", $i } $self->_plugin_app_ns;
 
-    @roles = sort{ $presedence_list{$a} <=> $presedence_list{$b}} @roles;
+    @roles = sort{ $precedence_list{$a} <=> $precedence_list{$b}} @roles;
 
     return shift @roles;
 }
 
+# =head2 _load_and_apply_role @roles
+#
+# Require C<$role> if it is not already loaded and apply it. This is
+# the meat of this module.
+#
+# =cut
 
-sub _load_and_apply_role{
-    my ($self, @roles) = @_;
-    die("You must provide a role name") unless @roles;
+sub _load_and_apply_role {
+    my ($self, $role) = @_;
+    die("You must provide a role name") unless $role;
 
-    foreach my $role ( @roles ) {
-        eval { load_class($role) };
-        confess("Failed to load role: ${role} $@") if $@;
+    try { use_module($role) }
+    catch { confess("Failed to load role: ${role} $_") };
 
-        carp("Using 'override' is strongly discouraged and may not behave ".
-            "as you expect it to. Please use 'around'")
-        if scalar keys %{ $role->meta->get_override_method_modifiers_map };
-    }
+    croak("Your plugin '$role' must be a Moose::Role")
+        unless find_meta($role)->isa('Moose::Meta::Role');
+
+    carp("Using 'override' is strongly discouraged and may not behave ".
+        "as you expect it to. Please use 'around'")
+    if scalar keys %{ $role->meta->get_override_method_modifiers_map };
 
-    Moose::Util::apply_all_roles( $self, @roles );
+    Moose::Util::apply_all_roles( $self, $role );
 
     return 1;
 }
 
+# =head2 _build_plugin_app_ns
+#
+# Automatically builds the _plugin_app_ns attribute with the classes in the
+# class precedence list that are not part of Moose.
+#
+# =cut
 
 sub _build_plugin_app_ns{
     my $self = shift;
@@ -133,6 +267,12 @@ sub _build_plugin_app_ns{
     return \@names;
 }
 
+# =head2 _build_plugin_locator
+#
+# Automatically creates a L<Module::Pluggable::Object> instance with the correct
+# search_path.
+#
+# =cut
 
 sub _build_plugin_locator{
     my $self = shift;
@@ -144,6 +284,11 @@ sub _build_plugin_locator{
     return $locator;
 }
 
+# =head2 meta
+#
+# Keep tests happy. See L<Moose>
+#
+# =cut
 
 1;
 
@@ -151,13 +296,17 @@ sub _build_plugin_locator{
 
 =encoding UTF-8
 
+=for :stopwords Guillermo Roditi <groditi@cpan.org> David Hepler Yuval Kogman Steinbrunner
+Karen Etheridge Robert Boone Shawn M Moore Todd instantiation AnnoCPAN
+Stevan
+
 =head1 NAME
 
 MooseX::Object::Pluggable - Make your classes pluggable
 
 =head1 VERSION
 
-version 0.0012
+version 0.0013
 
 =head1 SYNOPSIS
 
@@ -183,8 +332,8 @@ version 0.0012
 
 =head1 DESCRIPTION
 
-This module is meant to be loaded as a role from Moose-based classes
-it will add five methods and four attributes to assist you with the loading
+This module is meant to be loaded as a role from Moose-based classes.
+It will add five methods and four attributes to assist you with the loading
 and handling of plugins and extensions for plugins. I understand that this may
 pollute your namespace, however I took great care in using the least ambiguous
 names possible.
@@ -197,13 +346,13 @@ one instance of a class they can all have different plugins loaded. This is a fe
 
 Plugin methods are allowed to C<around>, C<before>, C<after>
 their consuming classes, so it is important to watch for load order as plugins can
-and will overload each other. You may also add attributes through has.
+and will overload each other. You may also add attributes through C<has>.
 
 Please note that when you load at runtime you lose the ability to wrap C<BUILD>
 and roles using C<has> will not go through compile time checks like C<required>
-and <default>.
+and C<default>.
 
-Even though C<override> will work , I STRONGLY discourage it's use
+Even though C<override> will work, I B<STRONGLY> discourage its use
 and a warning will be thrown if you try to use it.
 This is closely linked to the way multiple roles being applied is handled and is not
 likely to change. C<override> behavior is closely linked to inheritance and thus will
@@ -213,7 +362,8 @@ save yourself the headache.
 =head1 How plugins are loaded
 
 When roles are applied at runtime an anonymous class will wrap your class and
-C<$self-E<gt>blessed> and C<ref $self> will no longer return the name of your object,
+C<< $self->blessed >>, C<< ref $self >> and C<< $self->meta->name >>
+will no longer return the name of your object;
 they will instead return the name of the anonymous class created at runtime.
 See C<_original_class_name>.
 
@@ -225,15 +375,15 @@ For a simple example see the tests included in this distribution.
 
 =head2 _plugin_ns
 
-String. The prefix to use for plugin names provided. MyApp::Plugin is sensible.
+String. The prefix to use for plugin names provided. C<MyApp::Plugin> is sensible.
 
 =head2 _plugin_app_ns
 
-ArrayRef, Accessor automatically dereferences into array on a read call.
-By default will be filled with the class name and its precedents, it is used
+An ArrayRef accessor that automatically dereferences into array on a read call.
+By default it will be filled with the class name and its precedents. It is used
 to determine which directories to look for plugins as well as which plugins
 take precedence upon namespace collisions. This allows you to subclass a pluggable
-class and still use it's plugins while using yours first if they are available.
+class and still use its plugins while using yours first if they are available.
 
 =head2 _plugin_locator
 
@@ -242,9 +392,8 @@ available plugins.
 
 =head2 _original_class_name
 
-=for stopwords instantiation
-
-Because of the way roles apply C<$self-E<gt>blessed> and C<ref $self> will
+Because of the way roles apply, C<< $self->blessed >>, C<< ref $self >>
+and C<< $self->meta->name >> will
 no longer return what you expect. Instead, upon instantiation, the name of the
 class instantiated will be stored in this attribute if you need to access the
 name the class held before any runtime roles were applied.
@@ -314,8 +463,6 @@ You can find documentation for this module with the perldoc command.
 
 You can also look for information at:
 
-=for stopwords AnnoCPAN
-
 =over 4
 
 =item * AnnoCPAN: Annotated CPAN documentation
@@ -338,8 +485,6 @@ L<http://search.cpan.org/dist/MooseX-Object-Pluggable>
 
 =head1 ACKNOWLEDGEMENTS
 
-=for stopwords Stevan
-
 =over 4
 
 =item #Moose - Huge number of questions
@@ -363,6 +508,36 @@ This software is copyright (c) 2007 by Guillermo Roditi <groditi@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.
 
+=head1 CONTRIBUTORS
+
+=over 4
+
+=item *
+
+David Steinbrunner <dsteinbrunner@pobox.com>
+
+=item *
+
+Karen Etheridge <ether@cpan.org>
+
+=item *
+
+Robert Boone <robo4288@gmail.com>
+
+=item *
+
+Shawn M Moore <sartak@gmail.com>
+
+=item *
+
+Todd Hepler <thepler@employees.org>
+
+=item *
+
+Yuval Kogman <nothingmuch@woobling.org>
+
+=back
+
 =cut
 
 __END__;
@@ -3,71 +3,145 @@
 use strict;
 use warnings;
 
-# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.010
+# 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 @modules = qw(
-  CPAN::Meta
-  CPAN::Meta::Requirements
-  Carp
-  Class::Load
-  ExtUtils::MakeMaker
-  File::Spec::Functions
-  List::Util
-  Module::Build::Tiny
-  Module::Pluggable::Object
-  Moose
-  Moose::Role
-  Scalar::Util
-  Test::More
-  lib
-  perl
-  strict
-  warnings
 );
 
 my %exclude = map {; $_ => 1 } qw(
 
 );
 
-my ($source) = grep { -f $_ } qw/MYMETA.json MYMETA.yml META.json/;
-$source = "META.yml" unless defined $source;
-
-# replace modules with dynamic results from MYMETA.json if we can
-# (hide CPAN::Meta from prereq scanner)
-my $cpan_meta = "CPAN::Meta";
-my $cpan_meta_req = "CPAN::Meta::Requirements";
+# Add static prereqs to the included modules list
+my $static_prereqs = do { my $x = {
+       'configure' => {
+                        'requires' => {
+                                        'ExtUtils::MakeMaker' => '6.30',
+                                        'Module::Build::Tiny' => '0.034'
+                                      }
+                      },
+       'develop' => {
+                      'recommends' => {
+                                        'Dist::Zilla::PluginBundle::Author::ETHER' => '0.049'
+                                      },
+                      'requires' => {
+                                      'Dist::Zilla' => '5.012',
+                                      'Dist::Zilla::Plugin::ContributorsFromGit' => '0',
+                                      'Dist::Zilla::Plugin::GitHub::Update' => '0',
+                                      'Dist::Zilla::Plugin::GithubMeta' => '0',
+                                      'Dist::Zilla::Plugin::MakeMaker::Fallback' => '0',
+                                      'Dist::Zilla::Plugin::MetaResources' => '0',
+                                      'Dist::Zilla::Plugin::ModuleBuildTiny' => '0.004',
+                                      'Dist::Zilla::Plugin::Prereqs' => '0',
+                                      'Dist::Zilla::PluginBundle::Author::ETHER' => '0.039',
+                                      'File::Spec' => '0',
+                                      'IO::Handle' => '0',
+                                      'IPC::Open3' => '0',
+                                      'Pod::Coverage::TrustPod' => '0',
+                                      'Pod::Weaver::Section::Contributors' => '0',
+                                      'Test::CPAN::Changes' => '0.19',
+                                      'Test::CPAN::Meta' => '0',
+                                      'Test::CleanNamespaces' => '0',
+                                      'Test::Kwalitee' => '1.12',
+                                      'Test::More' => '0.94',
+                                      'Test::NoTabs' => '0',
+                                      'Test::Pod' => '1.41',
+                                      'Test::Pod::Coverage' => '1.08'
+                                    }
+                    },
+       'runtime' => {
+                      'requires' => {
+                                      'Carp' => '0',
+                                      'Module::Pluggable::Object' => '0',
+                                      'Module::Runtime' => '0',
+                                      'Moose::Role' => '0',
+                                      'Moose::Util' => '0',
+                                      'Scalar::Util' => '0',
+                                      'Try::Tiny' => '0',
+                                      'namespace::autoclean' => '0',
+                                      'perl' => '5.006'
+                                    }
+                    },
+       'test' => {
+                   'recommends' => {
+                                     'CPAN::Meta' => '0',
+                                     'CPAN::Meta::Requirements' => '2.120900'
+                                   },
+                   'requires' => {
+                                   'ExtUtils::MakeMaker' => '0',
+                                   'File::Spec::Functions' => '0',
+                                   'List::Util' => '0',
+                                   'Moose' => '0',
+                                   'Test::Fatal' => '0',
+                                   'Test::More' => '0',
+                                   'lib' => '0',
+                                   'strict' => '0',
+                                   'version' => '0',
+                                   'warnings' => '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 ( -f $source && eval "require $cpan_meta" ) { ## no critic
+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;
 
-    # Get ALL modules mentioned in META (any phase/type)
-    my $prereqs = $meta->prereqs;
-    delete $prereqs->{develop} if not $ENV{AUTHOR_TESTING};
-    my %uniq = map {$_ => 1} map { keys %$_ } map { values %$_ } values %$prereqs;
-    $uniq{$_} = 1 for @modules; # don't lose any static ones
-    @modules = sort grep { ! $exclude{$_} } keys %uniq;
-
-    # If verifying, merge 'requires' only for major phases
-    if ( 1 ) {
-      $prereqs = $meta->effective_prereqs; # get the object, not the hash
-      if (eval "require $cpan_meta_req; 1") { ## no critic
-        $all_requires = $cpan_meta_req->new;
-        for my $phase ( qw/configure build test runtime/ ) {
-          $all_requires->add_requirements(
-            $prereqs->requirements_for($phase, 'requires')
-          );
-        }
-      }
+    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 : {};
@@ -83,7 +157,7 @@ for my $mod ( @modules ) {
     $ver = "undef" unless defined $ver; # Newer MM should do this anyway
     push @reports, [$ver, $mod];
 
-    if ( 1 && $all_requires ) {
+    if ( $DO_VERIFY_PREREQS && $all_requires ) {
       my $req = $req_hash->{$mod};
       if ( defined $req && length $req ) {
         if ( ! defined eval { version->parse($ver) } ) {
@@ -99,7 +173,7 @@ for my $mod ( @modules ) {
   else {
     push @reports, ["missing", $mod];
 
-    if ( 1 && $all_requires ) {
+    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)";
@@ -127,4 +201,4 @@ if ( @dep_errors ) {
 
 pass;
 
-# vim: ts=2 sts=2 sw=2 et:
+# vim: ts=4 sts=4 sw=4 et:
@@ -0,0 +1,67 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Test::More;
+use Test::Fatal;
+use lib 't/lib';
+
+use TestApp3;
+
+{
+    my $app = TestApp3->new;
+    my $res;
+
+    is(
+        exception { $res = $app->load_plugin('Lives') },
+        undef,
+        'lived through successfully loading a class',
+    );
+
+    note "does roles: ", join(', ', map { $_->name } $app->meta->calculate_all_roles_with_inheritance );
+
+    ok(exists $app->_plugin_loaded->{'Lives'}, 'Lives was added to loaded plugin list');
+    ok($app->does('TestApp3::Plugin::Lives'), 'app has the Lives plugin applied');
+
+    like(
+        exception { $res = $app->load_plugin('Dies1') },
+        qr/Failed to load /,
+        'Failure to load a class results in an exception',
+    );
+
+    ok(!exists $app->_plugin_loaded->{'Dies1'}, 'Dies1 was not added to loaded plugin list');
+    ok(!$app->does('TestApp3::Plugin::Dies1'), 'app does not have the Dies1 plugin applied');
+
+    ok(exists $app->_plugin_loaded->{'Lives'}, 'Lives is still in the loaded plugin list');
+    ok($app->does('TestApp3::Plugin::Lives'), 'app still has the Lives plugin applied');
+}
+
+{
+    my $app = TestApp3->new;
+    my $res;
+
+    # note - it's key that we already tried to load Dies1 in an earlier test
+    like(
+        exception { $res = $app->load_plugin('Dies1') },
+        qr/Failed to load /,
+        'Failure to load a class again results in the right exception',
+    );
+
+    #$res = warning {$app->load_plugins('Dies2', 'Lives')};
+    like(
+        exception { $res = $app->load_plugins('Lives', 'Dies2') },
+        qr/Failed to load /,
+        'Failure to load any class in a list results in an exception',
+    );
+    note "does roles: ", join(', ', map { $_->name } $app->meta->calculate_all_roles_with_inheritance );
+
+    ok(!exists $app->_plugin_loaded->{'Dies1'}, 'Dies1 was not added to loaded plugin list');
+    ok(!$app->does('TestApp3::Plugin::Dies1'), 'app does not have the Dies1 plugin applied');
+
+    ok(exists $app->_plugin_loaded->{'Lives'}, 'Lives was added to loaded plugin list');
+    ok($app->does('TestApp3::Plugin::Lives'), 'app has the Lives plugin applied');
+
+    ok(!exists $app->_plugin_loaded->{'Dies2'}, 'Dies2 was not added to loaded plugin list');
+    ok(!$app->does('TestApp3::Plugin::Dies2'), 'app does not have the Dies2 plugin applied');
+}
+
+done_testing;
@@ -1,46 +0,0 @@
-use strict;
-use warnings;
-use Test::More tests => 3;
-
-sub not_in_file_ok {
-    my ($filename, %regex) = @_;
-    open my $fh, "<", $filename
-        or die "couldn't open $filename for reading: $!";
-
-    my %violated;
-
-    while (my $line = <$fh>) {
-        while (my ($desc, $regex) = each %regex) {
-            if ($line =~ $regex) {
-                push @{$violated{$desc}||=[]}, $.;
-            }
-        }
-    }
-
-    if (%violated) {
-        fail("$filename contains boilerplate text");
-        diag "$_ appears on lines @{$violated{$_}}" for keys %violated;
-    } else {
-        pass("$filename contains no boilerplate text");
-    }
-}
-
-not_in_file_ok(README =>
-    "The README is used..."       => qr/The README is used/,
-    "'version information here'"  => qr/to provide version information/,
-);
-
-not_in_file_ok(Changes =>
-    "placeholder date/time"       => qr(Date/time)
-);
-
-sub module_boilerplate_ok {
-    my ($module) = @_;
-    not_in_file_ok($module =>
-        'the great new $MODULENAME'   => qr/ - The great new /,
-        'boilerplate description'     => qr/Quick summary of what the module/,
-        'stub function definition'    => qr/function[12]/,
-    );
-}
-
-module_boilerplate_ok('lib/MooseX/Object/Pluggable.pm');
@@ -0,0 +1,6 @@
+package TestApp3::Plugin::Dies1;
+
+use Moose::Role;
+die 'oh noes';
+
+1;
@@ -0,0 +1,6 @@
+package TestApp3::Plugin::Dies2;
+
+use Moose::Role;
+die 'oh noes';
+
+1;
@@ -0,0 +1,10 @@
+package TestApp3::Plugin::Lives;
+
+use Moose::Role;
+
+use warnings;
+use strict;
+
+sub bar {}
+
+1;
@@ -0,0 +1,11 @@
+package TestApp3;
+
+use strict;
+use warnings;
+use Moose;
+
+with 'MooseX::Object::Pluggable';
+
+__PACKAGE__->meta->make_immutable;
+
+1;
@@ -0,0 +1,8 @@
+[@Default]
+
+[-Transformer]
+transformer = List
+
+[-StopWords]
+
+[Contributors]
@@ -1,7 +1,8 @@
+use 5.006;
 use strict;
 use warnings;
 
-# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.037
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.039
 
 use Test::More 0.94 tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
 
@@ -21,11 +22,12 @@ use File::Spec;
 use IPC::Open3;
 use IO::Handle;
 
+open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
+
 my @warnings;
 for my $lib (@module_files)
 {
     # see L<perlfaq8/How can I capture STDERR from an external command?>
-    open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
     my $stderr = IO::Handle->new;
 
     my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]");
@@ -2,7 +2,7 @@ use strict;
 use warnings;
 use Test::More;
 
-# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006001
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006002
 use Test::Spelling 0.12;
 use Pod::Wordlist;
 
@@ -13,6 +13,9 @@ __DATA__
 Guillermo
 Roditi
 groditi
+David
+Steinbrunner
+dsteinbrunner
 Karen
 Etheridge
 ether
@@ -4,7 +4,7 @@ use Test::More tests => 2;
 
 note 'Checking Changes';
 my $changes_file = 'Changes';
-my $newver = '0.0012';
+my $newver = '0.0013';
 my $trial_token = '-TRIAL';
 
 SKIP: {
@@ -0,0 +1,9 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Test::More;
+use Test::CleanNamespaces;
+
+all_namespaces_clean();
+
+done_testing;
@@ -1,4 +1,5 @@
 #!perl
+# This file was automatically generated by Dist::Zilla::Plugin::MetaTests.
 
 use Test::More;
 
@@ -1,7 +1,7 @@
 use strict;
 use warnings;
 
-# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.05
+# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.06
 
 use Test::More 0.88;
 use Test::NoTabs;
@@ -1,4 +1,5 @@
 #!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
 
 use Test::More;
 
@@ -1,4 +1,5 @@
 #!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
 use Test::More;
 
 eval "use Test::Pod 1.41";
@@ -0,0 +1,11 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More;
+
+eval 'use Test::Portability::Files';
+plan skip_all => 'Test::Portability::Files required for testing portability'
+    if $@;
+run_tests();