The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
CONTRIBUTING 112
Changes 07
MANIFEST 34
META.json 133259
META.yml 110157
Makefile.PL 1210
README 33
README.md 2130
dist.ini 86
lib/JSON/Any.pm 3451
t/00-load.t 53
t/00-report-prereqs.dd 0133
t/00-report-prereqs.t 153122
t/01-JSON.t 12
t/02-JSON-XS.t 20
t/04-ENV.t 2535
t/06-JSON-PP.t 10
t/10_unicode.t 41
t/11-string-escape.t 1111
t/12-boolean.t 1619
t/13-no-backends.t 21
t/14-deprecated.t 21
xt/author/00-compile.t 22
xt/author/no-tabs.t 044
xt/author/pod-spell.t 1212
xt/release/changes_has_content.t 11
xt/release/clean-namespaces.t 011
xt/release/kwalitee.t 27
xt/release/no-tabs.t 420
29 files changed (This is a version diff) 798914
@@ -4,6 +4,11 @@ CONTRIBUTING
 Thank you for considering contributing to this distribution.  This file
 contains instructions that will help you work with the source code.
 
+PLEASE NOTE that if you have any questions or difficulties, you can reach me
+through the bug queue described later in this document, or by emailing me
+directly. You are not required to follow any of the steps in this document to
+submit a patch or bug report; these are just guidelines, intended to help you.
+
 The distribution is managed with Dist::Zilla (https://metacpan.org/release/Dist-Zilla).
 This means than many of the usual files you might expect are not in the
 repository, but are generated at release time (e.g. Makefile.PL).
@@ -79,6 +84,12 @@ https://rt.cpan.org/Public/Dist/Display.html?Name=JSON-Any
 or via bug-JSON-Any@rt.cpan.org.
 This is a good place to send your questions about the usage of this distribution.
 
+If you send me a patch or pull request, your name and email address will be
+included in the documentation as a contributor, unless you specifically
+request for it not to be (using the attribution on the commit or patch).
+If you wish to be listed under a different name, you should submit a pull
+request to the .mailmap file to contain the correct mapping.
+
 
 This file was generated via Dist::Zilla::Plugin::GenerateFile::ShareDir 0.005 from a
-template file originating in Dist-Zilla-PluginBundle-Author-ETHER-0.064.
+template file originating in Dist-Zilla-PluginBundle-Author-ETHER-0.072.
@@ -1,5 +1,12 @@
 Revision history for JSON-Any
 
+1.36      2014-08-26 05:54:35Z
+    - many improvements to tests and their coverage
+    - $ENV{JSON_ANY_CONFIG} can no longer override constructor arguments
+
+1.35      2014-08-16 00:51:05Z
+    - clarify deprecation status in documentation
+
 1.34      2014-05-28 21:31:20Z
     - remove test dependency on Devel::StringInfo, which requires Moose
       (RT#96034)
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.019.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.020.
 CONTRIBUTING
 Changes
 INSTALL
@@ -8,10 +8,10 @@ META.json
 META.yml
 Makefile.PL
 README
-README.md
 dist.ini
 lib/JSON/Any.pm
 t/00-load.t
+t/00-report-prereqs.dd
 t/00-report-prereqs.t
 t/01-JSON.t
 t/02-JSON-XS.t
@@ -27,15 +27,16 @@ t/13-no-backends.t
 t/14-deprecated.t
 weaver.ini
 xt/author/00-compile.t
+xt/author/no-tabs.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
 xt/release/kwalitee.t
 xt/release/minimum-version.t
 xt/release/mojibake.t
-xt/release/no-tabs.t
 xt/release/pod-coverage.t
 xt/release/pod-no404s.t
 xt/release/pod-syntax.t
@@ -1,5 +1,5 @@
 {
-   "abstract" : "Wrapper Class for the various JSON classes.",
+   "abstract" : "Wrapper Class for the various JSON classes (DEPRECATED)",
    "author" : [
       "Chris Thompson <cthom@cpan.org>",
       "Chris Prather <chris@prather.org>",
@@ -8,7 +8,14 @@
       "Tomas Doran <bobtfish@bobtfish.net>"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.141170",
+   "generated_by" : "Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060",
+   "keywords" : [
+      "json",
+      "serialization",
+      "serialisation",
+      "wrapper",
+      "abstraction"
+   ],
    "license" : [
       "perl_5"
    ],
@@ -26,48 +33,111 @@
    "prereqs" : {
       "configure" : {
          "requires" : {
-            "ExtUtils::MakeMaker" : "6.30"
+            "ExtUtils::MakeMaker" : "0"
          }
       },
       "develop" : {
          "recommends" : {
-            "Dist::Zilla::PluginBundle::Author::ETHER" : "0.064"
+            "Dist::Zilla::PluginBundle::Author::ETHER" : "0.072",
+            "JSON::DWIW" : "0",
+            "JSON::PP" : "0",
+            "JSON::Syck" : "0",
+            "JSON::XS" : "0"
          },
          "requires" : {
             "Cpanel::JSON::XS" : "0",
             "Dist::Zilla" : "5",
-            "Dist::Zilla::Plugin::ContributorsFromGit" : "0",
+            "Dist::Zilla::Plugin::Authority" : "0",
+            "Dist::Zilla::Plugin::AutoMetaResources" : "0",
+            "Dist::Zilla::Plugin::AutoPrereqs" : "0",
+            "Dist::Zilla::Plugin::CheckIssues" : "0",
+            "Dist::Zilla::Plugin::CheckPrereqsIndexed" : "0",
+            "Dist::Zilla::Plugin::CheckSelfDependency" : "0",
+            "Dist::Zilla::Plugin::CheckStrictVersion" : "0",
+            "Dist::Zilla::Plugin::ConfirmRelease" : "0",
+            "Dist::Zilla::Plugin::CopyFilesFromRelease" : "0",
             "Dist::Zilla::Plugin::DynamicPrereqs" : "0",
-            "Dist::Zilla::Plugin::Encoding" : "0",
+            "Dist::Zilla::Plugin::EOLTests" : "0",
+            "Dist::Zilla::Plugin::ExecDir" : "0",
+            "Dist::Zilla::Plugin::FileFinder::ByName" : "0",
+            "Dist::Zilla::Plugin::GenerateFile::ShareDir" : "0",
+            "Dist::Zilla::Plugin::Git::Check" : "0",
+            "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch" : "0.004",
+            "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts" : "0",
+            "Dist::Zilla::Plugin::Git::Commit" : "2.020",
+            "Dist::Zilla::Plugin::Git::Contributors" : "0.004",
+            "Dist::Zilla::Plugin::Git::Describe" : "0",
+            "Dist::Zilla::Plugin::Git::GatherDir" : "2.016",
+            "Dist::Zilla::Plugin::Git::NextVersion" : "0",
+            "Dist::Zilla::Plugin::Git::Push" : "0",
+            "Dist::Zilla::Plugin::Git::Remote::Check" : "0",
+            "Dist::Zilla::Plugin::Git::Tag" : "0",
             "Dist::Zilla::Plugin::GitHub::Update" : "0",
             "Dist::Zilla::Plugin::GithubMeta" : "0",
+            "Dist::Zilla::Plugin::InstallGuide" : "0",
+            "Dist::Zilla::Plugin::Keywords" : "0.004",
+            "Dist::Zilla::Plugin::License" : "0",
             "Dist::Zilla::Plugin::MakeMaker" : "0",
+            "Dist::Zilla::Plugin::Manifest" : "0",
+            "Dist::Zilla::Plugin::MetaConfig" : "0",
+            "Dist::Zilla::Plugin::MetaJSON" : "0",
+            "Dist::Zilla::Plugin::MetaNoIndex" : "0",
+            "Dist::Zilla::Plugin::MetaProvides::Package" : "1.15000002",
+            "Dist::Zilla::Plugin::MetaTests" : "0",
+            "Dist::Zilla::Plugin::MetaYAML" : "0",
+            "Dist::Zilla::Plugin::MinimumPerl" : "0",
+            "Dist::Zilla::Plugin::MojibakeTests" : "0",
+            "Dist::Zilla::Plugin::NextRelease" : "4.300018",
+            "Dist::Zilla::Plugin::PkgVersion" : "5.010",
+            "Dist::Zilla::Plugin::PodCoverageTests" : "0",
+            "Dist::Zilla::Plugin::PodSyntaxTests" : "0",
+            "Dist::Zilla::Plugin::PodWeaver" : "0",
             "Dist::Zilla::Plugin::Prereqs" : "0",
+            "Dist::Zilla::Plugin::Prereqs::AuthorDeps" : "0",
+            "Dist::Zilla::Plugin::PromptIfStale" : "0",
+            "Dist::Zilla::Plugin::Readme" : "0",
+            "Dist::Zilla::Plugin::ReadmeAnyFromPod" : "0.142180",
             "Dist::Zilla::Plugin::RemovePrereqs" : "0",
-            "Dist::Zilla::PluginBundle::Author::ETHER" : "0.058",
+            "Dist::Zilla::Plugin::Run::AfterBuild" : "0",
+            "Dist::Zilla::Plugin::Run::AfterRelease" : "0",
+            "Dist::Zilla::Plugin::RunExtraTests" : "0.019",
+            "Dist::Zilla::Plugin::ShareDir" : "0",
+            "Dist::Zilla::Plugin::Test::CPAN::Changes" : "0.008",
+            "Dist::Zilla::Plugin::Test::ChangesHasContent" : "0",
+            "Dist::Zilla::Plugin::Test::CleanNamespaces" : "0",
+            "Dist::Zilla::Plugin::Test::Compile" : "2.039",
+            "Dist::Zilla::Plugin::Test::Kwalitee" : "0",
+            "Dist::Zilla::Plugin::Test::MinimumVersion" : "2.000003",
+            "Dist::Zilla::Plugin::Test::NoTabs" : "0",
+            "Dist::Zilla::Plugin::Test::Pod::No404s" : "0",
+            "Dist::Zilla::Plugin::Test::PodSpelling" : "0",
+            "Dist::Zilla::Plugin::Test::Portability" : "0",
+            "Dist::Zilla::Plugin::Test::ReportPrereqs" : "0",
+            "Dist::Zilla::Plugin::TestRelease" : "0",
+            "Dist::Zilla::Plugin::UploadToCPAN" : "0",
+            "Dist::Zilla::PluginBundle::Author::ETHER" : "0.068",
             "File::Spec" : "0",
             "IO::Handle" : "0",
             "IPC::Open3" : "0",
             "JSON" : "2.90",
-            "JSON::DWIW" : "0",
-            "JSON::PP" : "0",
-            "JSON::Syck" : "0",
-            "JSON::XS" : "0",
             "Pod::Coverage::TrustPod" : "0",
             "Pod::Weaver::Section::Contributors" : "0",
             "Test::CPAN::Changes" : "0.19",
             "Test::CPAN::Meta" : "0",
-            "Test::Kwalitee" : "1.12",
+            "Test::CleanNamespaces" : "0.15",
+            "Test::Kwalitee" : "1.21",
             "Test::More" : "0.94",
             "Test::NoTabs" : "0",
             "Test::Pod" : "1.41",
-            "Test::Pod::Coverage" : "1.08"
+            "Test::Pod::Coverage" : "1.08",
+            "Test::Spelling" : "0.12"
          }
       },
       "runtime" : {
          "requires" : {
             "Carp" : "0",
             "constant" : "0",
+            "namespace::clean" : "0",
             "perl" : "5.008",
             "strict" : "0",
             "warnings" : "0"
@@ -75,29 +145,26 @@
       },
       "test" : {
          "recommends" : {
-            "CPAN::Meta" : "0",
-            "CPAN::Meta::Requirements" : "2.120900"
+            "CPAN::Meta" : "2.120900"
          },
          "requires" : {
             "Data::Dumper" : "0",
             "ExtUtils::MakeMaker" : "0",
-            "File::Spec::Functions" : "0",
-            "List::Util" : "0",
+            "File::Spec" : "0",
             "Storable" : "0",
             "Test::Fatal" : "0",
             "Test::More" : "0",
             "Test::Requires" : "0",
             "Test::Warnings" : "0.009",
             "Test::Without::Module" : "0",
-            "utf8" : "0",
-            "version" : "0"
+            "utf8" : "0"
          }
       }
    },
    "provides" : {
       "JSON::Any" : {
          "file" : "lib/JSON/Any.pm",
-         "version" : "1.34"
+         "version" : "1.36"
       }
    },
    "release_status" : "stable",
@@ -113,13 +180,24 @@
          "web" : "https://github.com/karenetheridge/JSON-Any"
       }
    },
-   "version" : "1.34",
+   "version" : "1.36",
    "x_Dist_Zilla" : {
       "perl" : {
-         "version" : "5.020000"
+         "version" : "5.021003"
       },
       "plugins" : [
          {
+            "class" : "Dist::Zilla::Plugin::Prereqs",
+            "config" : {
+               "Dist::Zilla::Plugin::Prereqs" : {
+                  "phase" : "develop",
+                  "type" : "requires"
+               }
+            },
+            "name" : "@Author::ETHER/bundle_plugins",
+            "version" : "5.020"
+         },
+         {
             "class" : "Dist::Zilla::Plugin::Git::NextVersion",
             "config" : {
                "Dist::Zilla::Plugin::Git::NextVersion" : {
@@ -132,12 +210,7 @@
                }
             },
             "name" : "@Author::ETHER/Git::NextVersion",
-            "version" : "2.022"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::EnsurePrereqsInstalled",
-            "name" : "@Author::ETHER/EnsurePrereqsInstalled",
-            "version" : "0.002"
+            "version" : "2.023"
          },
          {
             "class" : "Dist::Zilla::Plugin::PromptIfStale",
@@ -152,8 +225,8 @@
                   "skip" : []
                }
             },
-            "name" : "@Author::ETHER/build",
-            "version" : "0.023"
+            "name" : "@Author::ETHER/stale modules, build",
+            "version" : "0.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::PromptIfStale",
@@ -166,28 +239,28 @@
                   "skip" : []
                }
             },
-            "name" : "@Author::ETHER/release",
-            "version" : "0.023"
+            "name" : "@Author::ETHER/stale modules, release",
+            "version" : "0.024"
          },
          {
             "class" : "Dist::Zilla::Plugin::ExecDir",
             "name" : "@Author::ETHER/ExecDir",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::ShareDir",
             "name" : "@Author::ETHER/ShareDir",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FileFinder::ByName",
             "name" : "@Author::ETHER/Examples",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FileFinder::ByName",
             "name" : "@Author::ETHER/ExtraTestFiles",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::GatherDir",
@@ -200,32 +273,32 @@
                }
             },
             "name" : "@Author::ETHER/Git::GatherDir",
