diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3d9b3e8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,22 @@
+*~
+.\#*
+.build
+/.tidyall.d
+Build
+Debian_CPANTS.txt
+MANIFEST
+META.yml
+MYMETA.json
+MYMETA.yml
+Makefile
+Makefile.PL
+Makefile.old
+Params-Validate-*
+README
+\#*\#
+_build
+blib*
+cover_db*
+lib/Params/Validate/XS.c
+lib/Params/Validate/XS.o
+pm_to_blib*
diff --git a/.mailmap b/.mailmap
new file mode 100644
index 0000000..4436fd7
--- /dev/null
+++ b/.mailmap
@@ -0,0 +1 @@
+Dave Rolsky <autarch@urth.org> <devnull@localhost>
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..aa7886d
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,44 @@
+---
+sudo: false
+addons:
+  apt:
+    packages:
+      - aspell
+      - aspell-en
+language: perl
+perl:
+  - blead
+  - blead-thr
+  - dev
+  - dev-thr
+  - 5.24.0
+  - 5.24.0-thr
+  - 5.22.2
+  - 5.22.2-thr
+  - 5.20.2
+  - 5.20.2-thr
+  - 5.18.3
+  - 5.18.3-thr
+  - 5.16.3
+  - 5.16.3-thr
+  - 5.14.4
+  - 5.14.4-thr
+  - 5.12.5
+  - 5.12.5-thr
+  - 5.10.1
+  - 5.10.1-thr
+  - 5.8.8
+  - 5.8.8-thr
+matrix:
+  allow_failures:
+    - perl: blead
+    - perl: blead-thr
+  include:
+    - env: COVERAGE=1
+      perl: '5.22'
+env:
+  global:
+    - RELEASE_TESTING=1
+    - AUTHOR_TESTING=1
+before_install:
+  - eval $(curl https://travis-perl.github.io/init) --auto
diff --git a/Build.PL b/Build.PL
index 5c6869b..ac22019 100644
--- a/Build.PL
+++ b/Build.PL
@@ -20,7 +20,7 @@ my %module_build_args = (
     "Ilya Martynov <ilya\@martynov.org>"
   ],
   "dist_name" => "Params-Validate",
-  "dist_version" => "1.29",
+  "dist_version" => "1.30",
   "license" => "artistic_2",
   "module_name" => "Params::Validate",
   "recursive_test_files" => 1,
diff --git a/Changes b/Changes
index c984c37..139b114 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,5 @@
+{{$NEXT}}
+
 1.29    2017-06-11
 
 - Fixes for MSVC compilation. Patch by Andy Grundman. PR #15.
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index c2accbb..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,43 +0,0 @@
-This is the Perl distribution Params-Validate.
-
-Installing Params-Validate is straightforward.
-
-## Installation with cpanm
-
-If you have cpanm, you only need one line:
-
-    % cpanm Params::Validate
-
-If it does not have permission to install modules to the current perl, cpanm
-will automatically set up and install to a local::lib in your home directory.
-See the local::lib documentation (https://metacpan.org/pod/local::lib) for
-details on enabling it in your environment.
-
-## Installing with the CPAN shell
-
-Alternatively, if your CPAN shell is set up, you should just be able to do:
-
-    % cpan Params::Validate
-
-## Manual installation
-
-As a last resort, you can manually install it. Download the tarball, untar it,
-then build it:
-
-    % perl Build.PL
-    % ./Build && ./Build test
-
-Then install it:
-
-    % ./Build install
-
-If your perl is system-managed, you can create a local::lib in your home
-directory to install modules to. For details, see the local::lib documentation:
-https://metacpan.org/pod/local::lib
-
-## Documentation
-
-Params-Validate documentation is available as POD.
-You can run perldoc from a shell to read the documentation:
-
-    % perldoc Params::Validate
diff --git a/MANIFEST b/MANIFEST
deleted file mode 100644
index c6df620..0000000
--- a/MANIFEST
+++ /dev/null
@@ -1,125 +0,0 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.009.
-Build.PL
-CONTRIBUTING.md
-Changes
-INSTALL
-LICENSE
-MANIFEST
-META.json
-META.yml
-README.md
-TODO
-benchmarks/basic
-c/ppport.h
-cpanfile
-dist.ini
-inc/MyModuleBuild.pm
-lib/Params/Validate.pm
-lib/Params/Validate/Constants.pm
-lib/Params/Validate/PP.pm
-lib/Params/Validate/XS.pm
-lib/Params/Validate/XS.xs
-lib/Params/ValidatePP.pm
-lib/Params/ValidateXS.pm
-perlcriticrc
-perltidyrc
-t/00-report-prereqs.dd
-t/00-report-prereqs.t
-t/01-validate.t
-t/02-noop.t
-t/04-defaults.t
-t/05-noop_default.t
-t/06-options.t
-t/07-with.t
-t/08-noop_with.t
-t/09-regex.t
-t/10-noop_regex.t
-t/11-cb.t
-t/12-noop_cb.t
-t/13-taint.t
-t/14-no_validate.t
-t/15-case.t
-t/16-normalize.t
-t/17-callbacks.t
-t/18-depends.t
-t/19-untaint.t
-t/21-can.t
-t/22-overload-can-bug.t
-t/23-readonly.t
-t/24-tied.t
-t/25-undef-regex.t
-t/26-isa.t
-t/27-string-as-type.t
-t/28-readonly-return.t
-t/29-taint-mode.t
-t/30-hashref-alteration.t
-t/31-incorrect-spelling.t
-t/32-regex-as-value.t
-t/33-keep-errsv.t
-t/34-recursive-validation.t
-t/35-default-xs-bug.t
-t/36-large-arrays.t
-t/37-exports.t
-t/38-callback-message.t
-t/39-reentrant.t
-t/lib/PVTests.pm
-t/lib/PVTests/Callbacks.pm
-t/lib/PVTests/Defaults.pm
-t/lib/PVTests/Regex.pm
-t/lib/PVTests/Standard.pm
-t/lib/PVTests/With.pm
-tidyall.ini
-weaver.ini
-xt/author/00-compile.t
-xt/author/eol.t
-xt/author/memory-leak.t
-xt/author/mojibake.t
-xt/author/no-tabs.t
-xt/author/pod-coverage.t
-xt/author/pod-spell.t
-xt/author/pod-syntax.t
-xt/author/portability.t
-xt/author/pp-01-validate.t
-xt/author/pp-02-noop.t
-xt/author/pp-04-defaults.t
-xt/author/pp-05-noop_default.t
-xt/author/pp-06-options.t
-xt/author/pp-07-with.t
-xt/author/pp-08-noop_with.t
-xt/author/pp-09-regex.t
-xt/author/pp-10-noop_regex.t
-xt/author/pp-11-cb.t
-xt/author/pp-12-noop_cb.t
-xt/author/pp-13-taint.t
-xt/author/pp-14-no_validate.t
-xt/author/pp-15-case.t
-xt/author/pp-16-normalize.t
-xt/author/pp-17-callbacks.t
-xt/author/pp-18-depends.t
-xt/author/pp-19-untaint.t
-xt/author/pp-21-can.t
-xt/author/pp-22-overload-can-bug.t
-xt/author/pp-23-readonly.t
-xt/author/pp-24-tied.t
-xt/author/pp-25-undef-regex.t
-xt/author/pp-26-isa.t
-xt/author/pp-27-string-as-type.t
-xt/author/pp-28-readonly-return.t
-xt/author/pp-29-taint-mode.t
-xt/author/pp-30-hashref-alteration.t
-xt/author/pp-31-incorrect-spelling.t
-xt/author/pp-32-regex-as-value.t
-xt/author/pp-33-keep-errsv.t
-xt/author/pp-34-recursive-validation.t
-xt/author/pp-35-default-xs-bug.t
-xt/author/pp-36-large-arrays.t
-xt/author/pp-37-exports.t
-xt/author/pp-38-callback-message.t
-xt/author/pp-39-reentrant.t
-xt/author/pp-is-loaded.t
-xt/author/synopsis.t
-xt/author/xs-is-loaded.t
-xt/author/xs-segfault.t
-xt/author/xs-stack-realloc.t
-xt/release/cpan-changes.t
-xt/release/meta-json.t
diff --git a/META.json b/META.json
deleted file mode 100644
index 53ce583..0000000
--- a/META.json
+++ /dev/null
@@ -1,1071 +0,0 @@
-{
-   "abstract" : "Validate method/function parameters",
-   "author" : [
-      "Dave Rolsky <autarch@urth.org>",
-      "Ilya Martynov <ilya@martynov.org>"
-   ],
-   "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 6.009, CPAN::Meta::Converter version 2.150010",
-   "license" : [
-      "artistic_2"
-   ],
-   "meta-spec" : {
-      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
-      "version" : 2
-   },
-   "name" : "Params-Validate",
-   "prereqs" : {
-      "build" : {
-         "requires" : {
-            "Module::Build" : "0.28"
-         }
-      },
-      "configure" : {
-         "requires" : {
-            "Module::Build" : "0.28"
-         },
-         "suggests" : {
-            "JSON::PP" : "2.27300"
-         }
-      },
-      "develop" : {
-         "requires" : {
-            "Code::TidyAll" : "0.56",
-            "Code::TidyAll::Plugin::SortLines::Naturally" : "0.000003",
-            "Code::TidyAll::Plugin::Test::Vars" : "0.02",
-            "Devel::PPPort" : "3.23",
-            "Devel::Peek" : "0",
-            "File::Spec" : "0",
-            "File::Temp" : "0",
-            "IO::Handle" : "0",
-            "IPC::Open3" : "0",
-            "Module::Implementation" : "0.04",
-            "Parallel::ForkManager" : "1.19",
-            "Perl::Critic" : "1.126",
-            "Perl::Tidy" : "20160302",
-            "Pod::Coverage::TrustPod" : "0",
-            "Pod::Wordlist" : "0",
-            "Readonly" : "1.03",
-            "Scalar::Util" : "1.20",
-            "Test::CPAN::Changes" : "0.19",
-            "Test::CPAN::Meta::JSON" : "0.16",
-            "Test::EOL" : "0",
-            "Test::Fatal" : "0",
-            "Test::LeakTrace" : "0.15",
-            "Test::Mojibake" : "0",
-            "Test::More" : "0.96",
-            "Test::NoTabs" : "0",
-            "Test::Pod" : "1.41",
-            "Test::Pod::Coverage" : "1.08",
-            "Test::Portability::Files" : "0",
-            "Test::Requires" : "0",
-            "Test::Spelling" : "0.12",
-            "Test::Synopsis" : "0",
-            "Test::Taint" : "0.02",
-            "Test::Vars" : "0.009",
-            "Test::Version" : "2.05",
-            "Tie::Array" : "0",
-            "Tie::Hash" : "0",
-            "base" : "0",
-            "blib" : "1.01",
-            "lib" : "0",
-            "overload" : "0"
-         }
-      },
-      "runtime" : {
-         "requires" : {
-            "Carp" : "0",
-            "Exporter" : "0",
-            "Module::Implementation" : "0",
-            "Scalar::Util" : "1.10",
-            "XSLoader" : "0",
-            "perl" : "5.008001",
-            "strict" : "0",
-            "vars" : "0",
-            "warnings" : "0"
-         }
-      },
-      "test" : {
-         "recommends" : {
-            "CPAN::Meta" : "2.120900"
-         },
-         "requires" : {
-            "Devel::Peek" : "0",
-            "ExtUtils::MakeMaker" : "0",
-            "File::Spec" : "0",
-            "File::Temp" : "0",
-            "Test::Fatal" : "0",
-            "Test::More" : "0.96",
-            "Test::Requires" : "0",
-            "Tie::Array" : "0",
-            "Tie::Hash" : "0",
-            "base" : "0",
-            "lib" : "0",
-            "overload" : "0"
-         }
-      }
-   },
-   "provides" : {
-      "Params::Validate" : {
-         "file" : "lib/Params/Validate.pm",
-         "version" : "1.29"
-      },
-      "Params::Validate::Constants" : {
-         "file" : "lib/Params/Validate/Constants.pm",
-         "version" : "1.29"
-      },
-      "Params::Validate::PP" : {
-         "file" : "lib/Params/Validate/PP.pm",
-         "version" : "1.29"
-      },
-      "Params::Validate::XS" : {
-         "file" : "lib/Params/Validate/XS.pm",
-         "version" : "1.29"
-      }
-   },
-   "release_status" : "stable",
-   "resources" : {
-      "bugtracker" : {
-         "mailto" : "bug-params-validate@rt.cpan.org",
-         "web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=Params-Validate"
-      },
-      "homepage" : "http://metacpan.org/release/Params-Validate",
-      "repository" : {
-         "type" : "git",
-         "url" : "git://github.com/houseabsolute/Params-Validate.git",
-         "web" : "https://github.com/houseabsolute/Params-Validate"
-      }
-   },
-   "version" : "1.29",
-   "x_Dist_Zilla" : {
-      "perl" : {
-         "version" : "5.024001"
-      },
-      "plugins" : [
-         {
-            "class" : "inc::MyModuleBuild",
-            "config" : {
-               "Dist::Zilla::Role::TestRunner" : {
-                  "default_jobs" : 1
-               }
-            },
-            "name" : "@DROLSKY/=inc::MyModuleBuild",
-            "version" : null
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Git::GatherDir",
-            "config" : {
-               "Dist::Zilla::Plugin::GatherDir" : {
-                  "exclude_filename" : [
-                     "Build.PL",
-                     "CONTRIBUTING.md",
-                     "LICENSE",
-                     "README.md",
-                     "c/ppport.h",
-                     "cpanfile"
-                  ],
-                  "exclude_match" : [],
-                  "follow_symlinks" : 0,
-                  "include_dotfiles" : 0,
-                  "prefix" : "",
-                  "prune_directory" : [],
-                  "root" : "."
-               },
-               "Dist::Zilla::Plugin::Git::GatherDir" : {
-                  "include_untracked" : 0
-               }
-            },
-            "name" : "@DROLSKY/Git::GatherDir",
-            "version" : "2.042"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::ManifestSkip",
-            "name" : "@DROLSKY/ManifestSkip",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::License",
-            "name" : "@DROLSKY/License",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::ExecDir",
-            "name" : "@DROLSKY/ExecDir",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::ShareDir",
-            "name" : "@DROLSKY/ShareDir",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Manifest",
-            "name" : "@DROLSKY/Manifest",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::CheckVersionIncrement",
-            "name" : "@DROLSKY/CheckVersionIncrement",
-            "version" : "0.121750"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::TestRelease",
-            "name" : "@DROLSKY/TestRelease",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::ConfirmRelease",
-            "name" : "@DROLSKY/ConfirmRelease",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::UploadToCPAN",
-            "name" : "@DROLSKY/UploadToCPAN",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::VersionFromMainModule",
-            "name" : "@DROLSKY/VersionFromMainModule",
-            "version" : "0.02"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Authority",
-            "name" : "@DROLSKY/Authority",
-            "version" : "1.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::AutoPrereqs",
-            "name" : "@DROLSKY/AutoPrereqs",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::CopyFilesFromBuild",
-            "name" : "@DROLSKY/CopyFilesFromBuild",
-            "version" : "0.170880"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::GitHub::Meta",
-            "name" : "@DROLSKY/GitHub::Meta",
-            "version" : "0.44"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::GitHub::Update",
-            "config" : {
-               "Dist::Zilla::Plugin::GitHub::Update" : {
-                  "metacpan" : 1
-               }
-            },
-            "name" : "@DROLSKY/GitHub::Update",
-            "version" : "0.44"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::MetaResources",
-            "name" : "@DROLSKY/MetaResources",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::MetaProvides::Package",
-            "config" : {
-               "Dist::Zilla::Plugin::MetaProvides::Package" : {
-                  "finder_objects" : [
-                     {
-                        "class" : "Dist::Zilla::Plugin::FinderCode",
-                        "name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
-                        "version" : "6.009"
-                     }
-                  ],
-                  "include_underscores" : 0
-               },
-               "Dist::Zilla::Role::MetaProvider::Provider" : {
-                  "$Dist::Zilla::Role::MetaProvider::Provider::VERSION" : "2.002003",
-                  "inherit_missing" : 1,
-                  "inherit_version" : 1,
-                  "meta_noindex" : 1
-               },
-               "Dist::Zilla::Role::ModuleMetadata" : {
-                  "Module::Metadata" : "1.000033",
-                  "version" : "0.004"
-               }
-            },
-            "name" : "@DROLSKY/MetaProvides::Package",
-            "version" : "2.004003"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Meta::Contributors",
-            "name" : "@DROLSKY/Meta::Contributors",
-            "version" : "0.003"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::MetaConfig",
-            "name" : "@DROLSKY/MetaConfig",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::MetaJSON",
-            "name" : "@DROLSKY/MetaJSON",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::MetaYAML",
-            "name" : "@DROLSKY/MetaYAML",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::NextRelease",
-            "name" : "@DROLSKY/NextRelease",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Prereqs",
-            "config" : {
-               "Dist::Zilla::Plugin::Prereqs" : {
-                  "phase" : "test",
-                  "type" : "requires"
-               }
-            },
-            "name" : "@DROLSKY/Test::More with subtest",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Prereqs",
-            "config" : {
-               "Dist::Zilla::Plugin::Prereqs" : {
-                  "phase" : "develop",
-                  "type" : "requires"
-               }
-            },
-            "name" : "@DROLSKY/Modules for use with tidyall",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Prereqs",
-            "config" : {
-               "Dist::Zilla::Plugin::Prereqs" : {
-                  "phase" : "develop",
-                  "type" : "requires"
-               }
-            },
-            "name" : "@DROLSKY/Test::Version which fixes https://github.com/plicease/Test-Version/issues/7",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::PromptIfStale",
-            "config" : {
-               "Dist::Zilla::Plugin::PromptIfStale" : {
-                  "check_all_plugins" : 0,
-                  "check_all_prereqs" : 0,
-                  "modules" : [
-                     "Dist::Zilla::PluginBundle::DROLSKY"
-                  ],
-                  "phase" : "build",
-                  "run_under_travis" : 0,
-                  "skip" : []
-               }
-            },
-            "name" : "@DROLSKY/Dist::Zilla::PluginBundle::DROLSKY",
-            "version" : "0.053"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::PromptIfStale",
-            "config" : {
-               "Dist::Zilla::Plugin::PromptIfStale" : {
-                  "check_all_plugins" : 1,
-                  "check_all_prereqs" : 1,
-                  "modules" : [],
-                  "phase" : "release",
-                  "run_under_travis" : 0,
-                  "skip" : [
-                     "Dist::Zilla::Plugin::DROLSKY::Contributors",
-                     "Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch",
-                     "Dist::Zilla::Plugin::DROLSKY::License",
-                     "Dist::Zilla::Plugin::DROLSKY::TidyAll",
-                     "Dist::Zilla::Plugin::DROLSKY::WeaverConfig",
-                     "Pod::Weaver::PluginBundle::DROLSKY"
-                  ]
-               }
-            },
-            "name" : "@DROLSKY/PromptIfStale",
-            "version" : "0.053"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable",
-            "name" : "@DROLSKY/Test::Pod::Coverage::Configurable",
-            "version" : "0.06"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Test::PodSpelling",
-            "config" : {
-               "Dist::Zilla::Plugin::Test::PodSpelling" : {
-                  "directories" : [
-                     "bin",
-                     "lib"
-                  ],
-                  "spell_cmd" : "",
-                  "stopwords" : [
-                     "API",
-                     "CPAN",
-                     "DROLSKY",
-                     "DROLSKY's",
-                     "GLOBREF",
-                     "OO",
-                     "PayPal",
-                     "PayPal",
-                     "Rolsky",
-                     "Rolsky's",
-                     "SCALARREF",
-                     "ValidatePos",
-                     "baz",
-                     "drolsky",
-                     "onwards",
-                     "pre",
-                     "runtime"
-                  ],
-                  "wordlist" : "Pod::Wordlist"
-               }
-            },
-            "name" : "@DROLSKY/Test::PodSpelling",
-            "version" : "2.007004"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
-            "name" : "@DROLSKY/PodSyntaxTests",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::RunExtraTests",
-            "config" : {
-               "Dist::Zilla::Role::TestRunner" : {
-                  "default_jobs" : 1
-               }
-            },
-            "name" : "@DROLSKY/RunExtraTests",
-            "version" : "0.029"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::MojibakeTests",
-            "name" : "@DROLSKY/MojibakeTests",
-            "version" : "0.8"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Test::CPAN::Changes",
-            "config" : {
-               "Dist::Zilla::Plugin::Test::CPAN::Changes" : {
-                  "changelog" : "Changes"
-               }
-            },
-            "name" : "@DROLSKY/Test::CPAN::Changes",
-            "version" : "0.012"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Test::CPAN::Meta::JSON",
-            "name" : "@DROLSKY/Test::CPAN::Meta::JSON",
-            "version" : "0.004"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Test::EOL",
-            "config" : {
-               "Dist::Zilla::Plugin::Test::EOL" : {
-                  "filename" : "xt/author/eol.t",
-                  "finder" : [
-                     ":ExecFiles",
-                     ":InstallModules",
-                     ":TestFiles"
-                  ],
-                  "trailing_whitespace" : 1
-               }
-            },
-            "name" : "@DROLSKY/Test::EOL",
-            "version" : "0.19"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Test::NoTabs",
-            "config" : {
-               "Dist::Zilla::Plugin::Test::NoTabs" : {
-                  "filename" : "xt/author/no-tabs.t",
-                  "finder" : [
-                     ":InstallModules",
-                     ":ExecFiles",
-                     ":TestFiles"
-                  ]
-               }
-            },
-            "name" : "@DROLSKY/Test::NoTabs",
-            "version" : "0.15"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Test::Portability",
-            "config" : {
-               "Dist::Zilla::Plugin::Test::Portability" : {
-                  "options" : ""
-               }
-            },
-            "name" : "@DROLSKY/Test::Portability",
-            "version" : "2.001000"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Test::Synopsis",
-            "name" : "@DROLSKY/Test::Synopsis",
-            "version" : "2.000007"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Test::Compile",
-            "config" : {
-               "Dist::Zilla::Plugin::Test::Compile" : {
-                  "bail_out_on_fail" : 0,
-                  "fail_on_warning" : "author",
-                  "fake_home" : 0,
-                  "filename" : "xt/author/00-compile.t",
-                  "module_finder" : [
-                     ":InstallModules"
-                  ],
-                  "needs_display" : 0,
-                  "phase" : "develop",
-                  "script_finder" : [
-                     ":PerlExecFiles"
-                  ],
-                  "skips" : [],
-                  "switch" : []
-               }
-            },
-            "name" : "@DROLSKY/Test::Compile",
-            "version" : "2.056"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs",
-            "name" : "@DROLSKY/Test::ReportPrereqs",
-            "version" : "0.027"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::DROLSKY::Contributors",
-            "name" : "@DROLSKY/DROLSKY::Contributors",
-            "version" : "0.85"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Git::Contributors",
-            "config" : {
-               "Dist::Zilla::Plugin::Git::Contributors" : {
-                  "git_version" : "2.7.4",
-                  "include_authors" : 0,
-                  "include_releaser" : 1,
-                  "order_by" : "name",
-                  "paths" : []
-               }
-            },
-            "name" : "@DROLSKY/Git::Contributors",
-            "version" : "0.030"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::SurgicalPodWeaver",
-            "config" : {
-               "Dist::Zilla::Plugin::PodWeaver" : {
-                  "config_plugins" : [
-                     "@DROLSKY"
-                  ],
-                  "finder" : [
-                     ":InstallModules",
-                     ":ExecFiles"
-                  ],
-                  "plugins" : [
-                     {
-                        "class" : "Pod::Weaver::Plugin::EnsurePod5",
-                        "name" : "@CorePrep/EnsurePod5",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Plugin::H1Nester",
-                        "name" : "@CorePrep/H1Nester",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Plugin::SingleEncoding",
-                        "name" : "@DROLSKY/SingleEncoding",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Plugin::Transformer",
-                        "name" : "@DROLSKY/List",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Plugin::Transformer",
-                        "name" : "@DROLSKY/Verbatim",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Region",
-                        "name" : "@DROLSKY/header",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Name",
-                        "name" : "@DROLSKY/Name",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Version",
-                        "name" : "@DROLSKY/Version",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Region",
-                        "name" : "@DROLSKY/prelude",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Generic",
-                        "name" : "SYNOPSIS",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Generic",
-                        "name" : "DESCRIPTION",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Generic",
-                        "name" : "OVERVIEW",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Collect",
-                        "name" : "ATTRIBUTES",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Collect",
-                        "name" : "METHODS",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Collect",
-                        "name" : "FUNCTIONS",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Collect",
-                        "name" : "TYPES",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Leftovers",
-                        "name" : "@DROLSKY/Leftovers",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Region",
-                        "name" : "@DROLSKY/postlude",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::GenerateSection",
-                        "name" : "@DROLSKY/generate SUPPORT",
-                        "version" : "1.06"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::AllowOverride",
-                        "name" : "@DROLSKY/allow override SUPPORT",
-                        "version" : "0.05"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::GenerateSection",
-                        "name" : "@DROLSKY/generate SOURCE",
-                        "version" : "1.06"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::GenerateSection",
-                        "name" : "@DROLSKY/generate DONATIONS",
-                        "version" : "1.06"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Authors",
-                        "name" : "@DROLSKY/Authors",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Contributors",
-                        "name" : "@DROLSKY/Contributors",
-                        "version" : "0.009"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Legal",
-                        "name" : "@DROLSKY/Legal",
-                        "version" : "4.015"
-                     },
-                     {
-                        "class" : "Pod::Weaver::Section::Region",
-                        "name" : "@DROLSKY/footer",
-                        "version" : "4.015"
-                     }
-                  ]
-               }
-            },
-            "name" : "@DROLSKY/SurgicalPodWeaver",
-            "version" : "0.0023"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::DROLSKY::WeaverConfig",
-            "name" : "@DROLSKY/DROLSKY::WeaverConfig",
-            "version" : "0.85"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
-            "config" : {
-               "Dist::Zilla::Role::FileWatcher" : {
-                  "version" : "0.006"
-               }
-            },
-            "name" : "@DROLSKY/README.md in build",
-            "version" : "0.163250"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::GenerateFile::FromShareDir",
-            "config" : {
-               "Dist::Zilla::Plugin::GenerateFile::FromShareDir" : {
-                  "destination_filename" : "CONTRIBUTING.md",
-                  "dist" : "Dist-Zilla-PluginBundle-DROLSKY",
-                  "encoding" : "UTF-8",
-                  "has_xs" : 1,
-                  "location" : "build",
-                  "source_filename" : "CONTRIBUTING.md"
-               },
-               "Dist::Zilla::Role::RepoFileInjector" : {
-                  "allow_overwrite" : 1,
-                  "repo_root" : ".",
-                  "version" : "0.007"
-               }
-            },
-            "name" : "@DROLSKY/Generate CONTRIBUTING.md",
-            "version" : "0.013"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::InstallGuide",
-            "name" : "@DROLSKY/InstallGuide",
-            "version" : "1.200007"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::CPANFile",
-            "name" : "@DROLSKY/CPANFile",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::PPPort",
-            "name" : "@DROLSKY/PPPort",
-            "version" : "0.008"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::DROLSKY::License",
-            "name" : "@DROLSKY/DROLSKY::License",
-            "version" : "0.85"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::CheckStrictVersion",
-            "name" : "@DROLSKY/CheckStrictVersion",
-            "version" : "0.001"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::CheckSelfDependency",
-            "config" : {
-               "Dist::Zilla::Plugin::CheckSelfDependency" : {
-                  "finder" : [
-                     ":InstallModules"
-                  ]
-               },
-               "Dist::Zilla::Role::ModuleMetadata" : {
-                  "Module::Metadata" : "1.000033",
-                  "version" : "0.004"
-               }
-            },
-            "name" : "@DROLSKY/CheckSelfDependency",
-            "version" : "0.011"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
-            "name" : "@DROLSKY/CheckPrereqsIndexed",
-            "version" : "0.020"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch",
-            "config" : {
-               "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.7.4",
-                  "repo_root" : "."
-               }
-            },
-            "name" : "@DROLSKY/DROLSKY::Git::CheckFor::CorrectBranch",
-            "version" : "0.85"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::EnsureChangesHasContent",
-            "name" : "@DROLSKY/EnsureChangesHasContent",
-            "version" : "0.02"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts",
-            "config" : {
-               "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.7.4",
-                  "repo_root" : "."
-               }
-            },
-            "name" : "@DROLSKY/Git::CheckFor::MergeConflicts",
-            "version" : "0.014"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::DROLSKY::TidyAll",
-            "name" : "@DROLSKY/DROLSKY::TidyAll",
-            "version" : "0.85"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Git::Check",
-            "config" : {
-               "Dist::Zilla::Plugin::Git::Check" : {
-                  "untracked_files" : "die"
-               },
-               "Dist::Zilla::Role::Git::DirtyFiles" : {
-                  "allow_dirty" : [
-                     "Build.PL",
-                     "CONTRIBUTING.md",
-                     "Changes",
-                     "LICENSE",
-                     "README.md",
-                     "c/ppport.h",
-                     "cpanfile",
-                     "tidyall.ini"
-                  ],
-                  "allow_dirty_match" : [],
-                  "changelog" : "Changes"
-               },
-               "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.7.4",
-                  "repo_root" : "."
-               }
-            },
-            "name" : "@DROLSKY/Git::Check",
-            "version" : "2.042"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Git::Commit",
-            "config" : {
-               "Dist::Zilla::Plugin::Git::Commit" : {
-                  "add_files_in" : [],
-                  "commit_msg" : "v%v%n%n%c"
-               },
-               "Dist::Zilla::Role::Git::DirtyFiles" : {
-                  "allow_dirty" : [
-                     "Build.PL",
-                     "CONTRIBUTING.md",
-                     "Changes",
-                     "LICENSE",
-                     "README.md",
-                     "c/ppport.h",
-                     "cpanfile",
-                     "tidyall.ini"
-                  ],
-                  "allow_dirty_match" : [],
-                  "changelog" : "Changes"
-               },
-               "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.7.4",
-                  "repo_root" : "."
-               },
-               "Dist::Zilla::Role::Git::StringFormatter" : {
-                  "time_zone" : "local"
-               }
-            },
-            "name" : "@DROLSKY/Commit generated files",
-            "version" : "2.042"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Git::Tag",
-            "config" : {
-               "Dist::Zilla::Plugin::Git::Tag" : {
-                  "branch" : null,
-                  "changelog" : "Changes",
-                  "signed" : 0,
-                  "tag" : "v1.29",
-                  "tag_format" : "v%v",
-                  "tag_message" : "v%v"
-               },
-               "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.7.4",
-                  "repo_root" : "."
-               },
-               "Dist::Zilla::Role::Git::StringFormatter" : {
-                  "time_zone" : "local"
-               }
-            },
-            "name" : "@DROLSKY/Git::Tag",
-            "version" : "2.042"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Git::Push",
-            "config" : {
-               "Dist::Zilla::Plugin::Git::Push" : {
-                  "push_to" : [
-                     "origin"
-                  ],
-                  "remotes_must_exist" : 1
-               },
-               "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.7.4",
-                  "repo_root" : "."
-               }
-            },
-            "name" : "@DROLSKY/Git::Push",
-            "version" : "2.042"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::BumpVersionAfterRelease",
-            "config" : {
-               "Dist::Zilla::Plugin::BumpVersionAfterRelease" : {
-                  "finders" : [
-                     ":ExecFiles",
-                     ":InstallModules"
-                  ],
-                  "global" : 0,
-                  "munge_makefile_pl" : 1
-               }
-            },
-            "name" : "@DROLSKY/BumpVersionAfterRelease",
-            "version" : "0.015"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Git::Commit",
-            "config" : {
-               "Dist::Zilla::Plugin::Git::Commit" : {
-                  "add_files_in" : [],
-                  "commit_msg" : "Bump version after release"
-               },
-               "Dist::Zilla::Role::Git::DirtyFiles" : {
-                  "allow_dirty" : [
-                     "Changes",
-                     "dist.ini"
-                  ],
-                  "allow_dirty_match" : [
-                     "(?^:.+)"
-                  ],
-                  "changelog" : "Changes"
-               },
-               "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.7.4",
-                  "repo_root" : "."
-               },
-               "Dist::Zilla::Role::Git::StringFormatter" : {
-                  "time_zone" : "local"
-               }
-            },
-            "name" : "@DROLSKY/Commit version bump",
-            "version" : "2.042"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Git::Push",
-            "config" : {
-               "Dist::Zilla::Plugin::Git::Push" : {
-                  "push_to" : [
-                     "origin"
-                  ],
-                  "remotes_must_exist" : 1
-               },
-               "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.7.4",
-                  "repo_root" : "."
-               }
-            },
-            "name" : "@DROLSKY/Push version bump",
-            "version" : "2.042"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::Prereqs",
-            "config" : {
-               "Dist::Zilla::Plugin::Prereqs" : {
-                  "phase" : "develop",
-                  "type" : "requires"
-               }
-            },
-            "name" : "DevelopRequires",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::PurePerlTests",
-            "name" : "PurePerlTests",
-            "version" : "0.06"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::FinderCode",
-            "name" : ":InstallModules",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::FinderCode",
-            "name" : ":IncModules",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::FinderCode",
-            "name" : ":TestFiles",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::FinderCode",
-            "name" : ":ExtraTestFiles",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::FinderCode",
-            "name" : ":ExecFiles",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::FinderCode",
-            "name" : ":PerlExecFiles",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::FinderCode",
-            "name" : ":ShareFiles",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::FinderCode",
-            "name" : ":MainModule",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::FinderCode",
-            "name" : ":AllFiles",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::FinderCode",
-            "name" : ":NoFiles",
-            "version" : "6.009"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::FinderCode",
-            "name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
-            "version" : "6.009"
-         }
-      ],
-      "zilla" : {
-         "class" : "Dist::Zilla::Dist::Builder",
-         "config" : {
-            "is_trial" : 0
-         },
-         "version" : "6.009"
-      }
-   },
-   "x_authority" : "cpan:DROLSKY",
-   "x_contributors" : [
-      "Andy Grundman <andyg@activestate.com>",
-      "E. Choroba <choroba@matfyz.cz>",
-      "Ivan Bessarabov <ivan@bessarabov.ru>",
-      "J.R. Mash <jmash.code@gmail.com>",
-      "Karen Etheridge <ether@cpan.org>",
-      "Noel Maddy <zhtwnpanta@gmail.com>",
-      "Olivier Mengu\u00e9 <dolmen@cpan.org>",
-      "Tony Cook <tony@develop-help.com>",
-      "Vincent Pit <perl@profvince.com>"
-   ],
-   "x_serialization_backend" : "Cpanel::JSON::XS version 3.0225"
-}
-
diff --git a/META.yml b/META.yml
deleted file mode 100644
index 850c84e..0000000
--- a/META.yml
+++ /dev/null
@@ -1,774 +0,0 @@
----
-abstract: 'Validate method/function parameters'
-author:
-  - 'Dave Rolsky <autarch@urth.org>'
-  - 'Ilya Martynov <ilya@martynov.org>'
-build_requires:
-  Devel::Peek: '0'
-  ExtUtils::MakeMaker: '0'
-  File::Spec: '0'
-  File::Temp: '0'
-  Module::Build: '0.28'
-  Test::Fatal: '0'
-  Test::More: '0.96'
-  Test::Requires: '0'
-  Tie::Array: '0'
-  Tie::Hash: '0'
-  base: '0'
-  lib: '0'
-  overload: '0'
-configure_requires:
-  Module::Build: '0.28'
-dynamic_config: 0
-generated_by: 'Dist::Zilla version 6.009, CPAN::Meta::Converter version 2.150010'
-license: artistic_2
-meta-spec:
-  url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: '1.4'
-name: Params-Validate
-provides:
-  Params::Validate:
-    file: lib/Params/Validate.pm
-    version: '1.29'
-  Params::Validate::Constants:
-    file: lib/Params/Validate/Constants.pm
-    version: '1.29'
-  Params::Validate::PP:
-    file: lib/Params/Validate/PP.pm
-    version: '1.29'
-  Params::Validate::XS:
-    file: lib/Params/Validate/XS.pm
-    version: '1.29'
-requires:
-  Carp: '0'
-  Exporter: '0'
-  Module::Implementation: '0'
-  Scalar::Util: '1.10'
-  XSLoader: '0'
-  perl: '5.008001'
-  strict: '0'
-  vars: '0'
-  warnings: '0'
-resources:
-  bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Params-Validate
-  homepage: http://metacpan.org/release/Params-Validate
-  repository: git://github.com/houseabsolute/Params-Validate.git
-version: '1.29'
-x_Dist_Zilla:
-  perl:
-    version: '5.024001'
-  plugins:
-    -
-      class: inc::MyModuleBuild
-      config:
-        Dist::Zilla::Role::TestRunner:
-          default_jobs: 1
-      name: '@DROLSKY/=inc::MyModuleBuild'
-      version: ~
-    -
-      class: Dist::Zilla::Plugin::Git::GatherDir
-      config:
-        Dist::Zilla::Plugin::GatherDir:
-          exclude_filename:
-            - Build.PL
-            - CONTRIBUTING.md
-            - LICENSE
-            - README.md
-            - c/ppport.h
-            - cpanfile
-          exclude_match: []
-          follow_symlinks: 0
-          include_dotfiles: 0
-          prefix: ''
-          prune_directory: []
-          root: .
-        Dist::Zilla::Plugin::Git::GatherDir:
-          include_untracked: 0
-      name: '@DROLSKY/Git::GatherDir'
-      version: '2.042'
-    -
-      class: Dist::Zilla::Plugin::ManifestSkip
-      name: '@DROLSKY/ManifestSkip'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::License
-      name: '@DROLSKY/License'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::ExecDir
-      name: '@DROLSKY/ExecDir'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::ShareDir
-      name: '@DROLSKY/ShareDir'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::Manifest
-      name: '@DROLSKY/Manifest'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::CheckVersionIncrement
-      name: '@DROLSKY/CheckVersionIncrement'
-      version: '0.121750'
-    -
-      class: Dist::Zilla::Plugin::TestRelease
-      name: '@DROLSKY/TestRelease'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::ConfirmRelease
-      name: '@DROLSKY/ConfirmRelease'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::UploadToCPAN
-      name: '@DROLSKY/UploadToCPAN'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::VersionFromMainModule
-      name: '@DROLSKY/VersionFromMainModule'
-      version: '0.02'
-    -
-      class: Dist::Zilla::Plugin::Authority
-      name: '@DROLSKY/Authority'
-      version: '1.009'
-    -
-      class: Dist::Zilla::Plugin::AutoPrereqs
-      name: '@DROLSKY/AutoPrereqs'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::CopyFilesFromBuild
-      name: '@DROLSKY/CopyFilesFromBuild'
-      version: '0.170880'
-    -
-      class: Dist::Zilla::Plugin::GitHub::Meta
-      name: '@DROLSKY/GitHub::Meta'
-      version: '0.44'
-    -
-      class: Dist::Zilla::Plugin::GitHub::Update
-      config:
-        Dist::Zilla::Plugin::GitHub::Update:
-          metacpan: 1
-      name: '@DROLSKY/GitHub::Update'
-      version: '0.44'
-    -
-      class: Dist::Zilla::Plugin::MetaResources
-      name: '@DROLSKY/MetaResources'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::MetaProvides::Package
-      config:
-        Dist::Zilla::Plugin::MetaProvides::Package:
-          finder_objects:
-            -
-              class: Dist::Zilla::Plugin::FinderCode
-              name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
-              version: '6.009'
-          include_underscores: 0
-        Dist::Zilla::Role::MetaProvider::Provider:
-          $Dist::Zilla::Role::MetaProvider::Provider::VERSION: '2.002003'
-          inherit_missing: '1'
-          inherit_version: '1'
-          meta_noindex: '1'
-        Dist::Zilla::Role::ModuleMetadata:
-          Module::Metadata: '1.000033'
-          version: '0.004'
-      name: '@DROLSKY/MetaProvides::Package'
-      version: '2.004003'
-    -
-      class: Dist::Zilla::Plugin::Meta::Contributors
-      name: '@DROLSKY/Meta::Contributors'
-      version: '0.003'
-    -
-      class: Dist::Zilla::Plugin::MetaConfig
-      name: '@DROLSKY/MetaConfig'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::MetaJSON
-      name: '@DROLSKY/MetaJSON'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::MetaYAML
-      name: '@DROLSKY/MetaYAML'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::NextRelease
-      name: '@DROLSKY/NextRelease'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::Prereqs
-      config:
-        Dist::Zilla::Plugin::Prereqs:
-          phase: test
-          type: requires
-      name: '@DROLSKY/Test::More with subtest'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::Prereqs
-      config:
-        Dist::Zilla::Plugin::Prereqs:
-          phase: develop
-          type: requires
-      name: '@DROLSKY/Modules for use with tidyall'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::Prereqs
-      config:
-        Dist::Zilla::Plugin::Prereqs:
-          phase: develop
-          type: requires
-      name: '@DROLSKY/Test::Version which fixes https://github.com/plicease/Test-Version/issues/7'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::PromptIfStale
-      config:
-        Dist::Zilla::Plugin::PromptIfStale:
-          check_all_plugins: 0
-          check_all_prereqs: 0
-          modules:
-            - Dist::Zilla::PluginBundle::DROLSKY
-          phase: build
-          run_under_travis: 0
-          skip: []
-      name: '@DROLSKY/Dist::Zilla::PluginBundle::DROLSKY'
-      version: '0.053'
-    -
-      class: Dist::Zilla::Plugin::PromptIfStale
-      config:
-        Dist::Zilla::Plugin::PromptIfStale:
-          check_all_plugins: 1
-          check_all_prereqs: 1
-          modules: []
-          phase: release
-          run_under_travis: 0
-          skip:
-            - Dist::Zilla::Plugin::DROLSKY::Contributors
-            - Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch
-            - Dist::Zilla::Plugin::DROLSKY::License
-            - Dist::Zilla::Plugin::DROLSKY::TidyAll
-            - Dist::Zilla::Plugin::DROLSKY::WeaverConfig
-            - Pod::Weaver::PluginBundle::DROLSKY
-      name: '@DROLSKY/PromptIfStale'
-      version: '0.053'
-    -
-      class: Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable
-      name: '@DROLSKY/Test::Pod::Coverage::Configurable'
-      version: '0.06'
-    -
-      class: Dist::Zilla::Plugin::Test::PodSpelling
-      config:
-        Dist::Zilla::Plugin::Test::PodSpelling:
-          directories:
-            - bin
-            - lib
-          spell_cmd: ''
-          stopwords:
-            - API
-            - CPAN
-            - DROLSKY
-            - "DROLSKY's"
-            - GLOBREF
-            - OO
-            - PayPal
-            - PayPal
-            - Rolsky
-            - "Rolsky's"
-            - SCALARREF
-            - ValidatePos
-            - baz
-            - drolsky
-            - onwards
-            - pre
-            - runtime
-          wordlist: Pod::Wordlist
-      name: '@DROLSKY/Test::PodSpelling'
-      version: '2.007004'
-    -
-      class: Dist::Zilla::Plugin::PodSyntaxTests
-      name: '@DROLSKY/PodSyntaxTests'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::RunExtraTests
-      config:
-        Dist::Zilla::Role::TestRunner:
-          default_jobs: 1
-      name: '@DROLSKY/RunExtraTests'
-      version: '0.029'
-    -
-      class: Dist::Zilla::Plugin::MojibakeTests
-      name: '@DROLSKY/MojibakeTests'
-      version: '0.8'
-    -
-      class: Dist::Zilla::Plugin::Test::CPAN::Changes
-      config:
-        Dist::Zilla::Plugin::Test::CPAN::Changes:
-          changelog: Changes
-      name: '@DROLSKY/Test::CPAN::Changes'
-      version: '0.012'
-    -
-      class: Dist::Zilla::Plugin::Test::CPAN::Meta::JSON
-      name: '@DROLSKY/Test::CPAN::Meta::JSON'
-      version: '0.004'
-    -
-      class: Dist::Zilla::Plugin::Test::EOL
-      config:
-        Dist::Zilla::Plugin::Test::EOL:
-          filename: xt/author/eol.t
-          finder:
-            - ':ExecFiles'
-            - ':InstallModules'
-            - ':TestFiles'
-          trailing_whitespace: 1
-      name: '@DROLSKY/Test::EOL'
-      version: '0.19'
-    -
-      class: Dist::Zilla::Plugin::Test::NoTabs
-      config:
-        Dist::Zilla::Plugin::Test::NoTabs:
-          filename: xt/author/no-tabs.t
-          finder:
-            - ':InstallModules'
-            - ':ExecFiles'
-            - ':TestFiles'
-      name: '@DROLSKY/Test::NoTabs'
-      version: '0.15'
-    -
-      class: Dist::Zilla::Plugin::Test::Portability
-      config:
-        Dist::Zilla::Plugin::Test::Portability:
-          options: ''
-      name: '@DROLSKY/Test::Portability'
-      version: '2.001000'
-    -
-      class: Dist::Zilla::Plugin::Test::Synopsis
-      name: '@DROLSKY/Test::Synopsis'
-      version: '2.000007'
-    -
-      class: Dist::Zilla::Plugin::Test::Compile
-      config:
-        Dist::Zilla::Plugin::Test::Compile:
-          bail_out_on_fail: '0'
-          fail_on_warning: author
-          fake_home: 0
-          filename: xt/author/00-compile.t
-          module_finder:
-            - ':InstallModules'
-          needs_display: 0
-          phase: develop
-          script_finder:
-            - ':PerlExecFiles'
-          skips: []
-          switch: []
-      name: '@DROLSKY/Test::Compile'
-      version: '2.056'
-    -
-      class: Dist::Zilla::Plugin::Test::ReportPrereqs
-      name: '@DROLSKY/Test::ReportPrereqs'
-      version: '0.027'
-    -
-      class: Dist::Zilla::Plugin::DROLSKY::Contributors
-      name: '@DROLSKY/DROLSKY::Contributors'
-      version: '0.85'
-    -
-      class: Dist::Zilla::Plugin::Git::Contributors
-      config:
-        Dist::Zilla::Plugin::Git::Contributors:
-          git_version: 2.7.4
-          include_authors: 0
-          include_releaser: 1
-          order_by: name
-          paths: []
-      name: '@DROLSKY/Git::Contributors'
-      version: '0.030'
-    -
-      class: Dist::Zilla::Plugin::SurgicalPodWeaver
-      config:
-        Dist::Zilla::Plugin::PodWeaver:
-          config_plugins:
-            - '@DROLSKY'
-          finder:
-            - ':InstallModules'
-            - ':ExecFiles'
-          plugins:
-            -
-              class: Pod::Weaver::Plugin::EnsurePod5
-              name: '@CorePrep/EnsurePod5'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Plugin::H1Nester
-              name: '@CorePrep/H1Nester'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Plugin::SingleEncoding
-              name: '@DROLSKY/SingleEncoding'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Plugin::Transformer
-              name: '@DROLSKY/List'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Plugin::Transformer
-              name: '@DROLSKY/Verbatim'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Region
-              name: '@DROLSKY/header'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Name
-              name: '@DROLSKY/Name'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Version
-              name: '@DROLSKY/Version'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Region
-              name: '@DROLSKY/prelude'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Generic
-              name: SYNOPSIS
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Generic
-              name: DESCRIPTION
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Generic
-              name: OVERVIEW
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Collect
-              name: ATTRIBUTES
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Collect
-              name: METHODS
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Collect
-              name: FUNCTIONS
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Collect
-              name: TYPES
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Leftovers
-              name: '@DROLSKY/Leftovers'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Region
-              name: '@DROLSKY/postlude'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::GenerateSection
-              name: '@DROLSKY/generate SUPPORT'
-              version: '1.06'
-            -
-              class: Pod::Weaver::Section::AllowOverride
-              name: '@DROLSKY/allow override SUPPORT'
-              version: '0.05'
-            -
-              class: Pod::Weaver::Section::GenerateSection
-              name: '@DROLSKY/generate SOURCE'
-              version: '1.06'
-            -
-              class: Pod::Weaver::Section::GenerateSection
-              name: '@DROLSKY/generate DONATIONS'
-              version: '1.06'
-            -
-              class: Pod::Weaver::Section::Authors
-              name: '@DROLSKY/Authors'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Contributors
-              name: '@DROLSKY/Contributors'
-              version: '0.009'
-            -
-              class: Pod::Weaver::Section::Legal
-              name: '@DROLSKY/Legal'
-              version: '4.015'
-            -
-              class: Pod::Weaver::Section::Region
-              name: '@DROLSKY/footer'
-              version: '4.015'
-      name: '@DROLSKY/SurgicalPodWeaver'
-      version: '0.0023'
-    -
-      class: Dist::Zilla::Plugin::DROLSKY::WeaverConfig
-      name: '@DROLSKY/DROLSKY::WeaverConfig'
-      version: '0.85'
-    -
-      class: Dist::Zilla::Plugin::ReadmeAnyFromPod
-      config:
-        Dist::Zilla::Role::FileWatcher:
-          version: '0.006'
-      name: '@DROLSKY/README.md in build'
-      version: '0.163250'
-    -
-      class: Dist::Zilla::Plugin::GenerateFile::FromShareDir
-      config:
-        Dist::Zilla::Plugin::GenerateFile::FromShareDir:
-          destination_filename: CONTRIBUTING.md
-          dist: Dist-Zilla-PluginBundle-DROLSKY
-          encoding: UTF-8
-          has_xs: '1'
-          location: build
-          source_filename: CONTRIBUTING.md
-        Dist::Zilla::Role::RepoFileInjector:
-          allow_overwrite: 1
-          repo_root: .
-          version: '0.007'
-      name: '@DROLSKY/Generate CONTRIBUTING.md'
-      version: '0.013'
-    -
-      class: Dist::Zilla::Plugin::InstallGuide
-      name: '@DROLSKY/InstallGuide'
-      version: '1.200007'
-    -
-      class: Dist::Zilla::Plugin::CPANFile
-      name: '@DROLSKY/CPANFile'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::PPPort
-      name: '@DROLSKY/PPPort'
-      version: '0.008'
-    -
-      class: Dist::Zilla::Plugin::DROLSKY::License
-      name: '@DROLSKY/DROLSKY::License'
-      version: '0.85'
-    -
-      class: Dist::Zilla::Plugin::CheckStrictVersion
-      name: '@DROLSKY/CheckStrictVersion'
-      version: '0.001'
-    -
-      class: Dist::Zilla::Plugin::CheckSelfDependency
-      config:
-        Dist::Zilla::Plugin::CheckSelfDependency:
-          finder:
-            - ':InstallModules'
-        Dist::Zilla::Role::ModuleMetadata:
-          Module::Metadata: '1.000033'
-          version: '0.004'
-      name: '@DROLSKY/CheckSelfDependency'
-      version: '0.011'
-    -
-      class: Dist::Zilla::Plugin::CheckPrereqsIndexed
-      name: '@DROLSKY/CheckPrereqsIndexed'
-      version: '0.020'
-    -
-      class: Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch
-      config:
-        Dist::Zilla::Role::Git::Repo:
-          git_version: 2.7.4
-          repo_root: .
-      name: '@DROLSKY/DROLSKY::Git::CheckFor::CorrectBranch'
-      version: '0.85'
-    -
-      class: Dist::Zilla::Plugin::EnsureChangesHasContent
-      name: '@DROLSKY/EnsureChangesHasContent'
-      version: '0.02'
-    -
-      class: Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts
-      config:
-        Dist::Zilla::Role::Git::Repo:
-          git_version: 2.7.4
-          repo_root: .
-      name: '@DROLSKY/Git::CheckFor::MergeConflicts'
-      version: '0.014'
-    -
-      class: Dist::Zilla::Plugin::DROLSKY::TidyAll
-      name: '@DROLSKY/DROLSKY::TidyAll'
-      version: '0.85'
-    -
-      class: Dist::Zilla::Plugin::Git::Check
-      config:
-        Dist::Zilla::Plugin::Git::Check:
-          untracked_files: die
-        Dist::Zilla::Role::Git::DirtyFiles:
-          allow_dirty:
-            - Build.PL
-            - CONTRIBUTING.md
-            - Changes
-            - LICENSE
-            - README.md
-            - c/ppport.h
-            - cpanfile
-            - tidyall.ini
-          allow_dirty_match: []
-          changelog: Changes
-        Dist::Zilla::Role::Git::Repo:
-          git_version: 2.7.4
-          repo_root: .
-      name: '@DROLSKY/Git::Check'
-      version: '2.042'
-    -
-      class: Dist::Zilla::Plugin::Git::Commit
-      config:
-        Dist::Zilla::Plugin::Git::Commit:
-          add_files_in: []
-          commit_msg: v%v%n%n%c
-        Dist::Zilla::Role::Git::DirtyFiles:
-          allow_dirty:
-            - Build.PL
-            - CONTRIBUTING.md
-            - Changes
-            - LICENSE
-            - README.md
-            - c/ppport.h
-            - cpanfile
-            - tidyall.ini
-          allow_dirty_match: []
-          changelog: Changes
-        Dist::Zilla::Role::Git::Repo:
-          git_version: 2.7.4
-          repo_root: .
-        Dist::Zilla::Role::Git::StringFormatter:
-          time_zone: local
-      name: '@DROLSKY/Commit generated files'
-      version: '2.042'
-    -
-      class: Dist::Zilla::Plugin::Git::Tag
-      config:
-        Dist::Zilla::Plugin::Git::Tag:
-          branch: ~
-          changelog: Changes
-          signed: 0
-          tag: v1.29
-          tag_format: v%v
-          tag_message: v%v
-        Dist::Zilla::Role::Git::Repo:
-          git_version: 2.7.4
-          repo_root: .
-        Dist::Zilla::Role::Git::StringFormatter:
-          time_zone: local
-      name: '@DROLSKY/Git::Tag'
-      version: '2.042'
-    -
-      class: Dist::Zilla::Plugin::Git::Push
-      config:
-        Dist::Zilla::Plugin::Git::Push:
-          push_to:
-            - origin
-          remotes_must_exist: 1
-        Dist::Zilla::Role::Git::Repo:
-          git_version: 2.7.4
-          repo_root: .
-      name: '@DROLSKY/Git::Push'
-      version: '2.042'
-    -
-      class: Dist::Zilla::Plugin::BumpVersionAfterRelease
-      config:
-        Dist::Zilla::Plugin::BumpVersionAfterRelease:
-          finders:
-            - ':ExecFiles'
-            - ':InstallModules'
-          global: 0
-          munge_makefile_pl: 1
-      name: '@DROLSKY/BumpVersionAfterRelease'
-      version: '0.015'
-    -
-      class: Dist::Zilla::Plugin::Git::Commit
-      config:
-        Dist::Zilla::Plugin::Git::Commit:
-          add_files_in: []
-          commit_msg: 'Bump version after release'
-        Dist::Zilla::Role::Git::DirtyFiles:
-          allow_dirty:
-            - Changes
-            - dist.ini
-          allow_dirty_match:
-            - (?^:.+)
-          changelog: Changes
-        Dist::Zilla::Role::Git::Repo:
-          git_version: 2.7.4
-          repo_root: .
-        Dist::Zilla::Role::Git::StringFormatter:
-          time_zone: local
-      name: '@DROLSKY/Commit version bump'
-      version: '2.042'
-    -
-      class: Dist::Zilla::Plugin::Git::Push
-      config:
-        Dist::Zilla::Plugin::Git::Push:
-          push_to:
-            - origin
-          remotes_must_exist: 1
-        Dist::Zilla::Role::Git::Repo:
-          git_version: 2.7.4
-          repo_root: .
-      name: '@DROLSKY/Push version bump'
-      version: '2.042'
-    -
-      class: Dist::Zilla::Plugin::Prereqs
-      config:
-        Dist::Zilla::Plugin::Prereqs:
-          phase: develop
-          type: requires
-      name: DevelopRequires
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::PurePerlTests
-      name: PurePerlTests
-      version: '0.06'
-    -
-      class: Dist::Zilla::Plugin::FinderCode
-      name: ':InstallModules'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::FinderCode
-      name: ':IncModules'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::FinderCode
-      name: ':TestFiles'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::FinderCode
-      name: ':ExtraTestFiles'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::FinderCode
-      name: ':ExecFiles'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::FinderCode
-      name: ':PerlExecFiles'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::FinderCode
-      name: ':ShareFiles'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::FinderCode
-      name: ':MainModule'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::FinderCode
-      name: ':AllFiles'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::FinderCode
-      name: ':NoFiles'
-      version: '6.009'
-    -
-      class: Dist::Zilla::Plugin::FinderCode
-      name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
-      version: '6.009'
-  zilla:
-    class: Dist::Zilla::Dist::Builder
-    config:
-      is_trial: '0'
-    version: '6.009'
-x_authority: cpan:DROLSKY
-x_contributors:
-  - 'Andy Grundman <andyg@activestate.com>'
-  - 'E. Choroba <choroba@matfyz.cz>'
-  - 'Ivan Bessarabov <ivan@bessarabov.ru>'
-  - 'J.R. Mash <jmash.code@gmail.com>'
-  - 'Karen Etheridge <ether@cpan.org>'
-  - 'Noel Maddy <zhtwnpanta@gmail.com>'
-  - 'Olivier Mengué <dolmen@cpan.org>'
-  - 'Tony Cook <tony@develop-help.com>'
-  - 'Vincent Pit <perl@profvince.com>'
-x_serialization_backend: 'YAML::Tiny version 1.69'
diff --git a/debian/changelog b/debian/changelog
index 30cb4d2..7642b23 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+libparams-validate-perl (1.29+git20170611.a3a7326-1) UNRELEASED; urgency=medium
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Mon, 22 Jul 2019 07:38:27 +0000
+
 libparams-validate-perl (1.29-2) unstable; urgency=medium
 
   [ Alex Muntada ]