-            "version" : "2.022"
+            "version" : "2.023"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaYAML",
             "name" : "@Author::ETHER/MetaYAML",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaJSON",
             "name" : "@Author::ETHER/MetaJSON",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::License",
             "name" : "@Author::ETHER/License",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Readme",
             "name" : "@Author::ETHER/Readme",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Manifest",
             "name" : "@Author::ETHER/Manifest",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::GenerateFile::ShareDir",
@@ -234,6 +307,7 @@
                   "destination_filename" : "CONTRIBUTING",
                   "dist" : "Dist-Zilla-PluginBundle-Author-ETHER",
                   "encoding" : "UTF-8",
+                  "has_xs" : 0,
                   "source_filename" : "CONTRIBUTING"
                }
             },
@@ -244,23 +318,30 @@
             "class" : "Dist::Zilla::Plugin::Test::Compile",
             "config" : {
                "Dist::Zilla::Plugin::Test::Compile" : {
+                  "bail_out_on_fail" : "1",
+                  "fail_on_warning" : "author",
+                  "fake_home" : "0",
                   "filename" : "xt/author/00-compile.t",
                   "module_finder" : [
                      ":InstallModules"
                   ],
+                  "needs_display" : "0",
+                  "phase" : "develop",
                   "script_finder" : [
                      ":ExecFiles",
                      "@Author::ETHER/Examples"
-                  ]
+                  ],
+                  "skips" : []
                }
             },
             "name" : "@Author::ETHER/Test::Compile",
-            "version" : "2.040"
+            "version" : "2.046"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::NoTabs",
             "config" : {
                "Dist::Zilla::Plugin::Test::NoTabs" : {
+                  "filename" : "xt/author/no-tabs.t",
                   "finder" : [
                      ":InstallModules",
                      ":ExecFiles",
@@ -271,7 +352,7 @@
                }
             },
             "name" : "@Author::ETHER/Test::NoTabs",
-            "version" : "0.08"
+            "version" : "0.09"
          },
          {
             "class" : "Dist::Zilla::Plugin::EOLTests",
@@ -281,7 +362,7 @@
          {
             "class" : "Dist::Zilla::Plugin::MetaTests",
             "name" : "@Author::ETHER/MetaTests",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::CPAN::Changes",
@@ -301,17 +382,17 @@
          {
             "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
             "name" : "@Author::ETHER/PodSyntaxTests",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::PodCoverageTests",
             "name" : "@Author::ETHER/PodCoverageTests",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::PodSpelling",
             "name" : "@Author::ETHER/Test::PodSpelling",
-            "version" : "2.006007"
+            "version" : "2.006008"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::Pod::No404s",
@@ -320,18 +401,24 @@
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::Kwalitee",
+            "config" : {
+               "Dist::Zilla::Plugin::Test::Kwalitee" : {
+                  "filename" : "xt/release/kwalitee.t",
+                  "skiptest" : []
+               }
+            },
             "name" : "@Author::ETHER/Test::Kwalitee",
-            "version" : "2.07"
+            "version" : "2.10"
          },
          {
             "class" : "Dist::Zilla::Plugin::MojibakeTests",
             "name" : "@Author::ETHER/MojibakeTests",
-            "version" : "0.5"
+            "version" : "0.7"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs",
             "name" : "@Author::ETHER/Test::ReportPrereqs",
-            "version" : "0.013"
+            "version" : "0.019"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::Portability",
@@ -346,7 +433,7 @@
          {
             "class" : "Dist::Zilla::Plugin::PkgVersion",
             "name" : "@Author::ETHER/PkgVersion",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Authority",
@@ -445,23 +532,23 @@
                      {
                         "class" : "Pod::Weaver::Section::Contributors",
                         "name" : "Contributors",
-                        "version" : "0.007"
+                        "version" : "0.008"
                      }
                   ]
                }
             },
             "name" : "@Author::ETHER/PodWeaver",
-            "version" : "4.005"
+            "version" : "4.006"
          },
          {
             "class" : "Dist::Zilla::Plugin::NextRelease",
             "name" : "@Author::ETHER/NextRelease",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
             "name" : "@Author::ETHER/ReadmeAnyFromPod",
-            "version" : "0.141120"
+            "version" : "0.142250"
          },
          {
             "class" : "Dist::Zilla::Plugin::GithubMeta",
@@ -476,7 +563,7 @@
          {
             "class" : "Dist::Zilla::Plugin::MetaNoIndex",
             "name" : "@Author::ETHER/MetaNoIndex",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaProvides::Package",
@@ -489,7 +576,7 @@
                      {
                         "class" : "Dist::Zilla::Plugin::FinderCode",
                         "name" : ":InstallModules",
-                        "version" : "5.019"
+                        "version" : "5.020"
                      }
                   ]
                },
@@ -500,22 +587,46 @@
                }
             },
             "name" : "@Author::ETHER/MetaProvides::Package",
-            "version" : "2.000001"
+            "version" : "2.001000"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaConfig",
             "name" : "@Author::ETHER/MetaConfig",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Keywords",
+            "config" : {
+               "Dist::Zilla::Plugin::Keywords" : {
+                  "keywords" : [
+                     "json",
+                     "serialization",
+                     "serialisation",
+                     "wrapper",
+                     "abstraction"
+                  ]
+               }
+            },
             "name" : "@Author::ETHER/Keywords",
-            "version" : "0.005"
+            "version" : "0.006"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::Git::Contributors",
+            "config" : {
+               "Dist::Zilla::Plugin::Git::Contributors" : {
+                  "include_authors" : "0",
+                  "include_releaser" : "1",
+                  "order_by" : "commits",
+                  "paths" : []
+               }
+            },
+            "name" : "@Author::ETHER/Git::Contributors",
+            "version" : "0.007"
          },
          {
             "class" : "Dist::Zilla::Plugin::AutoPrereqs",
             "name" : "@Author::ETHER/AutoPrereqs",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Prereqs::AuthorDeps",
@@ -532,32 +643,11 @@
             "config" : {
                "Dist::Zilla::Plugin::Prereqs" : {
                   "phase" : "develop",
-                  "type" : "requires"
-               }
-            },
-            "name" : "@Author::ETHER/installer_requirements",
-            "version" : "5.019"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Prereqs",
-            "config" : {
-               "Dist::Zilla::Plugin::Prereqs" : {
-                  "phase" : "develop",
                   "type" : "recommends"
                }
             },
             "name" : "@Author::ETHER/pluginbundle_version",
-            "version" : "5.019"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::RunExtraTests",
-            "config" : {
-               "Dist::Zilla::Role::TestRunner" : {
-                  "default_jobs" : 9
-               }
-            },
-            "name" : "@Author::ETHER/RunExtraTests",
-            "version" : "0.021"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::MakeMaker",
@@ -567,7 +657,7 @@
                }
             },
             "name" : "@Author::ETHER/MakeMaker",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::InstallGuide",
@@ -575,6 +665,16 @@
             "version" : "1.200003"
          },
          {
+            "class" : "Dist::Zilla::Plugin::RunExtraTests",
+            "config" : {
+               "Dist::Zilla::Role::TestRunner" : {
+                  "default_jobs" : 9
+               }
+            },
+            "name" : "@Author::ETHER/RunExtraTests",
+            "version" : "0.022"
+         },
+         {
             "class" : "Dist::Zilla::Plugin::CheckSelfDependency",
             "config" : {
                "Dist::Zilla::Plugin::CheckSelfDependency" : {
@@ -588,8 +688,15 @@
          },
          {
             "class" : "Dist::Zilla::Plugin::Run::AfterBuild",
+            "config" : {
+               "Dist::Zilla::Plugin::Run::Role::Runner" : {
+                  "run" : [
+                     "bash -c \"if [[ `dirname %d` != .build ]]; then test -e .ackrc && grep -q -- '--ignore-dir=%d' .ackrc || echo '--ignore-dir=%d' >> .ackrc; fi; if [[ %d =~ ^%n-[.[:xdigit:]]+$ ]]; then rm -f .latest; ln -s %d .latest; fi\""
+                  ]
+               }
+            },
             "name" : "@Author::ETHER/Run::AfterBuild",
-            "version" : "0.021"
+            "version" : "0.023"
          },
          {
             "class" : "Dist::Zilla::Plugin::CheckStrictVersion",
@@ -612,7 +719,7 @@
                }
             },
             "name" : "@Author::ETHER/initial check",
-            "version" : "2.022"
+            "version" : "2.023"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts",
@@ -637,7 +744,7 @@
          {
             "class" : "Dist::Zilla::Plugin::Git::Remote::Check",
             "name" : "@Author::ETHER/Git::Remote::Check",
-            "version" : "0.2.0"
+            "version" : "0.1.2"
          },
          {
             "class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
@@ -647,7 +754,7 @@
          {
             "class" : "Dist::Zilla::Plugin::TestRelease",
             "name" : "@Author::ETHER/TestRelease",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Check",
@@ -665,7 +772,7 @@
                }
             },
             "name" : "@Author::ETHER/after tests",
-            "version" : "2.022"
+            "version" : "2.023"
          },
          {
             "class" : "Dist::Zilla::Plugin::CheckIssues",
@@ -675,12 +782,24 @@
          {
             "class" : "Dist::Zilla::Plugin::UploadToCPAN",
             "name" : "@Author::ETHER/UploadToCPAN",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::CopyFilesFromRelease",
             "name" : "@Author::ETHER/CopyFilesFromRelease",
-            "version" : "0.001"
+            "version" : "0.002"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::Run::AfterRelease",
+            "config" : {
+               "Dist::Zilla::Plugin::Run::Role::Runner" : {
+                  "run" : [
+                     "rm -f README.md"
+                  ]
+               }
+            },
+            "name" : "@Author::ETHER/remove old READMEs",
+            "version" : "0.023"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Commit",
@@ -696,6 +815,7 @@
                   "allow_dirty" : [
                      "Changes",
                      "README.md",
+                     "README.pod",
                      "LICENSE",
                      "CONTRIBUTING"
                   ],
@@ -707,7 +827,7 @@
                }
             },
             "name" : "@Author::ETHER/Git::Commit",
-            "version" : "2.022"
+            "version" : "2.023"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Tag",
@@ -715,7 +835,7 @@
                "Dist::Zilla::Plugin::Git::Tag" : {
                   "branch" : null,
                   "signed" : 0,
-                  "tag" : "v1.34",
+                  "tag" : "v1.36",
                   "tag_format" : "v%v%t",
                   "tag_message" : "v%v%t",
                   "time_zone" : "local"
@@ -725,12 +845,12 @@
                }
             },
             "name" : "@Author::ETHER/Git::Tag",
-            "version" : "2.022"
+            "version" : "2.023"
          },
          {
             "class" : "Dist::Zilla::Plugin::GitHub::Update",
             "name" : "@Author::ETHER/GitHub::Update",
-            "version" : "0.36"
+            "version" : "0.38"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Push",
@@ -746,33 +866,27 @@
                }
             },
             "name" : "@Author::ETHER/Git::Push",
-            "version" : "2.022"
+            "version" : "2.023"
          },
          {
-            "class" : "Dist::Zilla::Plugin::InstallRelease",
-            "name" : "@Author::ETHER/InstallRelease",
-            "version" : "0.008"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Prereqs",
+            "class" : "Dist::Zilla::Plugin::Run::AfterRelease",
             "config" : {
-               "Dist::Zilla::Plugin::Prereqs" : {
-                  "phase" : "develop",
-                  "type" : "requires"
+               "Dist::Zilla::Plugin::Run::Role::Runner" : {
+                  "run" : "REDACTED"
                }
             },
-            "name" : "@Author::ETHER/via_options",
-            "version" : "5.019"
+            "name" : "@Author::ETHER/install release",
+            "version" : "0.023"
          },
          {
             "class" : "Dist::Zilla::Plugin::ConfirmRelease",
             "name" : "@Author::ETHER/ConfirmRelease",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::DynamicPrereqs",
             "name" : "DynamicPrereqs",
-            "version" : "0.004"
+            "version" : "0.005"
          },
          {
             "class" : "Dist::Zilla::Plugin::RemovePrereqs",
@@ -789,68 +903,80 @@
                }
             },
             "name" : "RemovePrereqs",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Prereqs",
             "config" : {
                "Dist::Zilla::Plugin::Prereqs" : {
                   "phase" : "develop",
-                  "type" : "requires"
+                  "type" : "recommends"
                }
             },
-            "name" : "DevelopRequires",
-            "version" : "5.019"
+            "name" : "DevelopRecommends",
+            "version" : "5.020"
          },
          {
-            "class" : "Dist::Zilla::Plugin::ContributorsFromGit",
-            "name" : "ContributorsFromGit",
-            "version" : "0.013"
+            "class" : "Dist::Zilla::Plugin::Prereqs",
+            "config" : {
+               "Dist::Zilla::Plugin::Prereqs" : {
+                  "phase" : "develop",
+                  "type" : "requires"
+               }
+            },
+            "name" : "DevelopRequires",
+            "version" : "5.020"
          },
          {
-            "class" : "Dist::Zilla::Plugin::Encoding",
-            "name" : "Encoding",
-            "version" : "5.019"
+            "class" : "Dist::Zilla::Plugin::Test::CleanNamespaces",
+            "config" : {
+               "Dist::Zilla::Plugin::Test::CleanNamespaces" : {
+                  "filename" : "xt/release/clean-namespaces.t",
+                  "skips" : []
+               }
+            },
+            "name" : "Test::CleanNamespaces",
+            "version" : "0.005"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":InstallModules",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":IncModules",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":TestFiles",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ExecFiles",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ShareFiles",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":MainModule",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":AllFiles",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":NoFiles",
-            "version" : "5.019"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::VerifyPhases",
@@ -863,17 +989,17 @@
          "config" : {
             "is_trial" : "0"
          },
-         "version" : "5.019"
+         "version" : "5.020"
       }
    },
    "x_authority" : "cpan:ETHER",
    "x_contributors" : [
+      "Karen Etheridge <ether@cpan.org>",
+      "יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>",
       "Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>",
       "Justin Hunter <justin.d.hunter@gmail.com>",
-      "Karen Etheridge <ether@cpan.org>",
-      "Matthew Horsfall <wolfsage@gmail.com>",
       "Todd Rinaldo <toddr@cpan.org>",
-      "יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>"
+      "Matthew Horsfall <wolfsage@gmail.com>"
    ]
 }
 
@@ -1,5 +1,5 @@
 ---
-abstract: 'Wrapper Class for the various JSON classes.'
+abstract: 'Wrapper Class for the various JSON classes (DEPRECATED)'
 author:
   - 'Chris Thompson <cthom@cpan.org>'
   - 'Chris Prather <chris@prather.org>'
@@ -9,8 +9,7 @@ author:
 build_requires:
   Data::Dumper: '0'
   ExtUtils::MakeMaker: '0'
-  File::Spec::Functions: '0'
-  List::Util: '0'
+  File::Spec: '0'
   Storable: '0'
   Test::Fatal: '0'
   Test::More: '0'
@@ -18,11 +17,16 @@ build_requires:
   Test::Warnings: '0.009'
   Test::Without::Module: '0'
   utf8: '0'
-  version: '0'
 configure_requires:
-  ExtUtils::MakeMaker: '6.30'
+  ExtUtils::MakeMaker: '0'
 dynamic_config: 1
-generated_by: 'Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.141170'
+generated_by: 'Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060'
+keywords:
+  - json
+  - serialization
+  - serialisation
+  - wrapper
+  - abstraction
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -35,10 +39,11 @@ no_index:
 provides:
   JSON::Any:
     file: lib/JSON/Any.pm
-    version: '1.34'
+    version: '1.36'
 requires:
   Carp: '0'
   constant: '0'
+  namespace::clean: '0'
   perl: '5.008'
   strict: '0'
   warnings: '0'
@@ -46,12 +51,20 @@ resources:
   bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=JSON-Any
   homepage: https://github.com/karenetheridge/JSON-Any
   repository: https://github.com/karenetheridge/JSON-Any.git
-version: '1.34'
+version: '1.36'
 x_Dist_Zilla:
   perl:
-    version: '5.020000'
+    version: '5.021003'
   plugins:
     -
+      class: Dist::Zilla::Plugin::Prereqs
+      config:
+        Dist::Zilla::Plugin::Prereqs:
+          phase: develop
+          type: requires
+      name: '@Author::ETHER/bundle_plugins'
+      version: '5.020'
+    -
       class: Dist::Zilla::Plugin::Git::NextVersion
       config:
         Dist::Zilla::Plugin::Git::NextVersion:
@@ -61,11 +74,7 @@ x_Dist_Zilla:
         Dist::Zilla::Role::Git::Repo:
           repo_root: .
       name: '@Author::ETHER/Git::NextVersion'
-      version: '2.022'
-    -
-      class: Dist::Zilla::Plugin::EnsurePrereqsInstalled
-      name: '@Author::ETHER/EnsurePrereqsInstalled'
-      version: '0.002'
+      version: '2.023'
     -
       class: Dist::Zilla::Plugin::PromptIfStale
       config:
@@ -76,8 +85,8 @@ x_Dist_Zilla:
             - Dist::Zilla::PluginBundle::Author::ETHER
           phase: build
           skip: []
-      name: '@Author::ETHER/build'
-      version: '0.023'
+      name: '@Author::ETHER/stale modules, build'
+      version: '0.024'
     -
       class: Dist::Zilla::Plugin::PromptIfStale
       config:
@@ -87,24 +96,24 @@ x_Dist_Zilla:
           modules: []
           phase: release
           skip: []
-      name: '@Author::ETHER/release'
-      version: '0.023'
+      name: '@Author::ETHER/stale modules, release'
+      version: '0.024'
     -
       class: Dist::Zilla::Plugin::ExecDir
       name: '@Author::ETHER/ExecDir'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::ShareDir
       name: '@Author::ETHER/ShareDir'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FileFinder::ByName
       name: '@Author::ETHER/Examples'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FileFinder::ByName
       name: '@Author::ETHER/ExtraTestFiles'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Git::GatherDir
       config:
@@ -113,27 +122,27 @@ x_Dist_Zilla:
         Dist::Zilla::Role::Git::Repo:
           repo_root: .
       name: '@Author::ETHER/Git::GatherDir'
-      version: '2.022'
+      version: '2.023'
     -
       class: Dist::Zilla::Plugin::MetaYAML
       name: '@Author::ETHER/MetaYAML'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::MetaJSON
       name: '@Author::ETHER/MetaJSON'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::License
       name: '@Author::ETHER/License'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Readme
       name: '@Author::ETHER/Readme'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Manifest
       name: '@Author::ETHER/Manifest'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::GenerateFile::ShareDir
       config:
@@ -141,6 +150,7 @@ x_Dist_Zilla:
           destination_filename: CONTRIBUTING
           dist: Dist-Zilla-PluginBundle-Author-ETHER
           encoding: UTF-8
+          has_xs: 0
           source_filename: CONTRIBUTING
       name: '@Author::ETHER/generate CONTRIBUTING'
       version: '0.005'
@@ -148,18 +158,25 @@ x_Dist_Zilla:
       class: Dist::Zilla::Plugin::Test::Compile
       config:
         Dist::Zilla::Plugin::Test::Compile:
+          bail_out_on_fail: '1'
+          fail_on_warning: author
+          fake_home: '0'
           filename: xt/author/00-compile.t
           module_finder:
             - ':InstallModules'
+          needs_display: '0'
+          phase: develop
           script_finder:
             - ':ExecFiles'
             - '@Author::ETHER/Examples'
+          skips: []
       name: '@Author::ETHER/Test::Compile'
-      version: '2.040'
+      version: '2.046'
     -
       class: Dist::Zilla::Plugin::Test::NoTabs
       config:
         Dist::Zilla::Plugin::Test::NoTabs:
+          filename: xt/author/no-tabs.t
           finder:
             - ':InstallModules'
             - ':ExecFiles'
@@ -167,7 +184,7 @@ x_Dist_Zilla:
             - ':TestFiles'
             - '@Author::ETHER/ExtraTestFiles'
       name: '@Author::ETHER/Test::NoTabs'
-      version: '0.08'
+      version: '0.09'
     -
       class: Dist::Zilla::Plugin::EOLTests
       name: '@Author::ETHER/EOLTests'
@@ -175,7 +192,7 @@ x_Dist_Zilla:
     -
       class: Dist::Zilla::Plugin::MetaTests
       name: '@Author::ETHER/MetaTests'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Test::CPAN::Changes
       name: '@Author::ETHER/Test::CPAN::Changes'
@@ -191,31 +208,35 @@ x_Dist_Zilla:
     -
       class: Dist::Zilla::Plugin::PodSyntaxTests
       name: '@Author::ETHER/PodSyntaxTests'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::PodCoverageTests
       name: '@Author::ETHER/PodCoverageTests'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Test::PodSpelling
       name: '@Author::ETHER/Test::PodSpelling'
-      version: '2.006007'
+      version: '2.006008'
     -
       class: Dist::Zilla::Plugin::Test::Pod::No404s
       name: '@Author::ETHER/Test::Pod::No404s'
       version: '1.001'
     -
       class: Dist::Zilla::Plugin::Test::Kwalitee