diff --git a/lib/Params/Validate.pm b/lib/Params/Validate.pm
index 8b3441f..03c79ac 100644
--- a/lib/Params/Validate.pm
+++ b/lib/Params/Validate.pm
@@ -5,7 +5,7 @@ use 5.008001;
 use strict;
 use warnings;
 
-our $VERSION = '1.29';
+our $VERSION = '1.30';
 
 use Exporter;
 use Module::Implementation;
@@ -71,14 +71,6 @@ __END__
 
 =encoding UTF-8
 
-=head1 NAME
-
-Params::Validate - Validate method/function parameters
-
-=head1 VERSION
-
-version 1.29
-
 =head1 SYNOPSIS
 
     use Params::Validate qw(:all);
@@ -789,6 +781,7 @@ variable. It is B<strongly> recommended that you B<localize> any
 changes to this variable, because other modules you are using may
 expect validation to be on when they execute. For example:
 
+
     {
         local $Params::Validate::NO_VALIDATION = 1;
 
@@ -834,100 +827,4 @@ future.
 Ideally, there would be only one validation function. If someone
 figures out how to do this, please let me know.
 
-=head1 SUPPORT
-
-Bugs may be submitted at L<http://rt.cpan.org/Public/Dist/Display.html?Name=Params-Validate> or via email to L<bug-params-validate@rt.cpan.org|mailto:bug-params-validate@rt.cpan.org>.
-
-I am also usually active on IRC as 'autarch' on C<irc://irc.perl.org>.
-
-=head1 SOURCE
-
-The source code repository for Params-Validate can be found at L<https://github.com/houseabsolute/Params-Validate>.
-
-=head1 DONATIONS
-
-If you'd like to thank me for the work I've done on this module, please
-consider making a "donation" to me via PayPal. I spend a lot of free time
-creating free software, and would appreciate any support you'd care to offer.
-
-Please note that B<I am not suggesting that you must do this> in order for me
-to continue working on this particular software. I will continue to do so,
-inasmuch as I have in the past, for as long as it interests me.
-
-Similarly, a donation made in this way will probably not make me work on this
-software much more, unless I get so many donations that I can consider working
-on free software full time (let's all have a chuckle at that together).
-
-To donate, log into PayPal and send money to autarch@urth.org, or use the
-button at L<http://www.urth.org/~autarch/fs-donation.html>.
-
-=head1 AUTHORS
-
-=over 4
-
-=item *
-
-Dave Rolsky <autarch@urth.org>
-
-=item *
-
-Ilya Martynov <ilya@martynov.org>
-
-=back
-
-=head1 CONTRIBUTORS
-
-=for stopwords Andy Grundman E. Choroba Ivan Bessarabov J.R. Mash Karen Etheridge Noel Maddy Olivier Mengué Tony Cook Vincent Pit
-
-=over 4
-
-=item *
-
-Andy Grundman <andyg@activestate.com>
-
-=item *
-
-E. Choroba <choroba@matfyz.cz>
-
-=item *
-
-Ivan Bessarabov <ivan@bessarabov.ru>
-
-=item *
-
-J.R. Mash <jmash.code@gmail.com>
-
-=item *
-
-Karen Etheridge <ether@cpan.org>
-
-=item *
-
-Noel Maddy <zhtwnpanta@gmail.com>
-
-=item *
-
-Olivier Mengué <dolmen@cpan.org>
-
-=item *
-
-Tony Cook <tony@develop-help.com>
-
-=item *
-
-Vincent Pit <perl@profvince.com>
-
-=back
-
-=head1 COPYRIGHT AND LICENSE
-
-This software is Copyright (c) 2001 - 2017 by Dave Rolsky and Ilya Martynov.
-
-This is free software, licensed under:
-
-  The Artistic License 2.0 (GPL Compatible)
-
-The full text of the license can be found in the
-F<LICENSE> file included with this distribution.
-
 =cut
diff --git a/lib/Params/Validate/Constants.pm b/lib/Params/Validate/Constants.pm
index be55e9f..04af9c7 100644
--- a/lib/Params/Validate/Constants.pm
+++ b/lib/Params/Validate/Constants.pm
@@ -3,7 +3,7 @@ package Params::Validate::Constants;
 use strict;
 use warnings;
 
-our $VERSION = '1.29';
+our $VERSION = '1.30';
 
 our @ISA = 'Exporter';
 
diff --git a/lib/Params/Validate/PP.pm b/lib/Params/Validate/PP.pm
index 0c8dadf..13affe1 100644
--- a/lib/Params/Validate/PP.pm
+++ b/lib/Params/Validate/PP.pm
@@ -3,7 +3,7 @@ package Params::Validate::PP;
 use strict;
 use warnings;
 
-our $VERSION = '1.29';
+our $VERSION = '1.30';
 
 use Params::Validate::Constants;
 use Scalar::Util 1.10 ();
diff --git a/lib/Params/Validate/XS.pm b/lib/Params/Validate/XS.pm
index b9b2000..d2f1563 100644
--- a/lib/Params/Validate/XS.pm
+++ b/lib/Params/Validate/XS.pm
@@ -3,7 +3,7 @@ package Params::Validate::XS;
 use strict;
 use warnings;
 
-our $VERSION = '1.29';
+our $VERSION = '1.30';
 
 use Carp;
 
diff --git a/lib/Params/ValidatePP.pm b/lib/Params/ValidatePP.pm
index 43178a3..a1096fb 100644
--- a/lib/Params/ValidatePP.pm
+++ b/lib/Params/ValidatePP.pm
@@ -1,7 +1,7 @@
 package    # hide from PAUSE
     Params::Validate;
 
-our $VERSION = '1.29';
+our $VERSION = '1.30';
 
 BEGIN { $ENV{PARAMS_VALIDATE_IMPLEMENTATION} = 'PP' }
 use Params::Validate;
diff --git a/lib/Params/ValidateXS.pm b/lib/Params/ValidateXS.pm
index f24b47b..05414f9 100644
--- a/lib/Params/ValidateXS.pm
+++ b/lib/Params/ValidateXS.pm
@@ -1,7 +1,7 @@
 package # hide from PAUSE
     Params::Validate;
 
-our $VERSION = '1.29';
+our $VERSION = '1.30';
 
 BEGIN { $ENV{PARAMS_VALIDATE_IMPLEMENTATION} = 'XS' }
 use Params::Validate;
diff --git a/t/00-report-prereqs.dd b/t/00-report-prereqs.dd
deleted file mode 100644
index f7bd1df..0000000
--- a/t/00-report-prereqs.dd
+++ /dev/null
@@ -1,93 +0,0 @@
-do { my $x = {
-       'build' => {
-                    'requires' => {
-                                    'Module::Build' => '0.28'
-                                  }
-                  },
-       'configure' => {
-                        'requires' => {
-                                        'Module::Build' => '0.28'
-                                      },
-                        'suggests' => {
-                                        'JSON::PP' => '2.27300'
-                                      }
-                      },
-       'develop' => {
-                    'requires' => {
-                                  'Code::TidyAll' => '0.56',
-                                  'Code::TidyAll::Plugin::SortLines::Naturally' => '0.000003',
-                                  'Code::TidyAll::Plugin::Test::Vars' => '0.02',
-                                  'Devel::PPPort' => '3.23',
-                                  'Devel::Peek' => '0',
-                                  'File::Spec' => '0',
-                                  'File::Temp' => '0',
-                                  'IO::Handle' => '0',
-                                  'IPC::Open3' => '0',
-                                  'Module::Implementation' => '0.04',
-                                  'Parallel::ForkManager' => '1.19',
-                                  'Perl::Critic' => '1.126',
-                                  'Perl::Tidy' => '20160302',
-                                  'Pod::Coverage::TrustPod' => '0',
-                                  'Pod::Wordlist' => '0',
-                                  'Readonly' => '1.03',
-                                  'Scalar::Util' => '1.20',
-                                  'Test::CPAN::Changes' => '0.19',
-                                  'Test::CPAN::Meta::JSON' => '0.16',
-                                  'Test::EOL' => '0',
-                                  'Test::Fatal' => '0',
-                                  'Test::LeakTrace' => '0.15',
-                                  'Test::Mojibake' => '0',
-                                  'Test::More' => '0.96',
-                                  'Test::NoTabs' => '0',
-                                  'Test::Pod' => '1.41',
-                                  'Test::Pod::Coverage' => '1.08',
-                                  'Test::Portability::Files' => '0',
-                                  'Test::Requires' => '0',
-                                  'Test::Spelling' => '0.12',
-                                  'Test::Synopsis' => '0',
-                                  'Test::Taint' => '0.02',
-                                  'Test::Vars' => '0.009',
-                                  'Test::Version' => '2.05',
-                                  'Tie::Array' => '0',
-                                  'Tie::Hash' => '0',
-                                  'base' => '0',
-                                  'blib' => '1.01',
-                                  'lib' => '0',
-                                  'overload' => '0'
-                                }
-                  },
-       'runtime' => {
-                      'requires' => {
-                                      'Carp' => '0',
-                                      'Exporter' => '0',
-                                      'Module::Implementation' => '0',
-                                      'Scalar::Util' => '1.10',
-                                      'XSLoader' => '0',
-                                      'perl' => '5.008001',
-                                      'strict' => '0',
-                                      'vars' => '0',
-                                      'warnings' => '0'
-                                    }
-                    },
-       'test' => {
-                   'recommends' => {
-                                     'CPAN::Meta' => '2.120900'
-                                   },
-                   'requires' => {
-                                   'Devel::Peek' => '0',
-                                   'ExtUtils::MakeMaker' => '0',
-                                   'File::Spec' => '0',
-                                   'File::Temp' => '0',
-                                   'Test::Fatal' => '0',
-                                   'Test::More' => '0.96',
-                                   'Test::Requires' => '0',
-                                   'Tie::Array' => '0',
-                                   'Tie::Hash' => '0',
-                                   'base' => '0',
-                                   'lib' => '0',
-                                   'overload' => '0'
-                                 }
-                 }
-     };
-  $x;
- }
\ No newline at end of file
diff --git a/t/00-report-prereqs.t b/t/00-report-prereqs.t
deleted file mode 100644
index c72183a..0000000
--- a/t/00-report-prereqs.t
+++ /dev/null
@@ -1,193 +0,0 @@
-#!perl
-
-use strict;
-use warnings;
-
-# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.027
-
-use Test::More tests => 1;
-
-use ExtUtils::MakeMaker;
-use File::Spec;
-
-# from $version::LAX
-my $lax_version_re =
-    qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )?
-            |
-            (?:\.[0-9]+) (?:_[0-9]+)?
-        ) | (?:
-            v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )?
-            |
-            (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)?
-        )
-    )/x;
-
-# hide optional CPAN::Meta modules from prereq scanner
-# and check if they are available
-my $cpan_meta = "CPAN::Meta";
-my $cpan_meta_pre = "CPAN::Meta::Prereqs";
-my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic
-
-# Verify requirements?
-my $DO_VERIFY_PREREQS = 1;
-
-sub _max {
-    my $max = shift;
-    $max = ( $_ > $max ) ? $_ : $max for @_;
-    return $max;
-}
-
-sub _merge_prereqs {
-    my ($collector, $prereqs) = @_;
-
-    # CPAN::Meta::Prereqs object
-    if (ref $collector eq $cpan_meta_pre) {
-        return $collector->with_merged_prereqs(
-            CPAN::Meta::Prereqs->new( $prereqs )
-        );
-    }
-
-    # Raw hashrefs
-    for my $phase ( keys %$prereqs ) {
-        for my $type ( keys %{ $prereqs->{$phase} } ) {
-            for my $module ( keys %{ $prereqs->{$phase}{$type} } ) {
-                $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module};
-            }
-        }
-    }
-
-    return $collector;
-}
-
-my @include = qw(
-
-);
-
-my @exclude = qw(
-
-);
-
-# Add static prereqs to the included modules list
-my $static_prereqs = do './t/00-report-prereqs.dd';
-
-# Merge all prereqs (either with ::Prereqs or a hashref)
-my $full_prereqs = _merge_prereqs(
-    ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
-    $static_prereqs
-);
-
-# Add dynamic prereqs to the included modules list (if we can)
-my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
-my $cpan_meta_error;
-if ( $source && $HAS_CPAN_META
-    && (my $meta = eval { CPAN::Meta->load_file($source) } )
-) {
-    $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
-}
-else {
-    $cpan_meta_error = $@;    # capture error from CPAN::Meta->load_file($source)
-    $source = 'static metadata';
-}
-
-my @full_reports;
-my @dep_errors;
-my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
-
-# Add static includes into a fake section
-for my $mod (@include) {
-    $req_hash->{other}{modules}{$mod} = 0;
-}
-
-for my $phase ( qw(configure build test runtime develop other) ) {
-    next unless $req_hash->{$phase};
-    next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING});
-
-    for my $type ( qw(requires recommends suggests conflicts modules) ) {
-        next unless $req_hash->{$phase}{$type};
-
-        my $title = ucfirst($phase).' '.ucfirst($type);
-        my @reports = [qw/Module Want Have/];
-
-        for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) {
-            next if $mod eq 'perl';
-            next if grep { $_ eq $mod } @exclude;
-
-            my $file = $mod;
-            $file =~ s{::}{/}g;
-            $file .= ".pm";
-            my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC;
-
-            my $want = $req_hash->{$phase}{$type}{$mod};
-            $want = "undef" unless defined $want;
-            $want = "any" if !$want && $want == 0;
-
-            my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
-
-            if ($prefix) {
-                my $have = MM->parse_version( File::Spec->catfile($prefix, $file) );
-                $have = "undef" unless defined $have;
-                push @reports, [$mod, $want, $have];
-
-                if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) {
-                    if ( $have !~ /\A$lax_version_re\z/ ) {
-                        push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
-                    }
-                    elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) {
-                        push @dep_errors, "$mod version '$have' is not in required range '$want'";
-                    }
-                }
-            }
-            else {
-                push @reports, [$mod, $want, "missing"];
-
-                if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
-                    push @dep_errors, "$mod is not installed ($req_string)";
-                }
-            }
-        }
-
-        if ( @reports ) {
-            push @full_reports, "=== $title ===\n\n";
-
-            my $ml = _max( map { length $_->[0] } @reports );
-            my $wl = _max( map { length $_->[1] } @reports );
-            my $hl = _max( map { length $_->[2] } @reports );
-
-            if ($type eq 'modules') {
-                splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl];
-                push @full_reports, map { sprintf("    %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports;
-            }
-            else {
-                splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
-                push @full_reports, map { sprintf("    %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
-            }
-
-            push @full_reports, "\n";
-        }
-    }
-}
-
-if ( @full_reports ) {
-    diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports;
-}
-
-if ( $cpan_meta_error || @dep_errors ) {
-    diag "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n";
-}
-
-if ( $cpan_meta_error ) {
-    my ($orig_source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
-    diag "\nCPAN::Meta->load_file('$orig_source') failed with: $cpan_meta_error\n";
-}
-
-if ( @dep_errors ) {
-    diag join("\n",
-        "\nThe following REQUIRED prerequisites were not satisfied:\n",
-        @dep_errors,
-        "\n"
-    );
-}
-
-pass;
-
-# vim: ts=4 sts=4 sw=4 et:
diff --git a/xt/author/00-compile.t b/xt/author/00-compile.t
deleted file mode 100644
index d24ae9f..0000000
--- a/xt/author/00-compile.t
+++ /dev/null
@@ -1,65 +0,0 @@
-use 5.006;
-use strict;
-use warnings;
-
-# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.056
-
-use Test::More;
-
-plan tests => 7;
-
-my @module_files = (
-    'Params/Validate.pm',
-    'Params/Validate/Constants.pm',
-    'Params/Validate/PP.pm',
-    'Params/Validate/XS.pm',
-    'Params/ValidatePP.pm',
-    'Params/ValidateXS.pm'
-);
-
-
-
-# no fake home requested
-
-my @switches = (
-    -d 'blib' ? '-Mblib' : '-Ilib',
-);
-
-use File::Spec;
-use IPC::Open3;
-use IO::Handle;
-
-open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
-
-my @warnings;
-for my $lib (@module_files)
-{
-    # see L<perlfaq8/How can I capture STDERR from an external command?>
-    my $stderr = IO::Handle->new;
-
-    diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} }
-            $^X, @switches, '-e', "require q[$lib]"))
-        if $ENV{PERL_COMPILE_TEST_DEBUG};
-
-    my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]");
-    binmode $stderr, ':crlf' if $^O eq 'MSWin32';
-    my @_warnings = <$stderr>;
-    waitpid($pid, 0);
-    is($?, 0, "$lib loaded ok");
-
-    shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/
-        and not eval { require blib; blib->VERSION('1.01') };
-
-    if (@_warnings)
-    {
-        warn @_warnings;
-        push @warnings, @_warnings;
-    }
-}
-
-
-
-is(scalar(@warnings), 0, 'no warnings found')
-    or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) );
-
-
diff --git a/xt/author/eol.t b/xt/author/eol.t
deleted file mode 100644
index b7ebf6d..0000000
--- a/xt/author/eol.t
+++ /dev/null
@@ -1,64 +0,0 @@
-use strict;
-use warnings;
-
-# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19
-
-use Test::More 0.88;
-use Test::EOL;
-
-my @files = (
-    'lib/Params/Validate.pm',
-    'lib/Params/Validate/Constants.pm',
-    'lib/Params/Validate/PP.pm',
-    'lib/Params/Validate/XS.pm',
-    'lib/Params/ValidatePP.pm',
-    'lib/Params/ValidateXS.pm',
-    't/00-report-prereqs.dd',
-    't/00-report-prereqs.t',
-    't/01-validate.t',
-    't/02-noop.t',
-    't/04-defaults.t',
-    't/05-noop_default.t',
-    't/06-options.t',
-    't/07-with.t',
-    't/08-noop_with.t',
-    't/09-regex.t',
-    't/10-noop_regex.t',
-    't/11-cb.t',
-    't/12-noop_cb.t',
-    't/13-taint.t',
-    't/14-no_validate.t',
-    't/15-case.t',
-    't/16-normalize.t',
-    't/17-callbacks.t',
-    't/18-depends.t',
-    't/19-untaint.t',
-    't/21-can.t',
-    't/22-overload-can-bug.t',
-    't/23-readonly.t',
-    't/24-tied.t',
-    't/25-undef-regex.t',
-    't/26-isa.t',
-    't/27-string-as-type.t',
-    't/28-readonly-return.t',
-    't/29-taint-mode.t',
-    't/30-hashref-alteration.t',
-    't/31-incorrect-spelling.t',
-    't/32-regex-as-value.t',
-    't/33-keep-errsv.t',
-    't/34-recursive-validation.t',
-    't/35-default-xs-bug.t',
-    't/36-large-arrays.t',
-    't/37-exports.t',
-    't/38-callback-message.t',
-    't/39-reentrant.t',
-    't/lib/PVTests.pm',
-    't/lib/PVTests/Callbacks.pm',
-    't/lib/PVTests/Defaults.pm',
-    't/lib/PVTests/Regex.pm',
-    't/lib/PVTests/Standard.pm',
-    't/lib/PVTests/With.pm'
-);
-
-eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files;
-done_testing;
diff --git a/xt/author/mojibake.t b/xt/author/mojibake.t
deleted file mode 100644
index 5ef161e..0000000
--- a/xt/author/mojibake.t
+++ /dev/null
@@ -1,9 +0,0 @@
-#!perl
-
-use strict;
-use warnings qw(all);
-
-use Test::More;
-use Test::Mojibake;
-
-all_files_encoding_ok();
diff --git a/xt/author/no-tabs.t b/xt/author/no-tabs.t
deleted file mode 100644
index eef4684..0000000
--- a/xt/author/no-tabs.t
+++ /dev/null
@@ -1,64 +0,0 @@
-use strict;
-use warnings;
-
-# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.15
-
-use Test::More 0.88;
-use Test::NoTabs;
-
-my @files = (
-    'lib/Params/Validate.pm',
-    'lib/Params/Validate/Constants.pm',
-    'lib/Params/Validate/PP.pm',
-    'lib/Params/Validate/XS.pm',
-    'lib/Params/ValidatePP.pm',
-    'lib/Params/ValidateXS.pm',
-    't/00-report-prereqs.dd',
-    't/00-report-prereqs.t',
-    't/01-validate.t',
-    't/02-noop.t',
-    't/04-defaults.t',
-    't/05-noop_default.t',
-    't/06-options.t',
-    't/07-with.t',
-    't/08-noop_with.t',
-    't/09-regex.t',
-    't/10-noop_regex.t',
-    't/11-cb.t',
-    't/12-noop_cb.t',
-    't/13-taint.t',
-    't/14-no_validate.t',
-    't/15-case.t',
-    't/16-normalize.t',
-    't/17-callbacks.t',
-    't/18-depends.t',
-    't/19-untaint.t',
-    't/21-can.t',
-    't/22-overload-can-bug.t',
-    't/23-readonly.t',
-    't/24-tied.t',
-    't/25-undef-regex.t',
-    't/26-isa.t',
-    't/27-string-as-type.t',
-    't/28-readonly-return.t',
-    't/29-taint-mode.t',
-    't/30-hashref-alteration.t',
-    't/31-incorrect-spelling.t',
-    't/32-regex-as-value.t',
-    't/33-keep-errsv.t',
-    't/34-recursive-validation.t',
-    't/35-default-xs-bug.t',
-    't/36-large-arrays.t',
-    't/37-exports.t',
-    't/38-callback-message.t',
-    't/39-reentrant.t',
-    't/lib/PVTests.pm',
-    't/lib/PVTests/Callbacks.pm',
-    't/lib/PVTests/Defaults.pm',
-    't/lib/PVTests/Regex.pm',
-    't/lib/PVTests/Standard.pm',
-    't/lib/PVTests/With.pm'
-);
-
-notabs_ok($_) foreach @files;
-done_testing;
diff --git a/xt/author/pod-coverage.t b/xt/author/pod-coverage.t
deleted file mode 100644
index 2f87ac4..0000000
--- a/xt/author/pod-coverage.t
+++ /dev/null
@@ -1,48 +0,0 @@
-#!perl
-# This file was automatically generated by Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable.
-
-use Test::Pod::Coverage 1.08;
-use Test::More 0.88;
-
-BEGIN {
-    if ( $] <= 5.008008 ) {
-        plan skip_all => 'These tests require Pod::Coverage::TrustPod, which only works with Perl 5.8.9+';
-    }
-}
-use Pod::Coverage::TrustPod;
-
-my %skip = map { $_ => 1 } qw( Params::Validate::Constants Params::Validate::PP Params::Validate::XS Params::ValidatePP Params::ValidateXS );
-
-my @modules;
-for my $module ( all_modules() ) {
-    next if $skip{$module};
-
-    push @modules, $module;
-}
-
-plan skip_all => 'All the modules we found were excluded from POD coverage test.'
-    unless @modules;
-
-plan tests => scalar @modules;
-
-my %trustme = (
-             'Params::Validate' => [
-                                   qr/^(?:UNKNOWN|set_options|validate(?:_pos|_with)?|validation_options)$/
-                                 ]
-           );
-
-my @also_private;
-
-for my $module ( sort @modules ) {
-    pod_coverage_ok(
-        $module,
-        {
-            coverage_class => 'Pod::Coverage::TrustPod',
-            also_private   => \@also_private,
-            trustme        => $trustme{$module} || [],
-        },
-        "pod coverage for $module"
-    );
-}
-
-done_testing();
diff --git a/xt/author/pod-spell.t b/xt/author/pod-spell.t
deleted file mode 100644
index 8a1ebf7..0000000
--- a/xt/author/pod-spell.t
+++ /dev/null
@@ -1,67 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-
-# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.007004
-use Test::Spelling 0.12;
-use Pod::Wordlist;
-
-
-add_stopwords(<DATA>);
-all_pod_files_spelling_ok( qw( bin lib ) );
-__DATA__
-API
-Andy
-Bessarabov
-CPAN
-Choroba
-Constants
-Cook
-DROLSKY
-DROLSKY's
-Dave
-Etheridge
-GLOBREF
-Grundman
-Ilya
-Ivan
-Karen
-Maddy
-Martynov
-Mash
-Mengué
-Noel
-OO
-Olivier
-PP
-Params
-PayPal
-Pit
-Rolsky
-Rolsky's
-SCALARREF
-Tony
-Validate
-ValidatePP
-ValidatePos
-ValidateXS
-Vincent
-XS
-and
-andyg
-autarch
-baz
-choroba
-dolmen
-drolsky
-ether
-ilya
-ivan
-jmash
-lib
-onwards
-perl
-pre
-runtime
-tony
-zhtwnpanta
diff --git a/xt/author/pod-syntax.t b/xt/author/pod-syntax.t
deleted file mode 100644
index e563e5d..0000000
--- a/xt/author/pod-syntax.t
+++ /dev/null
@@ -1,7 +0,0 @@
-#!perl
-# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
-use strict; use warnings;
-use Test::More;
-use Test::Pod 1.41;
-
-all_pod_files_ok();
diff --git a/xt/author/portability.t b/xt/author/portability.t
deleted file mode 100644
index c531252..0000000
--- a/xt/author/portability.t
+++ /dev/null
@@ -1,10 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-
-eval 'use Test::Portability::Files';
-plan skip_all => 'Test::Portability::Files required for testing portability'
-    if $@;
-
-run_tests();
diff --git a/xt/author/pp-01-validate.t b/xt/author/pp-01-validate.t
deleted file mode 100644
index e6f131f..0000000
--- a/xt/author/pp-01-validate.t
+++ /dev/null
@@ -1,13 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use File::Spec;
-use lib File::Spec->catdir( 't', 'lib' );
-
-use PVTests::Standard;
-PVTests::Standard::run_tests();
-
diff --git a/xt/author/pp-02-noop.t b/xt/author/pp-02-noop.t
deleted file mode 100644
index 50ec419..0000000
--- a/xt/author/pp-02-noop.t
+++ /dev/null
@@ -1,16 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use File::Spec;
-use lib File::Spec->catdir( 't', 'lib' );
-
-BEGIN { $ENV{PERL_NO_VALIDATION} = 1 }
-
-use PVTests::Standard;
-PVTests::Standard::run_tests();
-
-
diff --git a/xt/author/pp-04-defaults.t b/xt/author/pp-04-defaults.t
deleted file mode 100644
index 17a11ba..0000000
--- a/xt/author/pp-04-defaults.t
+++ /dev/null
@@ -1,13 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use File::Spec;
-use lib File::Spec->catdir( 't', 'lib' );
-
-use PVTests::Defaults;
-PVTests::Defaults::run_tests();
-
diff --git a/xt/author/pp-05-noop_default.t b/xt/author/pp-05-noop_default.t
deleted file mode 100644
index c78c922..0000000
--- a/xt/author/pp-05-noop_default.t
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use File::Spec;
-use lib File::Spec->catdir( 't', 'lib' );
-
-BEGIN { $ENV{PERL_NO_VALIDATION} = 1 }
-
-use PVTests::Defaults;
-PVTests::Defaults::run_tests();
-
diff --git a/xt/author/pp-06-options.t b/xt/author/pp-06-options.t
deleted file mode 100644
index 0f2b159..0000000
--- a/xt/author/pp-06-options.t
+++ /dev/null
@@ -1,44 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use File::Spec;
-use lib File::Spec->catdir( 't', 'lib' );
-
-use PVTests;
-use Test::More;
-
-use Params::Validate qw(:all);
-
-validation_options( stack_skip => 2 );
-
-sub foo {
-    my %p = validate( @_, { bar => 1 } );
-}
-
-sub bar { foo(@_) }
-
-sub baz { bar(@_) }
-
-eval { baz() };
-
-like( $@, qr/mandatory.*missing.*call to main::bar/i );
-
-validation_options( stack_skip => 3 );
-
-eval { baz() };
-like( $@, qr/mandatory.*missing.*call to main::baz/i );
-
-validation_options( on_fail => sub { die bless { hash => 'ref' }, 'Dead' } );
-
-eval { baz() };
-
-my $e = $@;
-is( $e->{hash}, 'ref' );
-ok( eval { $e->isa('Dead'); 1; } );
-
-done_testing();
-
diff --git a/xt/author/pp-07-with.t b/xt/author/pp-07-with.t
deleted file mode 100644
index 2e35e5f..0000000
--- a/xt/author/pp-07-with.t
+++ /dev/null
@@ -1,13 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use File::Spec;
-use lib File::Spec->catdir( 't', 'lib' );
-
-use PVTests::With;
-PVTests::With::run_tests();
-
diff --git a/xt/author/pp-08-noop_with.t b/xt/author/pp-08-noop_with.t
deleted file mode 100644
index 07f0faf..0000000
--- a/xt/author/pp-08-noop_with.t
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use File::Spec;
-use lib File::Spec->catdir( 't', 'lib' );
-
-BEGIN { $ENV{PERL_NO_VALIDATION} = 1 }
-
-use PVTests::With;
-PVTests::With::run_tests();
-
diff --git a/xt/author/pp-09-regex.t b/xt/author/pp-09-regex.t
deleted file mode 100644
index 6f2d853..0000000
--- a/xt/author/pp-09-regex.t
+++ /dev/null
@@ -1,13 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use File::Spec;
-use lib File::Spec->catdir( 't', 'lib' );
-
-use PVTests::Regex;
-PVTests::Regex::run_tests();
-
diff --git a/xt/author/pp-10-noop_regex.t b/xt/author/pp-10-noop_regex.t
deleted file mode 100644
index 14a2772..0000000
--- a/xt/author/pp-10-noop_regex.t
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use File::Spec;
-use lib File::Spec->catdir( 't', 'lib' );
-
-BEGIN { $ENV{PERL_NO_VALIDATION} = 1 }
-
-use PVTests::Regex;
-PVTests::Regex::run_tests();
-
diff --git a/xt/author/pp-11-cb.t b/xt/author/pp-11-cb.t
deleted file mode 100644
index 1afdd60..0000000
--- a/xt/author/pp-11-cb.t
+++ /dev/null
@@ -1,13 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use File::Spec;
-use lib File::Spec->catdir( 't', 'lib' );
-
-use PVTests::Callbacks;
-PVTests::Callbacks::run_tests();
-
diff --git a/xt/author/pp-12-noop_cb.t b/xt/author/pp-12-noop_cb.t
deleted file mode 100644
index 617b746..0000000
--- a/xt/author/pp-12-noop_cb.t
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use File::Spec;
-use lib File::Spec->catdir( 't', 'lib' );
-
-BEGIN { $ENV{PERL_NO_VALIDATION} = 1 }
-
-use PVTests::Callbacks;
-PVTests::Callbacks::run_tests();
-
diff --git a/xt/author/pp-13-taint.t b/xt/author/pp-13-taint.t
deleted file mode 100644
index e75e1c2..0000000
--- a/xt/author/pp-13-taint.t
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use File::Spec;
-use lib File::Spec->catdir( 't', 'lib' );
-
-eval { "$0$^X" && kill 0; 1 };
-
-use PVTests::Standard;
-PVTests::Standard::run_tests();
-
diff --git a/xt/author/pp-14-no_validate.t b/xt/author/pp-14-no_validate.t
deleted file mode 100644
index 5c81fef..0000000
--- a/xt/author/pp-14-no_validate.t
+++ /dev/null
@@ -1,33 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use lib './t';
-
-use Params::Validate qw(validate);
-
-use Test::More;
-plan tests => $] == 5.006 ? 2 : 3;
-
-eval { foo() };
-like( $@, qr/parameter 'foo'/ );
-
-{
-    local $Params::Validate::NO_VALIDATION = 1;
-
-    eval { foo() };
-    is( $@, q{} );
-}
-
-unless ( $] == 5.006 ) {
-    eval { foo() };
-    like( $@, qr/parameter 'foo'/ );
-}
-
-sub foo {
-    validate( @_, { foo => 1 } );
-}
-
diff --git a/xt/author/pp-15-case.t b/xt/author/pp-15-case.t
deleted file mode 100644
index 30cf34f..0000000
--- a/xt/author/pp-15-case.t
+++ /dev/null
@@ -1,103 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Test::More;
-
-use Params::Validate qw(validate validate_with);
-
-my @testset;
-
-# Generate test cases ...
-BEGIN {
-    my @lower_case_args = ( foo => 1 );
-    my @upper_case_args = ( FOO => 1 );
-    my @mixed_case_args = ( FoO => 1 );
-
-    my %lower_case_spec = ( foo => 1 );
-    my %upper_case_spec = ( FOO => 1 );
-    my %mixed_case_spec = ( FoO => 1 );
-
-    my %arglist = (
-        lower => \@lower_case_args,
-        upper => \@upper_case_args,
-        mixed => \@mixed_case_args
-    );
-
-    my %speclist = (
-        lower => \%lower_case_spec,
-        upper => \%upper_case_spec,
-        mixed => \%mixed_case_spec
-    );
-
-    # XXX - make subs such that user gets to see the error message
-    # when a test fails
-    my $ok_sub = sub {
-        if ($@) {
-            print STDERR $@;
-        }
-        !$@;
-    };
-
-    my $nok_sub = sub {
-        my $ok = ( $@ =~ /not listed in the validation options/ );
-        unless ($ok) {
-            print STDERR $@;
-        }
-        $ok;
-    };
-
-    # generate testcases on the fly (I'm too lazy)
-    for my $ignore_case (qw( 0 1 )) {
-        for my $args ( keys %arglist ) {
-            for my $spec ( keys %speclist ) {
-                push @testset, {
-                    params => $arglist{$args},
-                    spec   => $speclist{$spec},
-                    expect => (
-                          $ignore_case   ? $ok_sub
-                        : $args eq $spec ? $ok_sub
-                        :                  $nok_sub
-                    ),
-                    ignore_case => $ignore_case
-                    };
-            }
-        }
-    }
-}
-
-plan tests => ( scalar @testset ) * 2;
-
-{
-
-    # XXX - "called" will be all messed up, but what the heck
-    foreach my $case (@testset) {
-        my %args = eval {
-            validate_with(
-                params      => $case->{params},
-                spec        => $case->{spec},
-                ignore_case => $case->{ignore_case}
-            );
-        };
-
-        ok( $case->{expect}->(%args) );
-    }
-
-    # XXX - make sure that it works from validation_options() as well
-    foreach my $case (@testset) {
-        Params::Validate::validation_options(
-            ignore_case => $case->{ignore_case} );
-
-        my %args = eval {
-            my @args = @{ $case->{params} };
-            validate( @args, $case->{spec} );
-        };
-
-        ok( $case->{expect}->(%args) );
-    }
-}
-
-
diff --git a/xt/author/pp-16-normalize.t b/xt/author/pp-16-normalize.t
deleted file mode 100644
index abf6ea4..0000000
--- a/xt/author/pp-16-normalize.t
+++ /dev/null
@@ -1,76 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Params::Validate qw(validate validate_with);
-use Test::More;
-
-my $ucfirst_normalizer = sub { return ucfirst lc $_[0] };
-
-sub sub1 {
-    my %args = validate_with(
-        params         => \@_,
-        spec           => { PaRaMkEy => 1 },
-        normalize_keys => $ucfirst_normalizer
-    );
-
-    return $args{Paramkey};
-}
-
-sub sub2 {
-
-    # verify that normalize_callback surpresses ignore_case
-    my %args = validate_with(
-        params         => \@_,
-        spec           => { PaRaMkEy => 1 },
-        normalize_keys => $ucfirst_normalizer,
-        ignore_case    => 1
-    );
-
-    return $args{Paramkey};
-}
-
-sub sub3 {
-
-    # verify that normalize_callback surpresses strip_leading
-    my %args = validate_with(
-        params         => \@_,
-        spec           => { -PaRaMkEy => 1 },
-        normalize_keys => $ucfirst_normalizer,
-        strip_leading  => '-'
-    );
-
-    return $args{-paramkey};
-}
-
-sub sub4 {
-    my %args = validate_with(
-        params         => \@_,
-        spec           => { foo => 1 },
-        normalize_keys => sub {undef}
-    );
-}
-
-sub sub5 {
-    my %args = validate_with(
-        params         => \@_,
-        spec           => { foo => 1 },
-        normalize_keys => sub { return 'a' },
-    );
-}
-
-ok( eval { sub1( pArAmKeY => 1 ) } );
-ok( eval { sub2( pArAmKeY => 1 ) } );
-ok( eval { sub3( -pArAmKeY => 1 ) } );
-
-eval { sub4( foo => 5 ) };
-like( $@, qr/normalize_keys.+a defined value/ );
-
-eval { sub5( foo => 5, bar => 5 ) };
-like( $@, qr/normalize_keys.+already exists/ );
-
-done_testing();
-
diff --git a/xt/author/pp-17-callbacks.t b/xt/author/pp-17-callbacks.t
deleted file mode 100644
index a45c131..0000000
--- a/xt/author/pp-17-callbacks.t
+++ /dev/null
@@ -1,83 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Params::Validate qw(validate validate_pos SCALAR);
-use Test::More;
-
-{
-    my @p = ( foo => 1, bar => 2 );
-
-    eval {
-        validate(
-            @p, {
-                foo => {
-                    type      => SCALAR,
-                    callbacks => {
-                        'bigger than bar' => sub { $_[0] > $_[1]->{bar} }
-                    },
-                },
-                bar => { type => SCALAR },
-            }
-        );
-    };
-
-    like( $@, qr/bigger than bar/ );
-
-    $p[1] = 3;
-    eval {
-        validate(
-            @p, {
-                foo => {
-                    type      => SCALAR,
-                    callbacks => {
-                        'bigger than bar' => sub { $_[0] > $_[1]->{bar} }
-                    },
-                },
-                bar => { type => SCALAR },
-            }
-        );
-    };
-
-    is( $@, q{} );
-}
-
-{
-    my @p = ( 1, 2, 3 );
-    eval {
-        validate_pos(
-            @p, {
-                type      => SCALAR,
-                callbacks => {
-                    'bigger than [1]' => sub { $_[0] > $_[1]->[1] }
-                }
-            },
-            { type => SCALAR },
-            { type => SCALAR },
-        );
-    };
-
-    like( $@, qr/bigger than \[1\]/ );
-
-    $p[0] = 5;
-    eval {
-        validate_pos(
-            @p, {
-                type      => SCALAR,
-                callbacks => {
-                    'bigger than [1]' => sub { $_[0] > $_[1]->[1] }
-                }
-            },
-            { type => SCALAR },
-            { type => SCALAR },
-        );
-    };
-
-    is( $@, q{} );
-}
-
-done_testing();
-
diff --git a/xt/author/pp-18-depends.t b/xt/author/pp-18-depends.t
deleted file mode 100644
index 33bab90..0000000
--- a/xt/author/pp-18-depends.t
+++ /dev/null
@@ -1,173 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Params::Validate qw(validate validate_pos);
-use Test::More;
-
-{
-    my %spec = (
-        foo => { optional => 1, depends => 'bar' },
-        bar => { optional => 1 },
-    );
-
-    my @args = ( bar => 1 );
-
-    eval { validate( @args, \%spec ) };
-
-    is( $@, q{}, "validate() single depends(1): no depends, positive" );
-
-    @args = ( foo => 1, bar => 1 );
-    eval { validate( @args, \%spec ) };
-
-    is( $@, q{}, "validate() single depends(2): with depends, positive" );
-
-    @args = ( foo => 1 );
-    eval { validate( @args, \%spec ) };
-
-    ok( $@, "validate() single depends(3.a): with depends, negative" );
-    like(
-        $@,
-        qr(^Parameter 'foo' depends on parameter 'bar', which was not given),
-        "validate() single depends(3.b): check error string"
-    );
-}
-
-{
-    my %spec = (
-        foo => { optional => 1, depends => [qw(bar baz)] },
-        bar => { optional => 1 },
-        baz => { optional => 1 },
-    );
-
-    # positive, no depends (single, multiple)
-    my @args = ( bar => 1 );
-    eval { validate( @args, \%spec ) };
-    is(
-        $@, q{},
-        "validate() multiple depends(1): no depends, single arg, positive"
-    );
-
-    @args = ( bar => 1, baz => 1 );
-    eval { validate( @args, \%spec ) };
-
-    is(
-        $@, q{},
-        "validate() multiple depends(2): no depends, multiple arg, positive"
-    );
-
-    @args = ( foo => 1, bar => 1, baz => 1 );
-    eval { validate( @args, \%spec ) };
-
-    is( $@, q{}, "validate() multiple depends(3): with depends, positive" );
-
-    @args = ( foo => 1, bar => 1 );
-    eval { validate( @args, \%spec ) };
-
-    ok(
-        $@,
-        "validate() multiple depends(4.a): with depends, negative, multiple missing"
-    );
-    like(
-        $@,
-        qr(^Parameter 'foo' depends on parameter 'baz', which was not given),
-        "validate() multiple depends (4.b): check error string"
-    );
-
-    @args = ( foo => 1 );
-    eval { validate( @args, \%spec ) };
-
-    ok(
-        $@,
-        "validate() multiple depends(5.a): with depends, negative, multiple missing"
-    );
-    like(
-        $@,
-        qr(^Parameter 'foo' depends on parameter '(bar|baz)', which was not given),
-        "validate() multiple depends (5.b): check error string"
-    );
-}
-
-{
-
-    # bad depends
-    my %spec = (
-        foo => { optional => 1, depends => { 'bar' => 1 } },
-        bar => { optional => 1 },
-    );
-
-    my @args = ( foo => 1 );
-    eval { validate( @args, \%spec ) };
-
-    ok( $@, "validate() bad depends spec (1.a): depends is a hashref" );
-    like(
-        $@,
-        qr(^Arguments to 'depends' must be a scalar or arrayref),
-        "validate() bad depends spec (1.a): check error string"
-    );
-}
-
-{
-    my @spec = ( { optional => 1 } );
-
-    my @args = qw(1);
-    eval { validate_pos( @args, @spec ) };
-
-    is( $@, q{}, "validate_pos() no depends, positive" );
-}
-
-{
-    my @spec = ( { optional => 1, depends => 2 }, { optional => 1 } );
-
-    my @args = qw(1 1);
-    eval { validate_pos( @args, @spec ) };
-
-    is(
-        $@, q{},
-        "validate_pos() single depends (1): with depends, positive"
-    );
-}
-
-{
-    my @spec = (
-        { optional => 1,   depends    => 4 },
-        { optional => 1 }, { optional => 1 },
-        { optional => 1 }
-    );
-
-    my @args = qw(1 0);
-    eval { validate_pos( @args, @spec ) };
-
-    ok( $@, "validate_pos() single depends (2.a): with depends, negative" );
-    like(
-        $@,
-        qr(^Parameter #1 depends on parameter #4, which was not given),
-        "validate_pos() single depends (2.b): check error"
-    );
-}
-
-{
-    my @spec = (
-        { optional => 1, depends => [ 2, 3 ] },
-        { optional => 1 },
-        0
-    );
-    my @args = qw(1);
-    eval { validate_pos( @args, @spec ) };
-
-    ok(
-        $@,
-        "validate_pos() multiple depends (1.a): with depends, bad args negative"
-    );
-    like(
-        $@,
-        qr{^Arguments to 'depends' for validate_pos\(\) must be a scalar},
-        "validate_pos() multiple depends (1.b): check error"
-    );
-}
-
-done_testing();
-
diff --git a/xt/author/pp-19-untaint.t b/xt/author/pp-19-untaint.t
deleted file mode 100644
index c19fa42..0000000
--- a/xt/author/pp-19-untaint.t
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/usr/bin/perl -T
-
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-
-use strict;
-use warnings;
-
-use Test::Requires {
-    'Test::Taint' => 0.02,
-};
-
-use Params::Validate qw(validate validate_pos);
-use Test::More;
-
-taint_checking_ok('These tests are meaningless unless we are in taint mode.');
-
-{
-    my $value = 7;
-    taint($value);
-
-    tainted_ok( $value, 'make sure $value is tainted' );
-
-    my @p = ( value => $value );
-    my %p = validate(
-        @p, {
-            value => {
-                regex   => qr/^\d+$/,
-                untaint => 1,
-            },
-        },
-    );
-
-    untainted_ok( $p{value}, 'value is untainted after validation' );
-}
-
-{
-    my $value = 'foo';
-
-    taint($value);
-
-    tainted_ok( $value, 'make sure $value is tainted' );
-
-    my @p = ($value);
-    my ($new_value) = validate_pos(
-        @p, {
-            regex   => qr/foo/,
-            untaint => 1,
-        },
-    );
-
-    untainted_ok( $new_value, 'value is untainted after validation' );
-}
-
-{
-    my $value = 7;
-    taint($value);
-
-    tainted_ok( $value, 'make sure $value is tainted' );
-
-    my @p = ( value => $value );
-    my %p = validate(
-        @p, {
-            value => {
-                regex => qr/^\d+$/,
-            },
-        },
-    );
-
-    tainted_ok( $p{value}, 'value is still tainted after validation' );
-}
-
-{
-    my $value = 'foo';
-
-    taint($value);
-
-    tainted_ok( $value, 'make sure $value is tainted' );
-
-    my @p = ($value);
-    my ($new_value) = validate_pos(
-        @p, {
-            regex => qr/foo/,
-        },
-    );
-
-    tainted_ok( $new_value, 'value is still tainted after validation' );
-}
-
-done_testing();
-
diff --git a/xt/author/pp-21-can.t b/xt/author/pp-21-can.t
deleted file mode 100644
index acfb82c..0000000
--- a/xt/author/pp-21-can.t
+++ /dev/null
@@ -1,100 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Params::Validate qw(validate);
-use Test::More;
-
-{
-    my @p = ( foo => 'ClassCan' );
-
-    eval { validate( @p, { foo => { can => 'cancan' } }, ); };
-
-    is( $@, q{} );
-
-    eval { validate( @p, { foo => { can => 'thingy' } }, ); };
-
-    like( $@, qr/does not have the method: 'thingy'/ );
-}
-
-{
-    my @p = ( foo => undef );
-    eval { validate( @p, { foo => { can => 'baz' } }, ); };
-
-    like( $@, qr/does not have the method: 'baz'/ );
-}
-
-{
-    my $object = bless {}, 'ClassCan';
-    my @p = ( foo => $object );
-
-    eval { validate( @p, { foo => { can => 'cancan' } }, ); };
-
-    is( $@, q{} );
-
-    eval { validate( @p, { foo => { can => 'thingy' } }, ); };
-
-    like( $@, qr/does not have the method: 'thingy'/ );
-}
-
-{
-    my @p = ( foo => 'SubClass' );
-
-    eval { validate( @p, { foo => { can => 'cancan' } }, ); };
-
-    is( $@, q{}, 'SubClass->can(cancan)' );
-
-    eval { validate( @p, { foo => { can => 'thingy' } }, ); };
-
-    like( $@, qr/does not have the method: 'thingy'/ );
-}
-
-{
-    my $object = bless {}, 'SubClass';
-    my @p = ( foo => $object );
-
-    eval { validate( @p, { foo => { can => 'cancan' } }, ); };
-
-    is( $@, q{}, 'SubClass object->can(cancan)' );
-
-    eval { validate( @p, { foo => { can => 'thingy' } }, ); };
-
-    like( $@, qr/does not have the method: 'thingy'/ );
-}
-
-{
-    my @p = ( foo => {} );
-    eval { validate( @p, { foo => { can => 'thingy' } }, ); };
-    like( $@, qr/does not have the method: 'thingy'/, 'unblessed ref ->can' );
-
-    @p = ( foo => 27 );
-    eval { validate( @p, { foo => { can => 'thingy' } }, ); };
-    like( $@, qr/does not have the method: 'thingy'/, 'number can' );
-
-    @p = ( foo => 'A String' );
-    eval { validate( @p, { foo => { can => 'thingy' } }, ); };
-    like( $@, qr/does not have the method: 'thingy'/, 'string can' );
-
-    @p = ( foo => undef );
-    eval { validate( @p, { foo => { can => 'thingy' } }, ); };
-    like( $@, qr/does not have the method: 'thingy'/, 'undef can' );
-}
-
-done_testing();
-
-package ClassCan;
-
-sub can {
-    return 1 if $_[1] eq 'cancan';
-    return 0;
-}
-
-sub thingy {1}
-
-package SubClass;
-
-use base 'ClassCan';
-
diff --git a/xt/author/pp-22-overload-can-bug.t b/xt/author/pp-22-overload-can-bug.t
deleted file mode 100644
index 8bc0838..0000000
--- a/xt/author/pp-22-overload-can-bug.t
+++ /dev/null
@@ -1,42 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Params::Validate qw(validate);
-use Test::More;
-
-{
-    package Overloaded;
-
-    use overload 'bool' => sub {0};
-
-    sub new { bless {} }
-
-    sub foo {1}
-}
-
-my $ovl = Overloaded->new;
-
-{
-    eval {
-        my @p = ( object => $ovl );
-        validate( @p, { object => { isa => 'Overloaded' } } );
-    };
-
-    is( $@, q{}, 'overloaded object->isa' );
-}
-
-{
-    eval {
-        my @p = ( object => $ovl );
-        validate( @p, { object => { can => 'foo' } } );
-    };
-
-    is( $@, q{}, 'overloaded object->foo' );
-}
-
-done_testing();
-
diff --git a/xt/author/pp-23-readonly.t b/xt/author/pp-23-readonly.t
deleted file mode 100644
index 91913f6..0000000
--- a/xt/author/pp-23-readonly.t
+++ /dev/null
@@ -1,44 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Test::Requires {
-    Readonly       => '1.03',
-    'Scalar::Util' => '1.20',
-};
-
-use Params::Validate qw(validate validate_pos SCALAR);
-use Test::More;
-
-plan skip_all => 'These tests fail with Readonly 1.50 for some reason'
-    if Readonly::->VERSION() =~ /^v?1.5/;
-
-{
-    Readonly my $spec => { foo => 1 };
-    my @p = ( foo => 'hello' );
-
-    eval { validate( @p, $spec ) };
-    is( $@, q{}, 'validate() call succeeded with Readonly spec hashref' );
-}
-
-{
-    Readonly my $spec => { type => SCALAR };
-    my @p = 'hello';
-
-    eval { validate_pos( @p, $spec ) };
-    is( $@, q{}, 'validate_pos() call succeeded with Readonly spec hashref' );
-}
-
-{
-    Readonly my %spec => ( foo => { type => SCALAR } );
-    my @p = ( foo => 'hello' );
-
-    eval { validate( @p, \%spec ) };
-    is( $@, q{}, 'validate() call succeeded with Readonly spec hash' );
-}
-
-done_testing();
-
diff --git a/xt/author/pp-24-tied.t b/xt/author/pp-24-tied.t
deleted file mode 100644
index 8495a9e..0000000
--- a/xt/author/pp-24-tied.t
+++ /dev/null
@@ -1,126 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Params::Validate qw(validate validate_pos SCALAR);
-use Test::More;
-
-{
-    package Tie::SimpleArray;
-    use Tie::Array;
-    use base 'Tie::StdArray';
-}
-
-{
-
-    package Tie::SimpleHash;
-    use Tie::Hash;
-    use base 'Tie::StdHash';
-}
-
-{
-    tie my @p, 'Tie::SimpleArray';
-
-    my %spec = ( foo => 1 );
-    push @p, ( foo => 'hello' );
-
-    eval { validate( @p, \%spec ) };
-    warn $@ if $@;
-    is(
-        $@, q{},
-        'validate() call succeeded with tied params array and regular hashref spec'
-    );
-}
-
-SKIP:
-{
-    skip 'Params::Validate segfaults with tied hash for spec', 1;
-
-    my @p;
-    tie my %spec, 'Tie::SimpleHash';
-
-    $spec{foo} = 1;
-    push @p, ( foo => 'hello' );
-
-    eval { validate( @p, \%spec ) };
-    warn $@ if $@;
-    is(
-        $@, q{},
-        'validate() call succeeded with regular params array and tied hashref spec'
-    );
-}
-
-SKIP:
-{
-    skip 'Params::Validate segfaults with tied hash for spec', 1;
-
-    tie my @p,    'Tie::SimpleArray';
-    tie my %spec, 'Tie::SimpleHash';
-
-    $spec{foo} = 1;
-    push @p, ( foo => 'hello' );
-
-    eval { validate( @p, \%spec ) };
-    warn $@ if $@;
-    is(
-        $@, q{},
-        'validate() call succeeded with tied params array and tied hashref spec'
-    );
-}
-
-{
-    tie my @p, 'Tie::SimpleArray';
-    my %spec;
-
-    $spec{type} = SCALAR;
-    push @p, 'hello';
-
-    eval { validate_pos( @p, \%spec ) };
-    warn $@ if $@;
-    is(
-        $@, q{},
-        'validate_pos() call succeeded with tied params array and regular hashref spec'
-    );
-}
-
-SKIP:
-{
-    skip 'Params::Validate segfaults with tied hash for spec', 1;
-
-    my @p;
-    tie my %spec, 'Tie::SimpleHash';
-
-    $spec{type} = SCALAR;
-    push @p, 'hello';
-
-    eval { validate_pos( @p, \%spec ) };
-    warn $@ if $@;
-    is(
-        $@, q{},
-        'validate_pos() call succeeded with regular params array and tied hashref spec'
-    );
-}
-
-SKIP:
-{
-    skip 'Params::Validate segfaults with tied hash for spec', 1;
-
-    tie my @p,    'Tie::SimpleArray';
-    tie my %spec, 'Tie::SimpleHash';
-
-    $spec{type} = SCALAR;
-    push @p, 'hello';
-
-    eval { validate_pos( @p, \%spec ) };
-    warn $@ if $@;
-    is(
-        $@, q{},
-        'validate_pos() call succeeded with tied params array and tied hashref spec'
-    );
-}
-
-done_testing();
-
diff --git a/xt/author/pp-25-undef-regex.t b/xt/author/pp-25-undef-regex.t
deleted file mode 100644
index 7069e32..0000000
--- a/xt/author/pp-25-undef-regex.t
+++ /dev/null
@@ -1,22 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Params::Validate qw(validate);
-use Test::More;
-
-{
-    my @w;
-    local $SIG{__WARN__} = sub { push @w, @_ };
-
-    my @p = ( foo => undef );
-    eval { validate( @p, { foo => { regex => qr/^bar/ } } ) };
-    ok( $@,  'validation failed' );
-    ok( !@w, 'no warnings' );
-}
-
-done_testing();
-
diff --git a/xt/author/pp-26-isa.t b/xt/author/pp-26-isa.t
deleted file mode 100644
index 4405aa2..0000000
--- a/xt/author/pp-26-isa.t
+++ /dev/null
@@ -1,94 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Params::Validate qw(validate);
-use Test::More;
-
-{
-    my @p = ( foo => 'ClassISA' );
-
-    eval { validate( @p, { foo => { isa => 'FooBar' } }, ); };
-
-    is( $@, q{}, 'no error checking if ClassISA->isa(FooBar)' );
-
-    eval { validate( @p, { foo => { isa => 'Thingy' } }, ); };
-
-    like( $@, qr/was not a 'Thingy'/ );
-}
-
-{
-    my @p = ( foo => undef );
-    eval { validate( @p, { foo => { isa => 'FooBar' } }, ); };
-
-    like( $@, qr/was not a 'FooBar'/ );
-}
-
-{
-    my @p = ( foo => 'SubClass' );
-
-    eval { validate( @p, { foo => { isa => 'ClassISA' } }, ); };
-
-    is( $@, q{}, 'SubClass->isa(ClassISA)' );
-
-    eval { validate( @p, { foo => { isa => 'FooBar' } }, ); };
-
-    is( $@, q{}, 'SubClass->isa(FooBar)' );
-
-    eval { validate( @p, { foo => { isa => 'Thingy' } }, ); };
-
-    like( $@, qr/was not a 'Thingy'/ );
-}
-
-{
-    my @p = ( foo => bless {}, 'SubClass' );
-
-    eval { validate( @p, { foo => { isa => 'ClassISA' } }, ); };
-
-    is( $@, q{}, 'SubClass->isa(ClassISA)' );
-
-    eval { validate( @p, { foo => { isa => 'FooBar' } }, ); };
-
-    is( $@, q{}, 'SubClass->isa(FooBar)' );
-
-    eval { validate( @p, { foo => { isa => 'Thingy' } }, ); };
-
-    like( $@, qr/was not a 'Thingy'/ );
-}
-
-{
-    my @p = ( foo => {} );
-    eval { validate( @p, { foo => { isa => 'Thingy' } }, ); };
-    like( $@, qr/was not a 'Thingy'/, 'unblessed ref ->isa' );
-
-    @p = ( foo => 27 );
-    eval { validate( @p, { foo => { isa => 'Thingy' } }, ); };
-    like( $@, qr/was not a 'Thingy'/, 'number isa' );
-
-    @p = ( foo => 'A String' );
-    eval { validate( @p, { foo => { isa => 'Thingy' } }, ); };
-    like( $@, qr/was not a 'Thingy'/, 'string isa' );
-
-    @p = ( foo => undef );
-    eval { validate( @p, { foo => { isa => 'Thingy' } }, ); };
-    like( $@, qr/was not a 'Thingy'/, 'undef isa' );
-}
-
-done_testing();
-
-package ClassISA;
-
-sub isa {
-    return 1 if $_[1] eq 'FooBar';
-    return $_[0]->SUPER::isa( $_[1] );
-}
-
-sub thingy {1}
-
-package SubClass;
-
-use base 'ClassISA';
-
diff --git a/xt/author/pp-27-string-as-type.t b/xt/author/pp-27-string-as-type.t
deleted file mode 100644
index fda5748..0000000
--- a/xt/author/pp-27-string-as-type.t
+++ /dev/null
@@ -1,35 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Params::Validate qw(validate);
-use Test::More;
-
-{
-    my @p = ( foo => 1 );
-
-    eval { validate( @p, { foo => { type => 'SCALAR' } }, ); };
-
-    like(
-        $@,
-        qr/\QThe 'foo' parameter ("1") has a type specification which is not a number. It is a string - SCALAR/
-    );
-}
-
-{
-    my @p = ( foo => 1 );
-
-    eval { validate( @p, { foo => { type => undef } }, ); };
-
-    like(
-        $@,
-        qr/\QThe 'foo' parameter ("1") has a type specification which is not a number. It is undef/
-    );
-
-}
-
-done_testing();
-
diff --git a/xt/author/pp-28-readonly-return.t b/xt/author/pp-28-readonly-return.t
deleted file mode 100644
index 392665d..0000000
--- a/xt/author/pp-28-readonly-return.t
+++ /dev/null
@@ -1,98 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-use Test::More;
-
-use Devel::Peek qw( SvREFCNT );
-use File::Temp qw( tempfile );
-use Params::Validate qw( validate SCALAR HANDLE );
-
-{
-    my $fh = tempfile();
-    my @p  = (
-        foo => 1,
-        bar => $fh,
-    );
-
-    my $ref = val1(@p);
-
-    eval { $ref->{foo} = 2 };
-    ok( !$@, 'returned hashref values are not read only' );
-    is( $ref->{foo}, 2, 'double check that setting value worked' );
-    is( $fh, $ref->{bar}, 'filehandle is not copied during validation' );
-}
-
-{
-
-    package ScopeTest;
-
-    my $live = 0;
-
-    sub new { $live++; bless {}, shift }
-    sub DESTROY { $live-- }
-
-    sub Live {$live}
-}
-
-{
-    my @p = ( foo => ScopeTest->new() );
-
-    is(
-        ScopeTest->Live(), 1,
-        'one live object'
-    );
-
-    my $ref = val2(@p);
-
-    isa_ok( $ref->{foo}, 'ScopeTest' );
-
-    @p = ();
-
-    is(
-        ScopeTest->Live(), 1,
-        'still one live object'
-    );
-
-    ok(
-        defined $ref->{foo},
-        'foo key stays in scope after original version goes out of scope'
-    );
-    is(
-        SvREFCNT( $ref->{foo} ), 1,
-        'ref count for reference is 1'
-    );
-
-    undef $ref->{foo};
-
-    is(
-        ScopeTest->Live(), 0,
-        'no live objects'
-    );
-}
-
-sub val1 {
-    my $ref = validate(
-        @_, {
-            foo => { type => SCALAR },
-            bar => { type => HANDLE, optional => 1 },
-        },
-    );
-
-    return $ref;
-}
-
-sub val2 {
-    my $ref = validate(
-        @_, {
-            foo => 1,
-        },
-    );
-
-    return $ref;
-}
-
-done_testing();
-
diff --git a/xt/author/pp-29-taint-mode.t b/xt/author/pp-29-taint-mode.t
deleted file mode 100644
index a1afe5f..0000000
--- a/xt/author/pp-29-taint-mode.t
+++ /dev/null
@@ -1,59 +0,0 @@
-#!perl -T
-
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-
-use strict;
-use warnings;
-
-use Test::Requires {
-    'Test::Taint' => 0.02,
-};
-
-use Test::Fatal;
-use Test::More;
-
-use Params::Validate qw( validate validate_pos ARRAYREF );
-
-taint_checking_ok('These tests are meaningless unless we are in taint mode.');
-
-sub test1 {
-    my $def = $0;
-    tainted_ok( $def, 'make sure $def is tainted' );
-
-    # The spec is irrelevant, all that matters is that there's a
-    # tainted scalar as the default
-    my %p = validate( @_, { foo => { default => $def } } );
-}
-
-{
-    is(
-        exception { test1() },
-        undef,
-        'no taint error when we validate with tainted default value'
-    );
-}
-
-sub test2 {
-    return validate_pos( @_, { regex => qr/^b/ } );
-}
-
-SKIP:
-{
-    skip 'This test only passes on Perl 5.14+', 1
-        unless $] >= 5.014;
-
-    my @p = 'cat';
-    taint(@p);
-
-    like(
-        exception { test2(@p) },
-        qr/\QParameter #1 ("cat") to main::test2 did not pass regex check/,
-        'no taint error when we validate with tainted value values being validated'
-    );
-}
-
-done_testing();
-
diff --git a/xt/author/pp-30-hashref-alteration.t b/xt/author/pp-30-hashref-alteration.t
deleted file mode 100644
index 7b6f2b8..0000000
--- a/xt/author/pp-30-hashref-alteration.t
+++ /dev/null
@@ -1,56 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-use Test::More;
-
-use Params::Validate qw( validate SCALAR );
-
-{
-    my $p = { foo => 1 };
-
-    val($p);
-
-    is_deeply(
-        $p, { foo => 1 },
-        'validate does not alter hashref passed to val'
-    );
-
-    val2($p);
-
-    is_deeply(
-        $p, { foo => 1 },
-        'validate does not alter hashref passed to val, even with defaults being supplied'
-    );
-}
-
-sub val {
-    validate(
-        @_, {
-            foo => { optional => 1 },
-            bar => { optional => 1 },
-            baz => { optional => 1 },
-            buz => { optional => 1 },
-        },
-    );
-
-    return;
-}
-
-sub val2 {
-    validate(
-        @_, {
-            foo => { optional => 1 },
-            bar => { default  => 42 },
-            baz => { optional => 1 },
-            buz => { optional => 1 },
-        },
-    );
-
-    return;
-}
-
-done_testing();
-
diff --git a/xt/author/pp-31-incorrect-spelling.t b/xt/author/pp-31-incorrect-spelling.t
deleted file mode 100644
index 4297fe3..0000000
--- a/xt/author/pp-31-incorrect-spelling.t
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-
-use strict;
-use warnings;
-
-use Test::More;
-
-use Params::Validate qw( validate validate_pos SCALAR );
-
-plan skip_all => 'Spec validation is disabled for now';
-
-{
-    my @p = ( foo => 1, bar => 2 );
-
-    eval {
-        validate(
-            @p, {
-                foo => {
-                    type      => SCALAR,
-                    callbucks => {
-                        'one' => sub {1}
-                    },
-                },
-                bar => { type => SCALAR },
-            }
-        );
-    };
-
-    like( $@, qr/is not an allowed validation spec key/ );
-
-    eval {
-        validate(
-            @p, {
-                foo => {
-                    hype      => SCALAR,
-                    callbacks => {
-                        'one' => sub {1}
-                    },
-                },
-                bar => { type => SCALAR },
-            }
-        );
-    };
-
-    like( $@, qr/is not an allowed validation spec key/ );
-    eval {
-        validate(
-            @p, {
-                foo => {
-                    type   => SCALAR,
-                    regexp => qr/^\d+$/,
-                },
-                bar => { type => SCALAR },
-            }
-        );
-    };
-
-    like( $@, qr/is not an allowed validation spec key/ );
-}
-
-done_testing();
-
diff --git a/xt/author/pp-32-regex-as-value.t b/xt/author/pp-32-regex-as-value.t
deleted file mode 100644
index f0373da..0000000
--- a/xt/author/pp-32-regex-as-value.t
+++ /dev/null
@@ -1,42 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Params::Validate qw( validate SCALAR SCALARREF );
-
-use Test::More;
-use Test::Fatal;
-
-is(
-    exception { v( foo => qr/foo/ ) },
-    undef,
-    'no exception with regex object'
-);
-
-is(
-    exception { v( foo => 'foo' ) },
-    undef,
-    'no exception with plain scalar'
-);
-
-my $foo = 'foo';
-is(
-    exception { v( foo => \$foo ) },
-    undef,
-    'no exception with scalar ref'
-);
-
-done_testing();
-
-sub v {
-    validate(
-        @_, {
-            foo => { type => SCALAR | SCALARREF },
-        },
-    );
-    return;
-}
-
diff --git a/xt/author/pp-33-keep-errsv.t b/xt/author/pp-33-keep-errsv.t
deleted file mode 100644
index ceba4e6..0000000
--- a/xt/author/pp-33-keep-errsv.t
+++ /dev/null
@@ -1,28 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Params::Validate qw( validate SCALAR );
-
-use Test::More;
-
-{
-    $@ = 'foo';
-    v( bar => 42 );
-
-    is(
-        $@,
-        'foo',
-        'calling validate() does not clobber'
-    );
-}
-
-done_testing();
-
-sub v {
-    validate( @_, { bar => { type => SCALAR } } );
-}
-
diff --git a/xt/author/pp-34-recursive-validation.t b/xt/author/pp-34-recursive-validation.t
deleted file mode 100644
index f16d5f0..0000000
--- a/xt/author/pp-34-recursive-validation.t
+++ /dev/null
@@ -1,59 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Test::Fatal;
-use Test::More;
-
-{
-    package Foo;
-
-    use Params::Validate qw( validate SCALAR );
-
-    Params::Validate::validation_options( allow_extra => 1 );
-
-    sub test_foo {
-        my %p = validate( @_, { arg1 => { type => SCALAR } } );
-        print "test foo\n";
-    }
-}
-
-{
-    package Bar;
-
-    use Params::Validate qw( validate SCALAR );
-    Params::Validate::validation_options( allow_extra => 0 );
-
-    sub test_bar {
-
-        # catch die signal
-        local $SIG{__DIE__} = sub {
-
-            # we died from within Params::Validate (because of wrong_Arg) we
-            # call Foo::test_foo with OK args, but it'll die, because
-            # Params::Validate::PP::options is still set to the options of the
-            # Bar package, and so it won't retreive the one from Foo.
-            Foo::test_foo( arg1 => 1, extra_arg => 2 );
-        };
-
-        # this will die because the arg received is 'wrong_arg'
-        my %p = validate( @_, { arg1 => { type => SCALAR } } );
-    }
-}
-
-{
-    # This bug only manifests with the pure Perl code because of its use of local
-    # to remember the per-package options.
-    local $TODO = 'Not sure how to fix this one';
-    unlike(
-        exception { Bar::test_bar( bad_arg => 2 ) },
-        qr/was passed in the call to Foo::test_foo/,
-        'no exception from Foo::test_foo when when calling validate() from within a __DIE__ handler'
-    );
-}
-
-done_testing();
-
diff --git a/xt/author/pp-35-default-xs-bug.t b/xt/author/pp-35-default-xs-bug.t
deleted file mode 100644
index 73b6ed5..0000000
--- a/xt/author/pp-35-default-xs-bug.t
+++ /dev/null
@@ -1,27 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Test::More 0.88;
-
-use Params::Validate qw( :all );
-
-default_test();
-
-done_testing();
-
-sub default_test {
-    my ( $first, $second ) = validate_pos(
-        @_,
-        { type => SCALAR, optional => 1 },
-        { type => SCALAR, optional => 1, default => 'must be second one' },
-    );
-
-    is( $first, undef, 'no default for first parameter' );
-    is( $second, 'must be second one',
-        'default for second parameter is applied' );
-}
-
diff --git a/xt/author/pp-36-large-arrays.t b/xt/author/pp-36-large-arrays.t
deleted file mode 100644
index 007077a..0000000
--- a/xt/author/pp-36-large-arrays.t
+++ /dev/null
@@ -1,47 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Test::Fatal;
-use Test::More;
-
-{
-    package Foo;
-
-    use Params::Validate qw( validate ARRAYREF );
-
-    sub v1 {
-        my %p = validate(
-            @_, {
-                array => {
-                    callbacks => {
-                        'checking array contents' => sub {
-                            for my $x ( @{ $_[0] } ) {
-                                return 0 unless defined $x && !ref $x;
-                            }
-                            return 1;
-                        },
-                    }
-                }
-            }
-        );
-        return $p{array};
-    }
-}
-
-{
-    for my $size ( 100, 1_000, 100_000 ) {
-        my @array = ('x') x $size;
-        is_deeply(
-            Foo::v1( array => \@array ),
-            \@array,
-            "validate() handles $size element array correctly"
-        );
-    }
-}
-
-done_testing();
-
diff --git a/xt/author/pp-37-exports.t b/xt/author/pp-37-exports.t
deleted file mode 100644
index 55163f2..0000000
--- a/xt/author/pp-37-exports.t
+++ /dev/null
@@ -1,57 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Test::More;
-use Params::Validate ();
-
-my @types = qw(
-    SCALAR
-    ARRAYREF
-    HASHREF
-    CODEREF
-    GLOB
-    GLOBREF
-    SCALARREF
-    HANDLE
-    BOOLEAN
-    UNDEF
-    OBJECT
-);
-
-my @subs = qw(
-    validate
-    validate_pos
-    validation_options
-    validate_with
-);
-
-is_deeply(
-    [ sort @Params::Validate::EXPORT_OK ],
-    [ sort @types, @subs, 'set_options' ],
-    '@EXPORT_OK'
-);
-
-is_deeply(
-    [ sort keys %Params::Validate::EXPORT_TAGS ],
-    [qw( all types )],
-    'keys %EXPORT_TAGS'
-);
-
-is_deeply(
-    [ sort @{ $Params::Validate::EXPORT_TAGS{all} } ],
-    [ sort @types, @subs ],
-    '$EXPORT_TAGS{all}',
-);
-
-is_deeply(
-    [ sort @{ $Params::Validate::EXPORT_TAGS{types} } ],
-    [ sort @types ],
-    '$EXPORT_TAGS{types}',
-);
-
-done_testing();
-
diff --git a/xt/author/pp-38-callback-message.t b/xt/author/pp-38-callback-message.t
deleted file mode 100644
index 6fb5065..0000000
--- a/xt/author/pp-38-callback-message.t
+++ /dev/null
@@ -1,175 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Test::More;
-use Params::Validate qw( validate );
-
-{
-    my $e = _test_args(
-        pos_int => 42,
-        string  => 'foo',
-    );
-    is(
-        $e,
-        q{},
-        'no error with good args'
-    );
-}
-
-{
-    my $e = _test_args(
-        pos_int => 42,
-        string  => [],
-    );
-    like(
-        $e,
-        qr/The 'string' parameter \("ARRAY\(.+\)"\) to main::validate1 did not pass the 'string' callback: ARRAY\(.+\) is not a string/,
-        'got error for bad string'
-    );
-}
-
-{
-    my $e = _test_args(
-        pos_int => 0,
-        string  => 'foo',
-    );
-    like(
-        $e,
-        qr/\QThe 'pos_int' parameter ("0") to main::validate1 did not pass the 'pos_int' callback: 0 is not a positive integer/,
-        'got error for bad pos int (0)'
-    );
-}
-
-{
-    my $e = _test_args(
-        pos_int => 'bar',
-        string  => 'foo',
-    );
-    like(
-        $e,
-        qr/\QThe 'pos_int' parameter ("bar") to main::validate1 did not pass the 'pos_int' callback: bar is not a positive integer/,
-        'got error for bad pos int (bar)'
-    );
-}
-
-{
-    my $e = do {
-        local $@;
-        eval { validate2( string => [] ); };
-        $@;
-    };
-
-    is_deeply(
-        $e,
-        { error => 'not a string' },
-        'ref thrown by callback is preserved, not stringified'
-    );
-}
-
-{
-    my $e = do {
-        local $@;
-        eval { validate3( string => [] ); };
-        $@;
-    };
-
-    like(
-        $e,
-        qr/\QThe 'string' parameter (\E.+?\Q) to main::validate3 did not pass the 'string' callback: Died at \E.+/,
-        'callback that dies with an empty string generates a sane error message'
-    );
-}
-
-{
-    my $e = do {
-        local $@;
-        eval { validate4( string => [] ); };
-        $@;
-    };
-
-    like(
-        $e,
-        qr/\QThe 'string' parameter (\E.+?\Q) to main::validate4 did not pass the 'string' callback/,
-        'callback that does not dies generates a sane error message'
-    );
-}
-
-sub _test_args {
-    local $@;
-    eval { validate1(@_) };
-    return $@;
-}
-
-sub validate1 {
-    validate(
-        @_, {
-            pos_int => {
-                callbacks => {
-                    pos_int => sub {
-                        $_[0] =~ /^[1-9][0-9]*$/
-                            or die "$_[0] is not a positive integer\n";
-                    },
-                },
-            },
-            string => {
-                callbacks => {
-                    string => sub {
-                        ( defined $_[0] && !ref $_[0] && length $_[0] )
-                            or die "$_[0] is not a string\n";
-                    },
-                },
-            },
-        }
-    );
-}
-
-sub validate2 {
-    validate(
-        @_, {
-            string => {
-                callbacks => {
-                    string => sub {
-                        ( defined $_[0] && !ref $_[0] && length $_[0] )
-                            or die { error => 'not a string' };
-                    },
-                },
-            },
-        }
-    );
-}
-
-sub validate3 {
-    validate(
-        @_, {
-            string => {
-                callbacks => {
-                    string => sub {
-                        ( defined $_[0] && !ref $_[0] && length $_[0] )
-                            or die;
-                    },
-                },
-            },
-        }
-    );
-}
-
-sub validate4 {
-    validate(
-        @_, {
-            string => {
-                callbacks => {
-                    string => sub {
-                        return defined $_[0] && !ref $_[0] && length $_[0];
-                    },
-                },
-            },
-        }
-    );
-}
-
-done_testing();
-
diff --git a/xt/author/pp-39-reentrant.t b/xt/author/pp-39-reentrant.t
deleted file mode 100644
index d2d4181..0000000
--- a/xt/author/pp-39-reentrant.t
+++ /dev/null
@@ -1,54 +0,0 @@
-BEGIN {
-    $ENV{PV_TEST_PERL} = 1;
-}
-
-use strict;
-use warnings;
-
-use Params::Validate qw( validate SCALAR );
-use Test::More;
-
-for my $i ( 1 .. 1000 ) {
-    ok( bar(), 'bar()' );
-    is( foo( foo => $i ), $i, "reentrant validation works ($i)" );
-}
-
-done_testing();
-
-sub foo {
-    my %p = validate(
-        @_,
-        {
-            foo => {
-                callbacks => {
-                    'call bar' => sub { bar() }
-                },
-            },
-        },
-    );
-
-    return $p{foo};
-}
-
-sub bar {
-    my %p = baz( baz => 42 );
-
-    return $p{baz} == 42;
-}
-
-sub baz {
-    my %p = validate(
-        @_,
-        {
-            baz => {
-                type      => SCALAR,
-                callbacks => {
-                    'is num' => sub { $_[0] =~ /^\d+$/ },
-                },
-            },
-        },
-    );
-
-    return %p;
-}
-
diff --git a/xt/author/synopsis.t b/xt/author/synopsis.t
deleted file mode 100644
index 3e03427..0000000
--- a/xt/author/synopsis.t
+++ /dev/null
@@ -1,5 +0,0 @@
-#!perl
-
-use Test::Synopsis;
-
-all_synopsis_ok();
diff --git a/xt/release/cpan-changes.t b/xt/release/cpan-changes.t
deleted file mode 100644
index 286005a..0000000
--- a/xt/release/cpan-changes.t
+++ /dev/null
@@ -1,10 +0,0 @@
-use strict;
-use warnings;
-
-# this test was generated with Dist::Zilla::Plugin::Test::CPAN::Changes 0.012
-
-use Test::More 0.96 tests => 1;
-use Test::CPAN::Changes;
-subtest 'changes_ok' => sub {
-    changes_file_ok('Changes');
-};
diff --git a/xt/release/meta-json.t b/xt/release/meta-json.t
deleted file mode 100644
index 5ddad73..0000000
--- a/xt/release/meta-json.t
+++ /dev/null
@@ -1,4 +0,0 @@
-#!perl
-
-use Test::CPAN::Meta::JSON;
-meta_json_ok();