+      config:
+        Dist::Zilla::Plugin::Test::Kwalitee:
+          filename: xt/release/kwalitee.t
+          skiptest: []
       name: '@Author::ETHER/Test::Kwalitee'
-      version: '2.07'
+      version: '2.10'
     -
       class: Dist::Zilla::Plugin::MojibakeTests
       name: '@Author::ETHER/MojibakeTests'
-      version: '0.5'
+      version: '0.7'
     -
       class: Dist::Zilla::Plugin::Test::ReportPrereqs
       name: '@Author::ETHER/Test::ReportPrereqs'
-      version: '0.013'
+      version: '0.019'
     -
       class: Dist::Zilla::Plugin::Test::Portability
       name: '@Author::ETHER/Test::Portability'
@@ -227,7 +248,7 @@ x_Dist_Zilla:
     -
       class: Dist::Zilla::Plugin::PkgVersion
       name: '@Author::ETHER/PkgVersion'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Authority
       name: '@Author::ETHER/Authority'
@@ -307,17 +328,17 @@ x_Dist_Zilla:
             -
               class: Pod::Weaver::Section::Contributors
               name: Contributors
-              version: '0.007'
+              version: '0.008'
       name: '@Author::ETHER/PodWeaver'
-      version: '4.005'
+      version: '4.006'
     -
       class: Dist::Zilla::Plugin::NextRelease
       name: '@Author::ETHER/NextRelease'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::ReadmeAnyFromPod
       name: '@Author::ETHER/ReadmeAnyFromPod'
-      version: '0.141120'
+      version: '0.142250'
     -
       class: Dist::Zilla::Plugin::GithubMeta
       name: '@Author::ETHER/GithubMeta'
@@ -329,7 +350,7 @@ x_Dist_Zilla:
     -
       class: Dist::Zilla::Plugin::MetaNoIndex
       name: '@Author::ETHER/MetaNoIndex'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::MetaProvides::Package
       config:
@@ -340,25 +361,43 @@ x_Dist_Zilla:
             -
               class: Dist::Zilla::Plugin::FinderCode
               name: ':InstallModules'
-              version: '5.019'
+              version: '5.020'
         Dist::Zilla::Role::MetaProvider::Provider:
           inherit_missing: '1'
           inherit_version: '1'
           meta_noindex: '1'
       name: '@Author::ETHER/MetaProvides::Package'
-      version: '2.000001'
+      version: '2.001000'
     -
       class: Dist::Zilla::Plugin::MetaConfig
       name: '@Author::ETHER/MetaConfig'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Keywords
+      config:
+        Dist::Zilla::Plugin::Keywords:
+          keywords:
+            - json
+            - serialization
+            - serialisation
+            - wrapper
+            - abstraction
       name: '@Author::ETHER/Keywords'
-      version: '0.005'
+      version: '0.006'
+    -
+      class: Dist::Zilla::Plugin::Git::Contributors
+      config:
+        Dist::Zilla::Plugin::Git::Contributors:
+          include_authors: '0'
+          include_releaser: '1'
+          order_by: commits
+          paths: []
+      name: '@Author::ETHER/Git::Contributors'
+      version: '0.007'
     -
       class: Dist::Zilla::Plugin::AutoPrereqs
       name: '@Author::ETHER/AutoPrereqs'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Prereqs::AuthorDeps
       name: '@Author::ETHER/Prereqs::AuthorDeps'
@@ -372,36 +411,28 @@ x_Dist_Zilla:
       config:
         Dist::Zilla::Plugin::Prereqs:
           phase: develop
-          type: requires
-      name: '@Author::ETHER/installer_requirements'
-      version: '5.019'
-    -
-      class: Dist::Zilla::Plugin::Prereqs
-      config:
-        Dist::Zilla::Plugin::Prereqs:
-          phase: develop
           type: recommends
       name: '@Author::ETHER/pluginbundle_version'
-      version: '5.019'
-    -
-      class: Dist::Zilla::Plugin::RunExtraTests
-      config:
-        Dist::Zilla::Role::TestRunner:
-          default_jobs: 9
-      name: '@Author::ETHER/RunExtraTests'
-      version: '0.021'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::MakeMaker
       config:
         Dist::Zilla::Role::TestRunner:
           default_jobs: 9
       name: '@Author::ETHER/MakeMaker'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::InstallGuide
       name: '@Author::ETHER/InstallGuide'
       version: '1.200003'
     -
+      class: Dist::Zilla::Plugin::RunExtraTests
+      config:
+        Dist::Zilla::Role::TestRunner:
+          default_jobs: 9
+      name: '@Author::ETHER/RunExtraTests'
+      version: '0.022'
+    -
       class: Dist::Zilla::Plugin::CheckSelfDependency
       config:
         Dist::Zilla::Plugin::CheckSelfDependency:
@@ -411,8 +442,12 @@ x_Dist_Zilla:
       version: '0.007'
     -
       class: Dist::Zilla::Plugin::Run::AfterBuild
+      config:
+        Dist::Zilla::Plugin::Run::Role::Runner:
+          run:
+            - "bash -c \"if [[ `dirname %d` != .build ]]; then test -e .ackrc && grep -q -- '--ignore-dir=%d' .ackrc || echo '--ignore-dir=%d' >> .ackrc; fi; if [[ %d =~ ^%n-[.[:xdigit:]]+$ ]]; then rm -f .latest; ln -s %d .latest; fi\""
       name: '@Author::ETHER/Run::AfterBuild'
-      version: '0.021'
+      version: '0.023'
     -
       class: Dist::Zilla::Plugin::CheckStrictVersion
       name: '@Author::ETHER/CheckStrictVersion'
@@ -429,7 +464,7 @@ x_Dist_Zilla:
         Dist::Zilla::Role::Git::Repo:
           repo_root: .
       name: '@Author::ETHER/initial check'
-      version: '2.022'
+      version: '2.023'
     -
       class: Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts
       config:
@@ -447,7 +482,7 @@ x_Dist_Zilla:
     -
       class: Dist::Zilla::Plugin::Git::Remote::Check
       name: '@Author::ETHER/Git::Remote::Check'
-      version: 0.2.0
+      version: 0.1.2
     -
       class: Dist::Zilla::Plugin::CheckPrereqsIndexed
       name: '@Author::ETHER/CheckPrereqsIndexed'
@@ -455,7 +490,7 @@ x_Dist_Zilla:
     -
       class: Dist::Zilla::Plugin::TestRelease
       name: '@Author::ETHER/TestRelease'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Git::Check
       config:
@@ -468,7 +503,7 @@ x_Dist_Zilla:
         Dist::Zilla::Role::Git::Repo:
           repo_root: .
       name: '@Author::ETHER/after tests'
-      version: '2.022'
+      version: '2.023'
     -
       class: Dist::Zilla::Plugin::CheckIssues
       name: '@Author::ETHER/CheckIssues'
@@ -476,11 +511,19 @@ x_Dist_Zilla:
     -
       class: Dist::Zilla::Plugin::UploadToCPAN
       name: '@Author::ETHER/UploadToCPAN'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::CopyFilesFromRelease
       name: '@Author::ETHER/CopyFilesFromRelease'
-      version: '0.001'
+      version: '0.002'
+    -
+      class: Dist::Zilla::Plugin::Run::AfterRelease
+      config:
+        Dist::Zilla::Plugin::Run::Role::Runner:
+          run:
+            - 'rm -f README.md'
+      name: '@Author::ETHER/remove old READMEs'
+      version: '0.023'
     -
       class: Dist::Zilla::Plugin::Git::Commit
       config:
@@ -493,6 +536,7 @@ x_Dist_Zilla:
           allow_dirty:
             - Changes
             - README.md
+            - README.pod
             - LICENSE
             - CONTRIBUTING
           allow_dirty_match: []
@@ -500,25 +544,25 @@ x_Dist_Zilla:
         Dist::Zilla::Role::Git::Repo:
           repo_root: .
       name: '@Author::ETHER/Git::Commit'
-      version: '2.022'
+      version: '2.023'
     -
       class: Dist::Zilla::Plugin::Git::Tag
       config:
         Dist::Zilla::Plugin::Git::Tag:
           branch: ~
           signed: 0
-          tag: v1.34
+          tag: v1.36
           tag_format: v%v%t
           tag_message: v%v%t
           time_zone: local
         Dist::Zilla::Role::Git::Repo:
           repo_root: .
       name: '@Author::ETHER/Git::Tag'
-      version: '2.022'
+      version: '2.023'
     -
       class: Dist::Zilla::Plugin::GitHub::Update
       name: '@Author::ETHER/GitHub::Update'
-      version: '0.36'
+      version: '0.38'
     -
       class: Dist::Zilla::Plugin::Git::Push
       config:
@@ -529,27 +573,22 @@ x_Dist_Zilla:
         Dist::Zilla::Role::Git::Repo:
           repo_root: .
       name: '@Author::ETHER/Git::Push'
-      version: '2.022'
-    -
-      class: Dist::Zilla::Plugin::InstallRelease
-      name: '@Author::ETHER/InstallRelease'
-      version: '0.008'
+      version: '2.023'
     -
-      class: Dist::Zilla::Plugin::Prereqs
+      class: Dist::Zilla::Plugin::Run::AfterRelease
       config:
-        Dist::Zilla::Plugin::Prereqs:
-          phase: develop
-          type: requires
-      name: '@Author::ETHER/via_options'
-      version: '5.019'
+        Dist::Zilla::Plugin::Run::Role::Runner:
+          run: REDACTED
+      name: '@Author::ETHER/install release'
+      version: '0.023'
     -
       class: Dist::Zilla::Plugin::ConfirmRelease
       name: '@Author::ETHER/ConfirmRelease'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::DynamicPrereqs
       name: DynamicPrereqs
-      version: '0.004'
+      version: '0.005'
     -
       class: Dist::Zilla::Plugin::RemovePrereqs
       config:
@@ -562,7 +601,15 @@ x_Dist_Zilla:
             - JSON::XS
             - Cpanel::JSON::XS
       name: RemovePrereqs
-      version: '5.019'
+      version: '5.020'
+    -
+      class: Dist::Zilla::Plugin::Prereqs
+      config:
+        Dist::Zilla::Plugin::Prereqs:
+          phase: develop
+          type: recommends
+      name: DevelopRecommends
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Prereqs
       config:
@@ -570,47 +617,47 @@ x_Dist_Zilla:
           phase: develop
           type: requires
       name: DevelopRequires
-      version: '5.019'
-    -
-      class: Dist::Zilla::Plugin::ContributorsFromGit
-      name: ContributorsFromGit
-      version: '0.013'
+      version: '5.020'
     -
-      class: Dist::Zilla::Plugin::Encoding
-      name: Encoding
-      version: '5.019'
+      class: Dist::Zilla::Plugin::Test::CleanNamespaces
+      config:
+        Dist::Zilla::Plugin::Test::CleanNamespaces:
+          filename: xt/release/clean-namespaces.t
+          skips: []
+      name: Test::CleanNamespaces
+      version: '0.005'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':InstallModules'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':IncModules'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':TestFiles'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ExecFiles'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ShareFiles'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':MainModule'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':AllFiles'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':NoFiles'
-      version: '5.019'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::VerifyPhases
       name: '@Author::ETHER/PHASE VERIFICATION'
@@ -619,12 +666,12 @@ x_Dist_Zilla:
     class: Dist::Zilla::Dist::Builder
     config:
       is_trial: '0'
-    version: '5.019'
+    version: '5.020'
 x_authority: cpan:ETHER
 x_contributors:
+  - 'Karen Etheridge <ether@cpan.org>'
+  - "יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>"
   - 'Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>'
   - 'Justin Hunter <justin.d.hunter@gmail.com>'
-  - 'Karen Etheridge <ether@cpan.org>'
-  - 'Matthew Horsfall <wolfsage@gmail.com>'
   - 'Todd Rinaldo <toddr@cpan.org>'
-  - "יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>"
+  - 'Matthew Horsfall <wolfsage@gmail.com>'
@@ -1,19 +1,19 @@
 
-# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.019.
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.020.
 use strict;
 use warnings;
 
 use 5.008;
 
-use ExtUtils::MakeMaker 6.30;
+use ExtUtils::MakeMaker ;
 
 
 
 my %WriteMakefileArgs = (
-  "ABSTRACT" => "Wrapper Class for the various JSON classes.",
+  "ABSTRACT" => "Wrapper Class for the various JSON classes (DEPRECATED)",
   "AUTHOR" => "Chris Thompson <cthom\@cpan.org>, Chris Prather <chris\@prather.org>, Robin Berjon <robin\@berjon.com>, Marc Mims <marc\@questright.com>, Tomas Doran <bobtfish\@bobtfish.net>",
   "CONFIGURE_REQUIRES" => {
-    "ExtUtils::MakeMaker" => "6.30"
+    "ExtUtils::MakeMaker" => 0
   },
   "DISTNAME" => "JSON-Any",
   "EXE_FILES" => [],
@@ -22,24 +22,23 @@ my %WriteMakefileArgs = (
   "PREREQ_PM" => {
     "Carp" => 0,
     "constant" => 0,
+    "namespace::clean" => 0,
     "strict" => 0,
     "warnings" => 0
   },
   "TEST_REQUIRES" => {
     "Data::Dumper" => 0,
     "ExtUtils::MakeMaker" => 0,
-    "File::Spec::Functions" => 0,
-    "List::Util" => 0,
+    "File::Spec" => 0,
     "Storable" => 0,
     "Test::Fatal" => 0,
     "Test::More" => 0,
     "Test::Requires" => 0,
     "Test::Warnings" => "0.009",
     "Test::Without::Module" => 0,
-    "utf8" => 0,
-    "version" => 0
+    "utf8" => 0
   },
-  "VERSION" => "1.34",
+  "VERSION" => "1.36",
   "test" => {
     "TESTS" => "t/*.t"
   }
@@ -50,8 +49,7 @@ my %FallbackPrereqs = (
   "Carp" => 0,
   "Data::Dumper" => 0,
   "ExtUtils::MakeMaker" => 0,
-  "File::Spec::Functions" => 0,
-  "List::Util" => 0,
+  "File::Spec" => 0,
   "Storable" => 0,
   "Test::Fatal" => 0,
   "Test::More" => 0,
@@ -59,9 +57,9 @@ my %FallbackPrereqs = (
   "Test::Warnings" => "0.009",
   "Test::Without::Module" => 0,
   "constant" => 0,
+  "namespace::clean" => 0,
   "strict" => 0,
   "utf8" => 0,
-  "version" => 0,
   "warnings" => 0
 );
 
@@ -1,9 +1,9 @@
 
 
 This archive contains the distribution JSON-Any,
-version 1.34:
+version 1.36:
 
-  Wrapper Class for the various JSON classes.
+  Wrapper Class for the various JSON classes (DEPRECATED)
 
 This software is copyright (c) 2007 by Chris Thompson.
 
@@ -11,5 +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.019.
+This README file was generated by Dist::Zilla::Plugin::Readme v5.020.
 
@@ -1,213 +0,0 @@
-# NAME
-
-JSON::Any - Wrapper Class for the various JSON classes.
-
-# VERSION
-
-version 1.34
-
-# SYNOPSIS
-
-This module tries to provide a coherent API to bring together the various JSON
-modules currently on CPAN. This module will allow you to code to any JSON API
-and have it work regardless of which JSON module is actually installed.
-
-    use JSON::Any;
-
-    my $j = JSON::Any->new;
-
-    $json = $j->objToJson({foo=>'bar', baz=>'quux'});
-    $obj = $j->jsonToObj($json);
-
-or
-
-    $json = $j->encode({foo=>'bar', baz=>'quux'});
-    $obj = $j->decode($json);
-
-or
-
-    $json = $j->Dump({foo=>'bar', baz=>'quux'});
-    $obj = $j->Load($json);
-
-or
-
-    $json = $j->to_json({foo=>'bar', baz=>'quux'});
-    $obj = $j->from_json($json);
-
-or without creating an object:
-
-    $json = JSON::Any->objToJson({foo=>'bar', baz=>'quux'});
-    $obj = JSON::Any->jsonToObj($json);
-
-On load, JSON::Any will find a valid JSON module in your @INC by looking
-for them in this order:
-
-    Cpanel::JSON::XS
-    JSON::XS
-    JSON::PP
-    JSON
-    JSON::DWIW
-
-And loading the first one it finds.
-
-You may change the order by specifying it on the `use JSON::Any` line:
-
-    use JSON::Any qw(DWIW XS CPANEL JSON PP);
-
-Specifying an order that is missing modules will prevent those module from
-being used:
-
-    use JSON::Any qw(CPANEL PP); # same as JSON::MaybeXS
-
-This will check in that order, and will never attempt to load [JSON::XS](https://metacpan.org/pod/JSON::XS),
-["JSON" in JSON.pm](https://metacpan.org/pod/JSON.pm#JSON), or [JSON::DWIW](https://metacpan.org/pod/JSON::DWIW). This can also be set via the `$ENV{JSON_ANY_ORDER}`
-environment variable.
-
-[JSON::Syck](https://metacpan.org/pod/JSON::Syck) has been deprecated by its author, but in the attempt to still
-stay relevant as a "Compatibility Layer" JSON::Any still supports it. This support
-however has been made optional starting with JSON::Any 1.19. In deference to a
-bug request starting with [JSON.pm](https://metacpan.org/pod/JSON) 1.20, [JSON::Syck](https://metacpan.org/pod/JSON::Syck) and other deprecated modules
-will still be installed, but only as a last resort and will now include a
-warning.
-
-    use JSON::Any qw(Syck XS JSON);
-
-or
-
-    $ENV{JSON_ANY_ORDER} = 'Syck XS JSON';
-
-At install time, JSON::Any will attempt to install [JSON::PP](https://metacpan.org/pod/JSON::PP) as a reasonable
-fallback if you do not appear have **any** backends installed on your system.
-
-WARNING: If you call JSON::Any with an empty list
-
-    use JSON::Any ();
-
-It will skip the JSON package detection routines and will die loudly that it
-couldn't find a package.
-
-# WARNING
-
-[JSON::XS](https://metacpan.org/pod/JSON::XS) 3.0 or higher has a conflict with any version of [JSON.pm](https://metacpan.org/pod/JSON) less than 2.90
-when you use [JSON.pm](https://metacpan.org/pod/JSON)'s `-support_by_pp` option, which JSON::Any enables by
-default.
-
-This situation should only come up with JSON::Any if you have [JSON.pm](https://metacpan.org/pod/JSON) 2.61 or
-lower **and** [JSON::XS](https://metacpan.org/pod/JSON::XS) 3.0 or higher installed, and you use [JSON.pm](https://metacpan.org/pod/JSON)
-via `use JSON::Any qw(JSON);` or the `JSON_ANY_ORDER` environment variable.
-
-If you run into an issue where you're getting recursive inheritance errors in a
-[Types::Serialiser](https://metacpan.org/pod/Types::Serialiser) package, please try upgrading [JSON.pm](https://metacpan.org/pod/JSON) to 2.90 or higher.
-
-# DEPRECATION
-
-The original need for [JSON::Any](https://metacpan.org/pod/JSON::Any) has been solved (quite some time ago
-actually). If you're producing new code it is recommended to use [JSON::MaybeXS](https://metacpan.org/pod/JSON::MaybeXS) which
-will optionally use [Cpanel::JSON::XS](https://metacpan.org/pod/Cpanel::JSON::XS) for speed purposes.
-
-JSON::Any will continue to be maintained for compatibility with existing code,
-but for new code you should strongly consider using [JSON::MaybeXS](https://metacpan.org/pod/JSON::MaybeXS) instead.
-
-# METHODS
-
-- `new`
-
-    Will take any of the parameters for the underlying system and pass them
-    through. However these values don't map between JSON modules, so, from a
-    portability standpoint this is really only helpful for those parameters that
-    happen to have the same name. This will be addressed in a future release.
-
-    The one parameter that is universally supported (to the extent that is
-    supported by the underlying JSON modules) is `utf8`. When this parameter is
-    enabled all resulting JSON will be marked as unicode, and all unicode strings
-    in the input data structure will be preserved as such.
-
-    Also note that the `allow_blessed` parameter is recognised by all the modules
-    that throw exceptions when a blessed reference is given them meaning that
-    setting it to true works for all modules. Of course, that means that you
-    cannot set it to false intentionally in order to always get such exceptions.
-
-    The actual output will vary, for example [JSON](https://metacpan.org/pod/JSON) will encode and decode
-    unicode chars (the resulting JSON is not unicode) whereas [JSON::XS](https://metacpan.org/pod/JSON::XS) will emit
-    unicode JSON.
-
-- `handlerType`
-
-    Takes no arguments, returns a string indicating which JSON Module is in use.
-
-- `handler`
-
-    Takes no arguments, if called on an object returns the internal JSON::\*
-    object in use.  Otherwise returns the JSON::\* package we are using for
-    class methods.
-
-- `true`
-
-    Takes no arguments, returns the special value that the internal JSON
-    object uses to map to a JSON `true` boolean.
-
-- `false`
-
-    Takes no arguments, returns the special value that the internal JSON
-    object uses to map to a JSON `false` boolean.
-
-- `objToJson`
-
-    Takes a single argument, a hashref to be converted into JSON.
-    It returns the JSON text in a scalar.
-
-- `to_json`
-- `Dump`
-- `encode`
-
-    Aliases for `objToJson`, can be used interchangeably, regardless of the
-    underlying JSON module.
-
-- `jsonToObj`
-
-    Takes a single argument, a string of JSON text to be converted
-    back into a hashref.
-
-- `from_json`
-- `Load`
-- `decode`
-
-    Aliases for `jsonToObj`, can be used interchangeably, regardless of the
-    underlying JSON module.
-
-# ACKNOWLEDGEMENTS
-
-This module came about after discussions on irc.perl.org about the fact
-that there were now six separate JSON perl modules with different interfaces.
-
-In the spirit of Class::Any, JSON::Any was created with the considerable
-help of Matt 'mst' Trout.
-
-Simon Wistow graciously supplied a patch for backwards compatibility with JSON::XS
-versions previous to 2.01
-
-San Dimas High School Football Rules!
-
-# AUTHORS
-
-- Chris Thompson <cthom@cpan.org>
-- Chris Prather <chris@prather.org>
-- Robin Berjon <robin@berjon.com>
-- Marc Mims <marc@questright.com>
-- Tomas Doran <bobtfish@bobtfish.net>
-
-# COPYRIGHT AND LICENSE
-
-This software is copyright (c) 2007 by Chris Thompson.
-
-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
-
-- Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
-- Justin Hunter <justin.d.hunter@gmail.com>
-- Karen Etheridge <ether@cpan.org>
-- Matthew Horsfall <wolfsage@gmail.com>
-- Todd Rinaldo <toddr@cpan.org>
-- יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>
@@ -9,7 +9,7 @@ copyright_holder = Chris Thompson
 copyright_year = 2007
 
 [@Author::ETHER]
-:version = 0.058
+:version = 0.068
 installer = MakeMaker
 Test::MinimumVersion.max_target_perl = 5.008
 Test::ReportPrereqs.include[0] = JSON
@@ -48,18 +48,16 @@ remove = JSON::Syck
 remove = JSON::XS
 remove = Cpanel::JSON::XS
 
-[Prereqs / DevelopRequires]
-JSON = 2.90
+[Prereqs / DevelopRecommends]
 JSON::PP = 0
 JSON::DWIW = 0
 JSON::Syck = 0
 JSON::XS = 0
+
+[Prereqs / DevelopRequires]
+JSON = 2.90
 Cpanel::JSON::XS = 0
 
 ; authordep Pod::Weaver::Section::Contributors
 
-[ContributorsFromGit]
-
-[Encoding]
-encoding = latin1
-filename = t/04-ENV.t
+[Test::CleanNamespaces]
@@ -1,15 +1,14 @@
 package JSON::Any;
-BEGIN {
-  $JSON::Any::AUTHORITY = 'cpan:ETHER';
-}
-# git description: v1.33-7-g26708bf
-$JSON::Any::VERSION = '1.34';
+# git description: v1.35-13-g383eebf
+$JSON::Any::VERSION = '1.36';
 
 use warnings;
 use strict;
 use Carp qw(croak carp);
+use namespace::clean;
 
-# ABSTRACT: Wrapper Class for the various JSON classes.
+# ABSTRACT: Wrapper Class for the various JSON classes (DEPRECATED)
+# KEYWORDS: json serialization serialisation wrapper abstraction
 
 our $UTF8;
 
@@ -307,6 +306,22 @@ sub _module_name_list {
 
 #pod =head1 SYNOPSIS
 #pod
+#pod     use JSON::Any;
+#pod     my $j = JSON::Any->new;
+#pod     my $json = $j->objToJson({foo=>'bar', baz=>'quux'});
+#pod     my $obj = $j->jsonToObj($json);
+#pod
+#pod =head1 DEPRECATION NOTICE
+#pod
+#pod The original need for L<JSON::Any> has been solved (quite some time ago
+#pod actually). If you're producing new code it is recommended to use L<JSON::MaybeXS> which
+#pod will optionally use L<Cpanel::JSON::XS> for speed purposes.
+#pod
+#pod JSON::Any will continue to be maintained for compatibility with existing code,
+#pod but for new code you should strongly consider using L<JSON::MaybeXS> instead.
+#pod
+#pod =head1 DESCRIPTION
+#pod
 #pod This module tries to provide a coherent API to bring together the various JSON
 #pod modules currently on CPAN. This module will allow you to code to any JSON API
 #pod and have it work regardless of which JSON module is actually installed.
@@ -398,15 +413,6 @@ sub _module_name_list {
 #pod If you run into an issue where you're getting recursive inheritance errors in a
 #pod L<Types::Serialiser> package, please try upgrading L<JSON.pm|JSON> to 2.90 or higher.
 #pod
-#pod =head1 DEPRECATION
-#pod
-#pod The original need for L<JSON::Any> has been solved (quite some time ago
-#pod actually). If you're producing new code it is recommended to use L<JSON::MaybeXS> which
-#pod will optionally use L<Cpanel::JSON::XS> for speed purposes.
-#pod
-#pod JSON::Any will continue to be maintained for compatibility with existing code,
-#pod but for new code you should strongly consider using L<JSON::MaybeXS> instead.
-#pod
 #pod =head1 METHODS
 #pod
 #pod =over
@@ -418,7 +424,7 @@ sub _module_name_list {
 #pod Will take any of the parameters for the underlying system and pass them
 #pod through. However these values don't map between JSON modules, so, from a
 #pod portability standpoint this is really only helpful for those parameters that
-#pod happen to have the same name. This will be addressed in a future release.
+#pod happen to have the same name.
 #pod
 #pod The one parameter that is universally supported (to the extent that is
 #pod supported by the underlying JSON modules) is C<utf8>. When this parameter is
@@ -443,11 +449,13 @@ sub new {
     my $self  = bless [], $class;
     my $key   = _make_key($handler);
     if ( my $creator = $conf{$key}->{create_object} ) {
-        my @config = @_;
+        my @config;
+        # undocumented! and yet, people are using this...
         if ( $ENV{JSON_ANY_CONFIG} ) {
             push @config, map { split /=/, $_ } split /,\s*/,
               $ENV{JSON_ANY_CONFIG};
         }
+        push @config, @_;
         $creator->( $self, my $conf = {@config} );
         $self->[UTF8] = $conf->{utf8};
     }
@@ -648,14 +656,21 @@ __END__
 
 =head1 NAME
 
-JSON::Any - Wrapper Class for the various JSON classes.
+JSON::Any - Wrapper Class for the various JSON classes (DEPRECATED)
 
 =head1 VERSION
 
-version 1.34
+version 1.36
 
 =head1 SYNOPSIS
 
+    use JSON::Any;
+    my $j = JSON::Any->new;
+    my $json = $j->objToJson({foo=>'bar', baz=>'quux'});
+    my $obj = $j->jsonToObj($json);
+
+=head1 DESCRIPTION
+
 This module tries to provide a coherent API to bring together the various JSON
 modules currently on CPAN. This module will allow you to code to any JSON API
 and have it work regardless of which JSON module is actually installed.
@@ -734,6 +749,15 @@ WARNING: If you call JSON::Any with an empty list
 It will skip the JSON package detection routines and will die loudly that it
 couldn't find a package.
 
+=head1 DEPRECATION NOTICE
+
+The original need for L<JSON::Any> has been solved (quite some time ago
+actually). If you're producing new code it is recommended to use L<JSON::MaybeXS> which
+will optionally use L<Cpanel::JSON::XS> for speed purposes.
+
+JSON::Any will continue to be maintained for compatibility with existing code,
+but for new code you should strongly consider using L<JSON::MaybeXS> instead.
+
 =head1 WARNING
 
 L<JSON::XS> 3.0 or higher has a conflict with any version of L<JSON.pm|JSON> less than 2.90
@@ -747,15 +771,6 @@ via C<< use JSON::Any qw(JSON); >> or the C<JSON_ANY_ORDER> environment variable
 If you run into an issue where you're getting recursive inheritance errors in a
 L<Types::Serialiser> package, please try upgrading L<JSON.pm|JSON> to 2.90 or higher.
 
-=head1 DEPRECATION
-
-The original need for L<JSON::Any> has been solved (quite some time ago
-actually). If you're producing new code it is recommended to use L<JSON::MaybeXS> which
-will optionally use L<Cpanel::JSON::XS> for speed purposes.
-
-JSON::Any will continue to be maintained for compatibility with existing code,
-but for new code you should strongly consider using L<JSON::MaybeXS> instead.
-
 =head1 METHODS
 
 =over
@@ -767,7 +782,7 @@ but for new code you should strongly consider using L<JSON::MaybeXS> instead.
 Will take any of the parameters for the underlying system and pass them
 through. However these values don't map between JSON modules, so, from a
 portability standpoint this is really only helpful for those parameters that
-happen to have the same name. This will be addressed in a future release.
+happen to have the same name.
 
 The one parameter that is universally supported (to the extent that is
 supported by the underlying JSON modules) is C<utf8>. When this parameter is
@@ -915,23 +930,25 @@ the same terms as the Perl 5 programming language system itself.
 
 =head1 CONTRIBUTORS
 
+=for stopwords Karen Etheridge יובל קוג'מן (Yuval Kogman) Dagfinn Ilmari Mannsåker Justin Hunter Todd Rinaldo Matthew Horsfall
+
 =over 4
 
 =item *
 
-Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
+Karen Etheridge <ether@cpan.org>
 
 =item *
 
-Justin Hunter <justin.d.hunter@gmail.com>
+יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>
 
 =item *
 
-Karen Etheridge <ether@cpan.org>
+Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
 
 =item *
 
-Matthew Horsfall <wolfsage@gmail.com>
+Justin Hunter <justin.d.hunter@gmail.com>
 
 =item *
 
@@ -939,7 +956,7 @@ Todd Rinaldo <toddr@cpan.org>
 
 =item *
 
-יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>
+Matthew Horsfall <wolfsage@gmail.com>
 
 =back
 
@@ -8,13 +8,11 @@ BEGIN {
 
     # Count who's installed
     my @order = qw(Cpanel::JSON::XS JSON::XS JSON::PP JSON JSON::DWIW JSON::Syck);
-    my $count = scalar grep { eval "require $_"; not $@; } @order;
+    my $count = scalar grep { eval "require $_"; 1; } @order;
 
-    unless ($count) {    # need at least one
-        plan skip_all => "Can't find a JSON package.";
-    }
+    ok($count, 'have at least one JSON backend installed');
 
-    # if we're here we have *something* that will work
+    # we should have installed a backend if one wasn't already present
     use_ok('JSON::Any');
 }
 
@@ -0,0 +1,133 @@
+do { my $x = {
+       'configure' => {
+                        'requires' => {
+                                        'ExtUtils::MakeMaker' => '0'
+                                      }
+                      },
+       'develop' => {
+                      'recommends' => {
+                                        'Dist::Zilla::PluginBundle::Author::ETHER' => '0.072',
+                                        'JSON::DWIW' => '0',
+                                        'JSON::PP' => '0',
+                                        'JSON::Syck' => '0',
+                                        'JSON::XS' => '0'
+                                      },
+                      'requires' => {
+                                      'Cpanel::JSON::XS' => '0',
+                                      'Dist::Zilla' => '5',
+                                      'Dist::Zilla::Plugin::Authority' => '0',
+                                      'Dist::Zilla::Plugin::AutoMetaResources' => '0',
+                                      'Dist::Zilla::Plugin::AutoPrereqs' => '0',
+                                      'Dist::Zilla::Plugin::CheckIssues' => '0',
+                                      'Dist::Zilla::Plugin::CheckPrereqsIndexed' => '0',
+                                      'Dist::Zilla::Plugin::CheckSelfDependency' => '0',
+                                      'Dist::Zilla::Plugin::CheckStrictVersion' => '0',
+                                      'Dist::Zilla::Plugin::ConfirmRelease' => '0',
+                                      'Dist::Zilla::Plugin::CopyFilesFromRelease' => '0',
+                                      'Dist::Zilla::Plugin::DynamicPrereqs' => '0',
+                                      'Dist::Zilla::Plugin::EOLTests' => '0',
+                                      'Dist::Zilla::Plugin::ExecDir' => '0',
+                                      'Dist::Zilla::Plugin::FileFinder::ByName' => '0',
+                                      'Dist::Zilla::Plugin::GenerateFile::ShareDir' => '0',
+                                      'Dist::Zilla::Plugin::Git::Check' => '0',
+                                      'Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch' => '0.004',
+                                      'Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts' => '0',
+                                      'Dist::Zilla::Plugin::Git::Commit' => '2.020',
+                                      'Dist::Zilla::Plugin::Git::Contributors' => '0.004',
+                                      'Dist::Zilla::Plugin::Git::Describe' => '0',
+                                      'Dist::Zilla::Plugin::Git::GatherDir' => '2.016',
+                                      'Dist::Zilla::Plugin::Git::NextVersion' => '0',
+                                      'Dist::Zilla::Plugin::Git::Push' => '0',
+                                      'Dist::Zilla::Plugin::Git::Remote::Check' => '0',
+                                      'Dist::Zilla::Plugin::Git::Tag' => '0',
+                                      'Dist::Zilla::Plugin::GitHub::Update' => '0',
+                                      'Dist::Zilla::Plugin::GithubMeta' => '0',
+                                      'Dist::Zilla::Plugin::InstallGuide' => '0',
+                                      'Dist::Zilla::Plugin::Keywords' => '0.004',
+                                      'Dist::Zilla::Plugin::License' => '0',
+                                      'Dist::Zilla::Plugin::MakeMaker' => '0',
+                                      'Dist::Zilla::Plugin::Manifest' => '0',
+                                      'Dist::Zilla::Plugin::MetaConfig' => '0',
+                                      'Dist::Zilla::Plugin::MetaJSON' => '0',
+                                      'Dist::Zilla::Plugin::MetaNoIndex' => '0',
+                                      'Dist::Zilla::Plugin::MetaProvides::Package' => '1.15000002',
+                                      'Dist::Zilla::Plugin::MetaTests' => '0',
+                                      'Dist::Zilla::Plugin::MetaYAML' => '0',
+                                      'Dist::Zilla::Plugin::MinimumPerl' => '0',
+                                      'Dist::Zilla::Plugin::MojibakeTests' => '0',
+                                      'Dist::Zilla::Plugin::NextRelease' => '4.300018',
+                                      'Dist::Zilla::Plugin::PkgVersion' => '5.010',
+                                      'Dist::Zilla::Plugin::PodCoverageTests' => '0',
+                                      'Dist::Zilla::Plugin::PodSyntaxTests' => '0',
+                                      'Dist::Zilla::Plugin::PodWeaver' => '0',
+                                      'Dist::Zilla::Plugin::Prereqs' => '0',
+                                      'Dist::Zilla::Plugin::Prereqs::AuthorDeps' => '0',
+                                      'Dist::Zilla::Plugin::PromptIfStale' => '0',
+                                      'Dist::Zilla::Plugin::Readme' => '0',
+                                      'Dist::Zilla::Plugin::ReadmeAnyFromPod' => '0.142180',
+                                      'Dist::Zilla::Plugin::RemovePrereqs' => '0',
+                                      'Dist::Zilla::Plugin::Run::AfterBuild' => '0',
+                                      'Dist::Zilla::Plugin::Run::AfterRelease' => '0',
+                                      'Dist::Zilla::Plugin::RunExtraTests' => '0.019',
+                                      'Dist::Zilla::Plugin::ShareDir' => '0',
+                                      'Dist::Zilla::Plugin::Test::CPAN::Changes' => '0.008',
+                                      'Dist::Zilla::Plugin::Test::ChangesHasContent' => '0',
+                                      'Dist::Zilla::Plugin::Test::CleanNamespaces' => '0',
+                                      'Dist::Zilla::Plugin::Test::Compile' => '2.039',
+                                      'Dist::Zilla::Plugin::Test::Kwalitee' => '0',
+                                      'Dist::Zilla::Plugin::Test::MinimumVersion' => '2.000003',
+                                      'Dist::Zilla::Plugin::Test::NoTabs' => '0',
+                                      'Dist::Zilla::Plugin::Test::Pod::No404s' => '0',
+                                      'Dist::Zilla::Plugin::Test::PodSpelling' => '0',
+                                      'Dist::Zilla::Plugin::Test::Portability' => '0',
+                                      'Dist::Zilla::Plugin::Test::ReportPrereqs' => '0',
+                                      'Dist::Zilla::Plugin::TestRelease' => '0',
+                                      'Dist::Zilla::Plugin::UploadToCPAN' => '0',
+                                      'Dist::Zilla::PluginBundle::Author::ETHER' => '0.068',
+                                      'File::Spec' => '0',
+                                      'IO::Handle' => '0',
+                                      'IPC::Open3' => '0',
+                                      'JSON' => '2.90',
+                                      'Pod::Coverage::TrustPod' => '0',
+                                      'Pod::Weaver::Section::Contributors' => '0',
+                                      'Test::CPAN::Changes' => '0.19',
+                                      'Test::CPAN::Meta' => '0',
+                                      'Test::CleanNamespaces' => '0.15',
+                                      'Test::Kwalitee' => '1.21',
+                                      'Test::More' => '0.94',
+                                      'Test::NoTabs' => '0',
+                                      'Test::Pod' => '1.41',
+                                      'Test::Pod::Coverage' => '1.08',
+                                      'Test::Spelling' => '0.12'
+                                    }
+                    },
+       'runtime' => {
+                      'requires' => {
+                                      'Carp' => '0',
+                                      'constant' => '0',
+                                      'namespace::clean' => '0',
+                                      'perl' => '5.008',
+                                      'strict' => '0',
+                                      'warnings' => '0'
+                                    }
+                    },
+       'test' => {
+                   'recommends' => {
+                                     'CPAN::Meta' => '2.120900'
+                                   },
+                   'requires' => {
+                                   'Data::Dumper' => '0',
+                                   'ExtUtils::MakeMaker' => '0',
+                                   'File::Spec' => '0',
+                                   'Storable' => '0',
+                                   'Test::Fatal' => '0',
+                                   'Test::More' => '0',
+                                   'Test::Requires' => '0',
+                                   'Test::Warnings' => '0.009',
+                                   'Test::Without::Module' => '0',
+                                   'utf8' => '0'
+                                 }
+                 }
+     };
+  $x;
+ }
\ No newline at end of file
@@ -3,37 +3,63 @@
 use strict;
 use warnings;
 
-# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.013
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.019
 
 use Test::More tests => 1;
 
 use ExtUtils::MakeMaker;
-use File::Spec::Functions;
-use List::Util qw/max/;
-use version;
+use File::Spec;
+
+# from $version::LAX
+my $lax_version_re =
+    qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )?
+            |
+            (?:\.[0-9]+) (?:_[0-9]+)?
+        ) | (?:
+            v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )?
+            |
+            (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)?
+        )
+    )/x;
 
 # hide optional CPAN::Meta modules from prereq scanner
 # and check if they are available
 my $cpan_meta = "CPAN::Meta";
-my $cpan_meta_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')";
+my $cpan_meta_pre = "CPAN::Meta::Prereqs";
+my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic
 
 # Verify requirements?
 my $DO_VERIFY_PREREQS = 1;
 
-sub _merge_requires {
+sub _max {
+    my $max = shift;
+    $max = ( $_ > $max ) ? $_ : $max for @_;
+    return $max;
+}
+
+sub _merge_prereqs {
     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 );
+
+    # CPAN::Meta::Prereqs object
+    if (ref $collector eq $cpan_meta_pre) {
+        return $collector->with_merged_prereqs(
+            CPAN::Meta::Prereqs->new( $prereqs )
+        );
+    }
+
+    # Raw hashrefs
+    for my $phase ( keys %$prereqs ) {
+        for my $type ( keys %{ $prereqs->{$phase} } ) {
+            for my $module ( keys %{ $prereqs->{$phase}{$type} } ) {
+                $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module};
+            }
         }
     }
+
+    return $collector;
 }
 
-my %include = map {; $_ => 1 } qw(
+my @include = qw(
   JSON
   JSON::PP
   JSON::DWIW
@@ -43,169 +69,112 @@ my %include = map {; $_ => 1 } qw(
   JSON::MaybeXS
 );
 
-my %exclude = map {; $_ => 1 } qw(
+my @exclude = qw(
 
 );
 
 # Add static prereqs to the included modules list
-my $static_prereqs = do { my $x = {
-       'configure' => {
-                        'requires' => {
-                                        'ExtUtils::MakeMaker' => '6.30'
-                                      }
-                      },
-       'develop' => {
-                      'recommends' => {
-                                        'Dist::Zilla::PluginBundle::Author::ETHER' => '0.064'
-                                      },
-                      'requires' => {
-                                      'Cpanel::JSON::XS' => '0',
-                                      'Dist::Zilla' => '5',
-                                      'Dist::Zilla::Plugin::ContributorsFromGit' => '0',
-                                      'Dist::Zilla::Plugin::DynamicPrereqs' => '0',
-                                      'Dist::Zilla::Plugin::Encoding' => '0',
-                                      'Dist::Zilla::Plugin::GitHub::Update' => '0',
-                                      'Dist::Zilla::Plugin::GithubMeta' => '0',
-                                      'Dist::Zilla::Plugin::MakeMaker' => '0',
-                                      'Dist::Zilla::Plugin::Prereqs' => '0',
-                                      'Dist::Zilla::Plugin::RemovePrereqs' => '0',
-                                      'Dist::Zilla::PluginBundle::Author::ETHER' => '0.058',
-                                      'File::Spec' => '0',
-                                      'IO::Handle' => '0',
-                                      'IPC::Open3' => '0',
-                                      'JSON' => '2.90',
-                                      'JSON::DWIW' => '0',
-                                      'JSON::PP' => '0',
-                                      'JSON::Syck' => '0',
-                                      'JSON::XS' => '0',
-                                      'Pod::Coverage::TrustPod' => '0',
-                                      'Pod::Weaver::Section::Contributors' => '0',
-                                      'Test::CPAN::Changes' => '0.19',
-                                      'Test::CPAN::Meta' => '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',
-                                      'constant' => '0',
-                                      'perl' => '5.008',
-                                      'strict' => '0',
-                                      'warnings' => '0'
-                                    }
-                    },
-       'test' => {
-                   'recommends' => {
-                                     'CPAN::Meta' => '0',
-                                     'CPAN::Meta::Requirements' => '2.120900'
-                                   },
-                   'requires' => {
-                                   'Data::Dumper' => '0',
-                                   'ExtUtils::MakeMaker' => '0',
-                                   'File::Spec::Functions' => '0',
-                                   'List::Util' => '0',
-                                   'Storable' => '0',
-                                   'Test::Fatal' => '0',
-                                   'Test::More' => '0',
-                                   'Test::Requires' => '0',
-                                   'Test::Warnings' => '0.009',
-                                   'Test::Without::Module' => '0',
-                                   'utf8' => '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);
-}
+my $static_prereqs = do 't/00-report-prereqs.dd';
 
+# Merge all prereqs (either with ::Prereqs or a hashref)
+my $full_prereqs = _merge_prereqs(
+    ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
+    $static_prereqs
+);
 
 # Add dynamic prereqs to the included modules list (if we can)
 my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
 if ( $source && $HAS_CPAN_META ) {
-  if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
-    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);
+    if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
+        $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
     }
-  }
 }
 else {
-  $source = 'static metadata';
+    $source = 'static metadata';
 }
 
-my @modules = sort grep { ! $exclude{$_} } keys %include;
-my @reports = [qw/Version Module/];
+my @full_reports;
 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'";
+my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
+
+# Add static includes into a fake section
+for my $mod (@include) {
+    $req_hash->{other}{modules}{$mod} = 0;
+}
+
+for my $phase ( qw(configure build test runtime develop other) ) {
+    next unless $req_hash->{$phase};
+    next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING});
+
+    for my $type ( qw(requires recommends suggests conflicts modules) ) {
+        next unless $req_hash->{$phase}{$type};
+
+        my $title = ucfirst($phase).' '.ucfirst($type);
+        my @reports = [qw/Module Want Have/];
+
+        for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) {
+            next if $mod eq 'perl';
+            next if grep { $_ eq $mod } @exclude;
+
+            my $file = $mod;
+            $file =~ s{::}{/}g;
+            $file .= ".pm";
+            my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC;
+
+            my $want = $req_hash->{$phase}{$type}{$mod};
+            $want = "undef" unless defined $want;
+            $want = "any" if !$want && $want == 0;
+
+            my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
+
+            if ($prefix) {
+                my $have = MM->parse_version( File::Spec->catfile($prefix, $file) );
+                $have = "undef" unless defined $have;
+                push @reports, [$mod, $want, $have];
+
+                if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) {
+                    if ( $have !~ /\A$lax_version_re\z/ ) {
+                        push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
+                    }
+                    elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) {
+                        push @dep_errors, "$mod version '$have' is not in required range '$want'";
+                    }
+                }
+            }
+            else {
+                push @reports, [$mod, $want, "missing"];
+
+                if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
+                    push @dep_errors, "$mod is not installed ($req_string)";
+                }
+            }
         }
-      }
-    }
 
-  }
-  else {
-    push @reports, ["missing", $mod];
+        if ( @reports ) {
+            push @full_reports, "=== $title ===\n\n";
 
-    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)";
-      }
+            my $ml = _max( map { length $_->[0] } @reports );
+            my $wl = _max( map { length $_->[1] } @reports );
+            my $hl = _max( map { length $_->[2] } @reports );
+            splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
+
+            push @full_reports, map { sprintf("    %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
+            push @full_reports, "\n";
+        }
     }
-  }
 }
 
-if ( @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 ( @full_reports ) {
+    diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports;
 }
 
 if ( @dep_errors ) {
-  diag join("\n",
-    "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
-    "The following REQUIRED prerequisites were not satisfied:\n",
-    @dep_errors,
-    "\n"
-  );
+    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;
@@ -1,4 +1,3 @@
-$|++;
 use strict;
 use Test::More;
 use Test::Without::Module qw(JSON::XS);
@@ -13,6 +12,8 @@ ok(my $json_obj = JSON::Any->new());
 isa_ok($json_obj, 'JSON::Any');
 isa_ok($json_obj->handler, 'JSON');
 
+is(JSON::Any->handlerType, 'JSON');
+
 $js  = q|{}|;
 $obj = $json_obj->jsonToObj($js);
 $js  = $json_obj->objToJson($obj);
@@ -1,5 +1,3 @@
-#!perl
-
 use utf8;
 use strict;
 use warnings;
@@ -2,39 +2,49 @@ use strict;
 use warnings;
 
 use Test::More;
+use Test::Fatal;
+use JSON::Any;
 
-eval "use JSON::Any";
-plan skip_all => "$@" if $@;
+my $has_cpanel = eval { require Cpanel::JSON::XS; 1 };
+my $has_json_xs; $has_json_xs = eval { require JSON::XS; 1 } if not $has_cpanel;
 
-SKIP: {
-    eval { require JSON; };
-    skip "JSON not installed: $@", 1 if $@;
+plan skip_all => 'Cpanel::JSON::XS nor JSON::XS are installed', 1
+    if not $has_cpanel and not $has_json_xs;
 
-    $ENV{JSON_ANY_ORDER} = qw(JSON);
-    JSON::Any->import();
-    skip "JSON not installed: $@", 1 if $@;
-    is_deeply( $ENV{JSON_ANY_ORDER}, qw(JSON) );
-    is( JSON::Any->handlerType, 'JSON' );
-}
-
-SKIP: {
-    eval { require JSON::XS; };
-    skip "JSON::XS not installed: $@", 1 if $@;
-
-    $ENV{JSON_ANY_ORDER} = qw(XS);
+{
+    $ENV{JSON_ANY_ORDER} = 'CPANEL XS';
 
     JSON::Any->import();
-    is( JSON::Any->handlerType, 'JSON::XS' );
+    is(
+        JSON::Any->handlerType,
+        ($has_cpanel ? 'Cpanel::' : '') . 'JSON::XS',
+        'got the right handlerType',
+    );
 
     my ($json);
-    ok( $json = JSON::Any->new() );
-    eval { $json->encode("ü") };
-    ok( $@, 'trapped a failure' );
-    undef $@;
+    ok( $json = JSON::Any->new(), 'got a JSON::Any object' );
+    like(
+        exception { $json->encode("dahut") },
+        qr/use allow_nonref/,
+        'trapped a failure because of a non-reference',
+    );
+
     $ENV{JSON_ANY_CONFIG} = 'allow_nonref=1';
-    ok( $json = JSON::Any->new() );
-    ok( $json->encode("dahut"), qq["dahut"] );
-    is( $@, undef, 'no failure' );
+    ok( $json = JSON::Any->new(), 'got another JSON::Any object' );
+
+    is(
+        exception { ok( $json->encode("dahut"), 'got the same data back again' ) },
+        undef,
+        'no failure with config change',
+    );
+
+    ok( $json = JSON::Any->new(allow_nonref => 0), 'got another JSON::Any object' );
+
+    like(
+        exception { $json->encode("dahut") },
+        qr/use allow_nonref/,
+        'trapped a failure because the constructor option overrides the environment variable',
+    );
 }
 
 done_testing;
@@ -1,4 +1,3 @@
-$|++;
 use strict;
 use warnings;
 
@@ -1,12 +1,9 @@
-$|++;
 use strict;
 use warnings;
 
 use utf8;
 use Test::More;
-
-eval "use JSON::Any";
-plan skip_all => "$@" if $@;
+use JSON::Any;
 
 $ENV{JSON_ANY_CONFIG} = "utf8=1";
 
@@ -1,16 +1,10 @@
-$!++;
 use strict;
 use warnings;
 
-use Data::Dumper;
 use Test::More;
-
 use Storable;
-eval "use JSON::Any";
-plan skip_all => "$@" if $@;
-
-$Data::Dumper::Indent = 0;
-$Data::Dumper::Terse  = 1;
+use Data::Dumper;
+use JSON::Any;
 
 my @round_trip = (
     '"\""',
@@ -41,14 +35,14 @@ my %one_way = (
 
 sub test {
     my ($backend) = @_;
+
     my $j = eval {
         JSON::Any->import($backend);
         JSON::Any->new;
     };
 
-    note "$backend: " . $@ and next if $@;
-
-    $j and $j->handler or next;
+    note "$backend: " . $@ and return if $@;
+    $j and $j->handler or return;
 
     note "handler is " . ( ref( $j->handler ) || $j->handlerType );
 
@@ -62,6 +56,9 @@ sub test {
             s/([,:]) /$1/eg;
         }
 
+        local $Data::Dumper::Indent = 0;
+        local $Data::Dumper::Terse  = 1;
+
         my $desc = "roundtrip $test -> " . Dumper($data) . " -> $json";
         utf8::encode($desc);
         is $json, $test, $desc;
@@ -72,6 +69,9 @@ sub test {
         my $test = "[$encoded]";
         my $data = eval { JSON::Any->jsonToObj($test) };
 
+        local $Data::Dumper::Indent = 0;
+        local $Data::Dumper::Terse  = 1;
+
         my $desc = "oneway $test -> " . Dumper($data);
         utf8::encode($desc);
         is $data->[0], $expected, $desc;
@@ -1,18 +1,12 @@
-$!++;
 use strict;
 use warnings;
 
 use Test::More;
-
-eval "use JSON::Any";
-plan skip_all => "$@" if $@;
-
-use Data::Dumper;
-$Data::Dumper::Indent = 0;
-$Data::Dumper::Terse  = 1;
+use Test::Fatal;
+use JSON::Any;
 
 # JSON::Syck doesn't support bools
-my @backends = qw(XS JSON DWIW);
+my @backends = qw(CPANEL XS JSON DWIW);
 
 # make sure we test the JSON::PP backend instead of XS, twice
 $ENV{PERL_JSON_BACKEND} = 0;
@@ -44,13 +38,22 @@ sub test {
         note "handler is " . ( ref( $j->handler ) || $j->handlerType );
 
         for my $bool ( qw/true false/ ) {
-            my $data = eval { JSON::Any->jsonToObj($bool) };
-            ok ( !$@,  "inflated '$bool'" );
-            ok ( eval { $data xor !Boolean->$bool }, "$bool evaluates to $bool" );
-
-            $data = eval { JSON::Any->$bool };
-            ok ( !$@, "JSON::Any->$bool returned a value" );
-            ok ( eval { $data xor !Boolean->$bool }, "JSON::Any->$bool evaluates to $bool" );
+            my $data;
+            is(
+                exception { $data = JSON::Any->jsonToObj($bool) },
+                undef,
+                "inflated '$bool'",
+            );
+
+            cmp_ok( $data, 'xor', !Boolean->$bool, "$bool evaluates to $bool" );
+
+            is(
+                exception { $data = JSON::Any->$bool },
+                undef,
+                "JSON::Any->$bool returned a value",
+            );
+
+            cmp_ok( $data, 'xor', !Boolean->$bool, "JSON::Any->$bool evaluates to $bool" );
         }
     };
 }
@@ -4,8 +4,7 @@ use warnings;
 use Test::More;
 use Test::Fatal;
 
-eval { require JSON::Any; };
-plan skip_all => "$@" if $@;
+require JSON::Any;
 
 use Test::Without::Module qw(Cpanel::JSON::XS JSON::XS JSON::DWIW JSON JSON::PP JSON::Syck);
 
@@ -4,8 +4,7 @@ use warnings;
 use Test::More;
 use Test::Warnings 0.009 qw(:no_end_test :all);
 
-eval { require JSON::Any; };
-plan skip_all => "$@" if $@;
+require JSON::Any;
 
 use Test::Requires 'JSON::Syck';
 
@@ -2,7 +2,7 @@ use 5.006;
 use strict;
 use warnings;
 
-# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.040
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.046
 
 use Test::More 0.94 tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
 
@@ -45,6 +45,6 @@ for my $lib (@module_files)
 
 
 
-is(scalar(@warnings), 0, 'no warnings found') if $ENV{AUTHOR_TESTING};
+is(scalar(@warnings), 0, 'no warnings found') or diag 'got warnings: ', explain \@warnings if $ENV{AUTHOR_TESTING};
 
 BAIL_OUT("Compilation problems") if !Test::More->builder->is_passing;
@@ -0,0 +1,44 @@
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.09
+
+use Test::More 0.88;
+use Test::NoTabs;
+
+my @files = (
+    'lib/JSON/Any.pm',
+    't/00-load.t',
+    't/00-report-prereqs.dd',
+    't/00-report-prereqs.t',
+    't/01-JSON.t',
+    't/02-JSON-XS.t',
+    't/03-JSON-DWIW.t',
+    't/04-ENV.t',
+    't/05-JSON-Syck.t',
+    't/06-JSON-PP.t',
+    't/07-CPanel-JSON-XS.t',
+    't/10_unicode.t',
+    't/11-string-escape.t',
+    't/12-boolean.t',
+    't/13-no-backends.t',
+    't/14-deprecated.t',
+    'xt/author/00-compile.t',
+    'xt/author/no-tabs.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',
+    'xt/release/kwalitee.t',
+    'xt/release/minimum-version.t',
+    'xt/release/mojibake.t',
+    'xt/release/pod-coverage.t',
+    'xt/release/pod-no404s.t',
+    'xt/release/pod-syntax.t',
+    'xt/release/portability.t'
+);
+
+notabs_ok($_) foreach @files;
+done_testing;
@@ -2,7 +2,7 @@ use strict;
 use warnings;
 use Test::More;
 
-# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006007
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006008
 use Test::Spelling 0.12;
 use Pod::Wordlist;
 
@@ -24,6 +24,14 @@ marc
 Tomas
 Doran
 bobtfish
+Karen
+Etheridge
+ether
+יובל
+קוג
+Yuval
+Kogman
+nothingmuch
 Dagfinn
 Ilmari
 Mannsåker
@@ -31,20 +39,12 @@ ilmari
 Justin
 Hunter
 justin
-Karen
-Etheridge
-ether
-Matthew
-Horsfall
-wolfsage
 Todd
 Rinaldo
 toddr
-יובל
-קוג
-Yuval
-Kogman
-nothingmuch
+Matthew
+Horsfall
+wolfsage
 lib
 JSON
 Any
@@ -4,7 +4,7 @@ use Test::More tests => 2;
 
 note 'Checking Changes';
 my $changes_file = 'Changes';
-my $newver = '1.34';
+my $newver = '1.36';
 my $trial_token = '-TRIAL';
 
 SKIP: {
@@ -0,0 +1,11 @@
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::CleanNamespaces 0.005
+
+use Test::More 0.94;
+use Test::CleanNamespaces 0.15;
+
+subtest all_namespaces_clean => sub { all_namespaces_clean() };
+
+done_testing;
@@ -1,4 +1,9 @@
-# this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.07
+# this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.10
 use strict;
 use warnings;
-use Test::Kwalitee;
+use Test::More 0.88;
+use Test::Kwalitee 1.21 'kwalitee_ok';
+
+kwalitee_ok();
+
+done_testing;
@@ -1,42 +0,0 @@
-use strict;
-use warnings;
-
-# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.08
-
-use Test::More 0.88;
-use Test::NoTabs;
-
-my @files = (
-    'lib/JSON/Any.pm',
-    't/00-load.t',
-    't/00-report-prereqs.t',
-    't/01-JSON.t',
-    't/02-JSON-XS.t',
-    't/03-JSON-DWIW.t',
-    't/04-ENV.t',
-    't/05-JSON-Syck.t',
-    't/06-JSON-PP.t',
-    't/07-CPanel-JSON-XS.t',
-    't/10_unicode.t',
-    't/11-string-escape.t',
-    't/12-boolean.t',
-    't/13-no-backends.t',
-    't/14-deprecated.t',
-    'xt/author/00-compile.t',
-    'xt/author/pod-spell.t',
-    'xt/release/changes_has_content.t',
-    'xt/release/cpan-changes.t',
-    'xt/release/distmeta.t',
-    'xt/release/eol.t',
-    'xt/release/kwalitee.t',
-    'xt/release/minimum-version.t',
-    'xt/release/mojibake.t',
-    'xt/release/no-tabs.t',
-    'xt/release/pod-coverage.t',
-    'xt/release/pod-no404s.t',
-    'xt/release/pod-syntax.t',
-    'xt/release/portability.t'
-);
-
-notabs_ok($_) foreach @files;
-done_testing;