The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
CONTRIBUTING 500
CONTRIBUTING.mkdn 0100
Changes 06
LICENSE 44
MANIFEST 27
META.json 1537
META.yml 2326
Makefile.PL 2129
README 8183
cpanfile 037
dist.ini 45
lib/File/chdir.pm 115114
perlcritic.rc 07
t/00-compile.t 730
t/00-report-prereqs.dd 047
t/00-report-prereqs.t 0176
xt/author/00-compile.t 053
xt/author/pod-spell.t 59
xt/release/distmeta.t 32
xt/release/minimum-version.t 08
xt/release/pod-coverage.t 93
xt/release/pod-syntax.t 32
xt/release/portability.t 04
23 files changed (This is a version diff) 408759
@@ -1,50 +0,0 @@
-README.PATCHING
-
-Thank you for considering contributing to this distribution.  This file
-contains instructions that will help you work with the source code.
-
-The distribution is managed with Dist::Zilla.  This means than many of the
-usual files you might expect are not in the repository, but are generated
-at release time (e.g. Makefile.PL).
-
-However, you can run tests directly using the 'prove' tool:
-
-  $ prove -l
-  $ prove -lv t/some_test_file.t
-
-For most distributions, 'prove' is entirely sufficent for you to test any
-patches you have.
-
-You may need to satisfy some dependencies.  See the included META.json
-file for a list.  If you install App::mymeta_requires from CPAN, it's easy
-to satisfy any that you are missing by piping the output to your favorite
-CPAN client:
-
-  $ mymeta-requires | cpanm
-  $ cpan `mymeta-requires`
-
-Likewise, much of the documentation Pod is generated at release time.
-Depending on the distribution, some documentation may be written in a Pod
-dialect called WikiDoc. (See Pod::WikiDoc on CPAN.) If you would like to
-submit a documentation edit, please limit yourself to the documentation you
-see.
-
-If you see typos or documentation issues in the generated docs, please
-email or open a bug ticket instead of patching.
-
-Dist::Zilla is a very powerful authoring tool, but requires a number of
-author-specific plugins.  If you would like to use it for contributing,
-install it from CPAN, then run one of the following commands, depending on
-your CPAN client:
-
-  $ cpan `dzil authordeps`
-  $ dzil authordeps | cpanm
-
-Once installed, here are some dzil commands you might try:
-
-  $ dzil build
-  $ dzil test
-  $ dzil xtest
-
-You can learn more about Dist::Zilla at http://dzil.org/
-
@@ -0,0 +1,100 @@
+## HOW TO CONTRIBUTE
+
+Thank you for considering contributing to this distribution.  This file
+contains instructions that will help you work with the source code.
+
+The distribution is managed with Dist::Zilla.  This means than many of the
+usual files you might expect are not in the repository, but are generated at
+release time (e.g. Makefile.PL).
+
+Generally, **you do not need Dist::Zilla to contribute patches**.  You do need
+Dist::Zilla to create a tarball and/or install from the repository.  See below
+for guidance.
+
+### Getting dependencies
+
+See the included `cpanfile` file for a list of dependencies.  If you have
+App::cpanminus 1.6 or later installed, you can use `cpanm` to satisfy
+dependencies like this:
+
+    $ cpanm --installdeps .
+
+Otherwise, you can install Module::CPANfile 1.0002 or later and then satisfy
+dependencies with the regular `cpan` client and `cpanfile-dump`:
+
+    $ cpan `cpanfile-dump`
+
+### Running tests
+
+You can run tests directly using the `prove` tool:
+
+    $ prove -l
+    $ prove -lv t/some_test_file.t
+
+For most of my distributions, `prove` is entirely sufficient for you to test any
+patches you have. I use `prove` for 99% of my testing during development.
+
+### Code style and tidying
+
+Please try to match any existing coding style.  If there is a `.perltidyrc`
+file, please install Perl::Tidy and use perltidy before submitting patches.
+
+If there is a `tidyall.ini` file, you can also install Code::TidyAll and run
+`tidyall` on a file or `tidyall -a` to tidy all files.
+
+### Patching documentation
+
+Much of the documentation Pod is generated at release time.  Depending on the
+distribution, some of my documentation may be written in a Pod dialect called
+WikiDoc. (See Pod::WikiDoc on CPAN.)
+
+If you would like to submit a documentation edit, please limit yourself to the
+documentation you see.
+
+If you see typos or documentation issues in the generated docs, please
+email or open a bug ticket instead of patching.
+
+### Installing from the repository
+
+If you want to install directly from the repository, you need to have
+Dist::Zilla installed (see below).  If this is a burden to you, I welcome
+patches against a CPAN tarball instead of the repository.
+
+### Installing and using Dist::Zilla
+
+Dist::Zilla is a very powerful authoring tool, optimized for maintaining a
+large number of distributions with a high degree of automation, but it has a
+large dependency chain, a bit of a learning curve and requires a number of
+author-specific plugins.
+
+To install it from CPAN, I recommend one of the following approaches for
+the quickest installation:
+
+    # using CPAN.pm, but bypassing non-functional pod tests
+    $ cpan TAP::Harness::Restricted
+    $ PERL_MM_USE_DEFAULT=1 HARNESS_CLASS=TAP::Harness::Restricted cpan Dist::Zilla
+
+    # using cpanm, bypassing *all* tests
+    $ cpanm -n Dist::Zilla
+
+In either case, it's probably going to take about 10 minutes.  Go for a walk,
+go get a cup of your favorite beverage, take a bathroom break, or whatever.
+When you get back, Dist::Zilla should be ready for you.
+
+Then you need to install any plugins specific to this distribution:
+
+    $ cpan `dzil authordeps`
+    $ dzil authordeps | cpanm
+
+Once installed, here are some dzil commands you might try:
+
+    $ dzil build
+    $ dzil test
+    $ dzil xtest
+
+To install from the repository, use:
+
+    $ dzil install
+
+You can learn more about Dist::Zilla at http://dzil.org/
+
@@ -1,5 +1,11 @@
 Changes for File-chdir
 
+0.1009    2014-09-23 12:24:11-04:00 America/New_York
+
+    [Changed]
+
+    - Updated distribution metadata
+
 0.1008    2012-12-02 22:32:37 America/New_York
 
     - Fixed broken use of abs_path on Cygwin [Joel Berger]
@@ -1,4 +1,4 @@
-This software is copyright (c) 2012 by Michael G Schwern and David A Golden.
+This software is copyright (c) 2014 by Michael G. Schwern and David Golden.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@ b) the "Artistic License"
 
 --- The GNU General Public License, Version 1, February 1989 ---
 
-This software is Copyright (c) 2012 by Michael G Schwern and David A Golden.
+This software is Copyright (c) 2014 by Michael G. Schwern and David Golden.
 
 This is free software, licensed under:
 
@@ -22,7 +22,7 @@ This is free software, licensed under:
                      Version 1, February 1989
 
  Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA  02110-1335  USA
+ 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
@@ -272,7 +272,7 @@ That's all there is to it!
 
 --- The Artistic License 1.0 ---
 
-This software is Copyright (c) 2012 by Michael G Schwern and David A Golden.
+This software is Copyright (c) 2014 by Michael G. Schwern and David Golden.
 
 This is free software, licensed under:
 
@@ -1,4 +1,5 @@
-CONTRIBUTING
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.020.
+CONTRIBUTING.mkdn
 Changes
 LICENSE
 MANIFEST
@@ -6,11 +7,13 @@ META.json
 META.yml
 Makefile.PL
 README
+cpanfile
 dist.ini
 examples/chdir-example.pl
 lib/File/chdir.pm
 perlcritic.rc
-t/00-compile.t
+t/00-report-prereqs.dd
+t/00-report-prereqs.t
 t/array.t
 t/chdir.t
 t/delete-array.t
@@ -18,9 +21,11 @@ t/lib/dummy.txt
 t/nested.t
 t/newline.t
 t/var.t
+xt/author/00-compile.t
 xt/author/critic.t
 xt/author/pod-spell.t
 xt/release/distmeta.t
+xt/release/minimum-version.t
 xt/release/pod-coverage.t
 xt/release/pod-syntax.t
 xt/release/portability.t
@@ -1,11 +1,11 @@
 {
    "abstract" : "a more sensible way to change directories",
    "author" : [
-      "David A Golden <dagolden@cpan.org>",
-      "Michael G Schwern <schwern@pobox.com> (original author)"
+      "David Golden <dagolden@cpan.org>",
+      "Michael G. Schwern <schwern@pobox.com>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 4.300025, CPAN::Meta::Converter version 2.120921",
+   "generated_by" : "Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.140640",
    "license" : [
       "perl_5"
    ],
@@ -28,7 +28,23 @@
    "prereqs" : {
       "configure" : {
          "requires" : {
-            "ExtUtils::MakeMaker" : "6.30"
+            "ExtUtils::MakeMaker" : "6.17"
+         }
+      },
+      "develop" : {
+         "requires" : {
+            "Dist::Zilla" : "5",
+            "Dist::Zilla::PluginBundle::DAGOLDEN" : "0.068",
+            "File::Spec" : "0",
+            "File::Temp" : "0",
+            "IO::Handle" : "0",
+            "IPC::Open3" : "0",
+            "Pod::Coverage::TrustPod" : "0",
+            "Test::CPAN::Meta" : "0",
+            "Test::More" : "0",
+            "Test::Pod" : "1.41",
+            "Test::Pod::Coverage" : "1.08",
+            "Test::Spelling" : "0.12"
          }
       },
       "runtime" : {
@@ -43,9 +59,12 @@
          }
       },
       "test" : {
+         "recommends" : {
+            "CPAN::Meta" : "2.120900"
+         },
          "requires" : {
-            "File::Find" : "0",
-            "File::Temp" : "0",
+            "ExtUtils::MakeMaker" : "0",
+            "File::Spec" : "0",
             "Test::More" : "0",
             "warnings" : "0"
          }
@@ -54,30 +73,33 @@
    "provides" : {
       "File::chdir" : {
          "file" : "lib/File/chdir.pm",
-         "version" : "0.1008"
+         "version" : "0.1009"
       },
       "File::chdir::ARRAY" : {
          "file" : "lib/File/chdir.pm",
-         "version" : "0.1008"
+         "version" : "0.1009"
       },
       "File::chdir::SCALAR" : {
          "file" : "lib/File/chdir.pm",
-         "version" : "0.1008"
+         "version" : "0.1009"
       }
    },
    "release_status" : "stable",
    "resources" : {
       "bugtracker" : {
-         "mailto" : "bug-File-chdir@rt.cpan.org",
-         "web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=File-chdir"
+         "web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=File-chdir"
       },
-      "homepage" : "https://metacpan.org/release/File-chdir",
+      "homepage" : "https://github.com/dagolden/File-chdir",
       "repository" : {
          "type" : "git",
-         "url" : "git://github.com/dagolden/file-chdir.git",
-         "web" : "https://github.com/dagolden/file-chdir"
+         "url" : "https://github.com/dagolden/File-chdir.git",
+         "web" : "https://github.com/dagolden/File-chdir"
       }
    },
-   "version" : "0.1008"
+   "version" : "0.1009",
+   "x_authority" : "cpan:DAGOLDEN",
+   "x_contributors" : [
+      "Joel Berger <joel.a.berger@gmail.com>"
+   ]
 }
 
@@ -1,21 +1,21 @@
 ---
 abstract: 'a more sensible way to change directories'
 author:
-  - 'David A Golden <dagolden@cpan.org>'
-  - 'Michael G Schwern <schwern@pobox.com> (original author)'
+  - 'David Golden <dagolden@cpan.org>'
+  - 'Michael G. Schwern <schwern@pobox.com>'
 build_requires:
-  File::Find: 0
-  File::Temp: 0
-  Test::More: 0
-  warnings: 0
+  ExtUtils::MakeMaker: '0'
+  File::Spec: '0'
+  Test::More: '0'
+  warnings: '0'
 configure_requires:
-  ExtUtils::MakeMaker: 6.30
+  ExtUtils::MakeMaker: '6.17'
 dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.300025, CPAN::Meta::Converter version 2.120921'
+generated_by: 'Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.140640'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: 1.4
+  version: '1.4'
 name: File-chdir
 no_index:
   directory:
@@ -28,23 +28,26 @@ no_index:
 provides:
   File::chdir:
     file: lib/File/chdir.pm
-    version: 0.1008
+    version: '0.1009'
   File::chdir::ARRAY:
     file: lib/File/chdir.pm
-    version: 0.1008
+    version: '0.1009'
   File::chdir::SCALAR:
     file: lib/File/chdir.pm
-    version: 0.1008
+    version: '0.1009'
 requires:
-  Carp: 0
-  Cwd: 3.16
-  Exporter: 0
-  File::Spec::Functions: 3.27
-  perl: 5.006
-  strict: 0
-  vars: 0
+  Carp: '0'
+  Cwd: '3.16'
+  Exporter: '0'
+  File::Spec::Functions: '3.27'
+  perl: '5.006'
+  strict: '0'
+  vars: '0'
 resources:
-  bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=File-chdir
-  homepage: https://metacpan.org/release/File-chdir
-  repository: git://github.com/dagolden/file-chdir.git
-version: 0.1008
+  bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=File-chdir
+  homepage: https://github.com/dagolden/File-chdir
+  repository: https://github.com/dagolden/File-chdir.git
+version: '0.1009'
+x_authority: cpan:DAGOLDEN
+x_contributors:
+  - 'Joel Berger <joel.a.berger@gmail.com>'
@@ -1,24 +1,19 @@
 
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.020.
 use strict;
 use warnings;
 
 use 5.006;
 
-use ExtUtils::MakeMaker 6.30;
+use ExtUtils::MakeMaker 6.17;
 
 
 
 my %WriteMakefileArgs = (
   "ABSTRACT" => "a more sensible way to change directories",
-  "AUTHOR" => "David A Golden <dagolden\@cpan.org>, Michael G Schwern <schwern\@pobox.com> (original author)",
-  "BUILD_REQUIRES" => {
-    "File::Find" => 0,
-    "File::Temp" => 0,
-    "Test::More" => 0,
-    "warnings" => 0
-  },
+  "AUTHOR" => "David Golden <dagolden\@cpan.org>, Michael G. Schwern <schwern\@pobox.com>",
   "CONFIGURE_REQUIRES" => {
-    "ExtUtils::MakeMaker" => "6.30"
+    "ExtUtils::MakeMaker" => "6.17"
   },
   "DISTNAME" => "File-chdir",
   "EXE_FILES" => [],
@@ -32,24 +27,37 @@ my %WriteMakefileArgs = (
     "strict" => 0,
     "vars" => 0
   },
-  "VERSION" => "0.1008",
+  "TEST_REQUIRES" => {
+    "ExtUtils::MakeMaker" => 0,
+    "File::Spec" => 0,
+    "Test::More" => 0,
+    "warnings" => 0
+  },
+  "VERSION" => "0.1009",
   "test" => {
     "TESTS" => "t/*.t"
   }
 );
 
 
-unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {
-  my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
-  my $pp = $WriteMakefileArgs{PREREQ_PM};
-  for my $mod ( keys %$br ) {
-    if ( exists $pp->{$mod} ) {
-      $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod};
-    }
-    else {
-      $pp->{$mod} = $br->{$mod};
-    }
-  }
+my %FallbackPrereqs = (
+  "Carp" => 0,
+  "Cwd" => "3.16",
+  "Exporter" => 0,
+  "ExtUtils::MakeMaker" => 0,
+  "File::Spec" => 0,
+  "File::Spec::Functions" => "3.27",
+  "Test::More" => 0,
+  "strict" => 0,
+  "vars" => 0,
+  "warnings" => 0
+);
+
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+  delete $WriteMakefileArgs{TEST_REQUIRES};
+  delete $WriteMakefileArgs{BUILD_REQUIRES};
+  $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
 }
 
 delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
@@ -2,24 +2,24 @@ NAME
     File::chdir - a more sensible way to change directories
 
 VERSION
-    version 0.1008
+    version 0.1009
 
 SYNOPSIS
-       use File::chdir;
- 
-       $CWD = "/foo/bar";     # now in /foo/bar
-       {
-           local $CWD = "/moo/baz";  # now in /moo/baz
-           ...
-       }
- 
-       # still in /foo/bar!
+      use File::chdir;
+
+      $CWD = "/foo/bar";     # now in /foo/bar
+      {
+          local $CWD = "/moo/baz";  # now in /moo/baz
+          ...
+      }
+
+      # still in /foo/bar!
 
 DESCRIPTION
     Perl's "chdir()" has the unfortunate problem of being very, very, very
     global. If any part of your program calls "chdir()" or if any library
     you use calls "chdir()", it changes the current working directory for
-    the whole program.
+    the *whole* program.
 
     This sucks.
 
@@ -29,17 +29,17 @@ DESCRIPTION
 $CWD
     Use the $CWD variable instead of "chdir()" and Cwd.
 
-         use File::chdir;
-         $CWD = $dir;  # just like chdir($dir)!
-         print $CWD;   # prints the current working directory
+        use File::chdir;
+        $CWD = $dir;  # just like chdir($dir)!
+        print $CWD;   # prints the current working directory
 
     It can be localized, and it does the right thing.
 
-         $CWD = "/foo";      # it's /foo out here.
-         {
-             local $CWD = "/bar";  # /bar in here
-         }
-         # still /foo out here!
+        $CWD = "/foo";      # it's /foo out here.
+        {
+            local $CWD = "/bar";  # /bar in here
+        }
+        # still /foo out here!
 
     $CWD always returns the absolute path in the native form for the
     operating system.
@@ -50,103 +50,103 @@ $CWD
     @CWD represents the current working directory as an array, each
     directory in the path is an element of the array. This can often make
     the directory easier to manipulate, and you don't have to fumble with
-    "File::Spec->splitpath" and "File::Spec->catdir" to make portable code.
+    "File::Spec-"splitpath> and "File::Spec-"catdir> to make portable code.
 
-       # Similar to chdir("/usr/local/src/perl")
-       @CWD = qw(usr local src perl);
+      # Similar to chdir("/usr/local/src/perl")
+      @CWD = qw(usr local src perl);
 
     pop, push, shift, unshift and splice all work. pop and push are probably
     the most useful.
 
-       pop @CWD;                 # same as chdir(File::Spec->updir)
-       push @CWD, 'some_dir'     # same as chdir('some_dir')
+      pop @CWD;                 # same as chdir(File::Spec->updir)
+      push @CWD, 'some_dir'     # same as chdir('some_dir')
 
     @CWD and $CWD both work fine together.
 
-    NOTE Due to a perl bug you can't localize @CWD. See "CAVEATS" for a work
-    around.
+    *NOTE* Due to a perl bug you can't localize @CWD. See "CAVEATS" for a
+    work around.
 
 EXAMPLES
     (We omit the "use File::chdir" from these examples for terseness)
 
     Here's $CWD instead of "chdir()":
 
-         $CWD = 'foo';           # chdir('foo')
+        $CWD = 'foo';           # chdir('foo')
 
     and now instead of Cwd.
 
-         print $CWD;             # use Cwd;  print Cwd::abs_path
+        print $CWD;             # use Cwd;  print Cwd::abs_path
 
     you can even do zsh style "cd foo bar"
 
-         $CWD = '/usr/local/foo';
-         $CWD =~ s/usr/var/;
+        $CWD = '/usr/local/foo';
+        $CWD =~ s/usr/var/;
 
     if you want to localize that, make sure you get the parens right
 
-         {
-             (local $CWD) =~ s/usr/var/;
-             ...
-         }
+        {
+            (local $CWD) =~ s/usr/var/;
+            ...
+        }
 
     It's most useful for writing polite subroutines which don't leave the
     program in some strange directory:
 
-         sub foo {
-             local $CWD = 'some/other/dir';
-             ...do your work...
-         }
+        sub foo {
+            local $CWD = 'some/other/dir';
+            ...do your work...
+        }
 
     which is much simpler than the equivalent:
 
-         sub foo {
-             use Cwd;
-             my $orig_dir = Cwd::getcwd;
-             chdir('some/other/dir');
- 
-             ...do your work...
- 
-             chdir($orig_dir);
-         }
+        sub foo {
+            use Cwd;
+            my $orig_dir = Cwd::getcwd;
+            chdir('some/other/dir');
+
+            ...do your work...
+
+            chdir($orig_dir);
+        }
 
     @CWD comes in handy when you want to start moving up and down the
     directory hierarchy in a cross-platform manner without having to use
     File::Spec.
 
-         pop @CWD;                   # chdir(File::Spec->updir);
-         push @CWD, 'some', 'dir'    # chdir(File::Spec->catdir(qw(some dir)));
+        pop @CWD;                   # chdir(File::Spec->updir);
+        push @CWD, 'some', 'dir'    # chdir(File::Spec->catdir(qw(some dir)));
 
     You can easily change your parent directory:
 
-         # chdir from /some/dir/bar/moo to /some/dir/foo/moo
-         $CWD[-2] = 'foo';
+        # chdir from /some/dir/bar/moo to /some/dir/foo/moo
+        $CWD[-2] = 'foo';
 
 CAVEATS
-   "local @CWD" does not work.
+  "local @CWD" does not work.
     "local @CWD" will not localize @CWD. This is a bug in Perl, you can't
     localize tied arrays. As a work around localizing $CWD will effectively
     localize @CWD.
 
-         {
-             local $CWD;
-             pop @CWD;
-             ...
-         }
+        {
+            local $CWD;
+            pop @CWD;
+            ...
+        }
 
-   Assigning to @CWD calls "chdir()" for each element
-         @CWD = qw/a b c d/;
+  Assigning to @CWD calls "chdir()" for each element
+        @CWD = qw/a b c d/;
 
     Internally, Perl clears @CWD and assigns each element in turn. Thus,
     this code above will do this:
 
-         chdir 'a';
-         chdir 'a/b';
-         chdir 'a/b/c';
-         chdir 'a/b/c/d';
+        chdir 'a';
+        chdir 'a/b';
+        chdir 'a/b/c';
+        chdir 'a/b/c/d';
 
     Generally, avoid assigning to @CWD and just use push and pop instead.
 
-   Volumes not handled
+  Volumes not handled
     There is currently no way to change the current volume via File::chdir.
 
 NOTES
@@ -154,29 +154,28 @@ NOTES
     on Win32. This ensures that $CWD will compare correctly with directories
     created using File::Spec. For example:
 
-         my $working_dir = File::Spec->catdir( $CWD, "foo" );
-         $CWD = $working_dir;
-         doing_stuff_might_chdir();
-         is( $CWD, $working_dir, "back to original working_dir?" );
+        my $working_dir = File::Spec->catdir( $CWD, "foo" );
+        $CWD = $working_dir;
+        doing_stuff_might_chdir();
+        is( $CWD, $working_dir, "back to original working_dir?" );
 
     Deleting the last item of @CWD will act like a pop. Deleting from the
     middle will throw an exception.
 
-         delete @CWD[-1]; # OK
-         delete @CWD[-2]; # Dies
+        delete @CWD[-1]; # OK
+        delete @CWD[-2]; # Dies
 
     What should %CWD do? Something with volumes?
 
-         # chdir to C:\Program Files\Sierra\Half Life ?
-         $CWD{C} = '\\Program Files\\Sierra\\Half Life';
+        # chdir to C:\Program Files\Sierra\Half Life ?
+        $CWD{C} = '\\Program Files\\Sierra\\Half Life';
 
 DIAGNOSTICS
     If an error is encountered when changing $CWD or @CWD, one of the
     following exceptions will be thrown:
 
-    *   *Can't delete except at the end of @CWD*
-
-    *   *Failed to change directory to '$dir'*
+    * ~Can't delete except at the end of @CWD~ * ~Failed to change directory
+    to '$dir'~
 
 HISTORY
     Michael wanted "local chdir" to work. p5p didn't. But it wasn't over!
@@ -200,24 +199,27 @@ SEE ALSO
 SUPPORT
   Bugs / Feature Requests
     Please report any bugs or feature requests through the issue tracker at
-    <https://rt.cpan.org/Public/Dist/Display.html?Name=File-chdir>. You will
+    <http://rt.cpan.org/Public/Dist/Display.html?Name=File-chdir>. You will
     be notified automatically of any progress on your issue.
 
   Source Code
     This is open source software. The code repository is available for
     public review and contribution under the terms of the license.
 
-    <https://github.com/dagolden/file-chdir>
+    <https://github.com/dagolden/File-chdir>
 
-      git clone git://github.com/dagolden/file-chdir.git
+      git clone https://github.com/dagolden/File-chdir.git
 
 AUTHORS
-    *   David A Golden <dagolden@cpan.org>
+    *   David Golden <dagolden@cpan.org>
+
+    *   Michael G. Schwern <schwern@pobox.com>
 
-    *   Michael G Schwern <schwern@pobox.com> (original author)
+CONTRIBUTOR
+    Joel Berger <joel.a.berger@gmail.com>
 
 COPYRIGHT AND LICENSE
-    This software is copyright (c) 2012 by Michael G Schwern and David A
+    This software is copyright (c) 2014 by Michael G. Schwern and David
     Golden.
 
     This is free software; you can redistribute it and/or modify it under
@@ -0,0 +1,37 @@
+requires "Carp" => "0";
+requires "Cwd" => "3.16";
+requires "Exporter" => "0";
+requires "File::Spec::Functions" => "3.27";
+requires "perl" => "5.006";
+requires "strict" => "0";
+requires "vars" => "0";
+
+on 'test' => sub {
+  requires "ExtUtils::MakeMaker" => "0";
+  requires "File::Spec" => "0";
+  requires "Test::More" => "0";
+  requires "warnings" => "0";
+};
+
+on 'test' => sub {
+  recommends "CPAN::Meta" => "2.120900";
+};
+
+on 'configure' => sub {
+  requires "ExtUtils::MakeMaker" => "6.17";
+};
+
+on 'develop' => sub {
+  requires "Dist::Zilla" => "5";
+  requires "Dist::Zilla::PluginBundle::DAGOLDEN" => "0.068";
+  requires "File::Spec" => "0";
+  requires "File::Temp" => "0";
+  requires "IO::Handle" => "0";
+  requires "IPC::Open3" => "0";
+  requires "Pod::Coverage::TrustPod" => "0";
+  requires "Test::CPAN::Meta" => "0";
+  requires "Test::More" => "0";
+  requires "Test::Pod" => "1.41";
+  requires "Test::Pod::Coverage" => "1.08";
+  requires "Test::Spelling" => "0.12";
+};
@@ -1,9 +1,10 @@
 name = File-chdir
-author = David A Golden <dagolden@cpan.org>
-author = Michael G Schwern <schwern@pobox.com> (original author)
+author = David Golden <dagolden@cpan.org>
+author = Michael G. Schwern <schwern@pobox.com>
 license = Perl_5
-copyright_holder = Michael G Schwern and David A Golden
+copyright_holder = Michael G. Schwern and David Golden
 
 [@DAGOLDEN]
-:version = 0.018
+:version = 0.068
+github_issues = 0
 stopwords = Warnock
@@ -3,7 +3,7 @@ use 5.004;
 use strict;
 use vars qw($VERSION @ISA @EXPORT $CWD @CWD);
 # ABSTRACT: a more sensible way to change directories
-our $VERSION = '0.1008'; # VERSION
+our $VERSION = '0.1009'; # VERSION
 
 require Exporter;
 @ISA = qw(Exporter);
@@ -196,220 +196,213 @@ __END__
 
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 File::chdir - a more sensible way to change directories
 
 =head1 VERSION
 
-version 0.1008
+version 0.1009
 
 =head1 SYNOPSIS
 
-   use File::chdir;
- 
-   $CWD = "/foo/bar";     # now in /foo/bar
-   {
-       local $CWD = "/moo/baz";  # now in /moo/baz
-       ...
-   }
- 
-   # still in /foo/bar!
+  use File::chdir;
+
+  $CWD = "/foo/bar";     # now in /foo/bar
+  {
+      local $CWD = "/moo/baz";  # now in /moo/baz
+      ...
+  }
+
+  # still in /foo/bar!
 
 =head1 DESCRIPTION
 
-Perl's C<<< chdir() >>> has the unfortunate problem of being very, very, very
-global.  If any part of your program calls C<<< chdir() >>> or if any library
-you use calls C<<< chdir() >>>, it changes the current working directory for
-the B<whole> program.
+Perl's C<chdir()> has the unfortunate problem of being very, very, very
+global.  If any part of your program calls C<chdir()> or if any library
+you use calls C<chdir()>, it changes the current working directory for
+the *whole* program.
 
 This sucks.
 
-File::chdir gives you an alternative, C<<< $CWD >>> and C<<< @CWD >>>.  These two
-variables combine all the power of C<<< chdir() >>>, L<File::Spec> and L<Cwd>.
+File::chdir gives you an alternative, C<$CWD> and C<@CWD>.  These two
+variables combine all the power of C<chdir()>, L<File::Spec> and L<Cwd>.
 
 =head1 $CWD
 
-Use the C<<< $CWD >>> variable instead of C<<< chdir() >>> and Cwd.
+Use the C<$CWD> variable instead of C<chdir()> and Cwd.
 
-     use File::chdir;
-     $CWD = $dir;  # just like chdir($dir)!
-     print $CWD;   # prints the current working directory
+    use File::chdir;
+    $CWD = $dir;  # just like chdir($dir)!
+    print $CWD;   # prints the current working directory
 
 It can be localized, and it does the right thing.
 
-     $CWD = "/foo";      # it's /foo out here.
-     {
-         local $CWD = "/bar";  # /bar in here
-     }
-     # still /foo out here!
+    $CWD = "/foo";      # it's /foo out here.
+    {
+        local $CWD = "/bar";  # /bar in here
+    }
+    # still /foo out here!
 
-C<<< $CWD >>> always returns the absolute path in the native form for the
+C<$CWD> always returns the absolute path in the native form for the
 operating system.
 
-C<<< $CWD >>> and normal C<<< chdir() >>> work together just fine.
+C<$CWD> and normal C<chdir()> work together just fine.
 
 =head1 @CWD
 
-C<<< @CWD >>> represents the current working directory as an array, each
+C<@CWD> represents the current working directory as an array, each
 directory in the path is an element of the array.  This can often make
 the directory easier to manipulate, and you don't have to fumble with
-C<<< File::Spec->splitpath >>> and C<<< File::Spec->catdir >>> to make portable code.
+C<File::Spec->splitpath> and C<File::Spec->catdir> to make portable code.
 
-   # Similar to chdir("/usr/local/src/perl")
-   @CWD = qw(usr local src perl);
+  # Similar to chdir("/usr/local/src/perl")
+  @CWD = qw(usr local src perl);
 
 pop, push, shift, unshift and splice all work.  pop and push are
 probably the most useful.
 
-   pop @CWD;                 # same as chdir(File::Spec->updir)
-   push @CWD, 'some_dir'     # same as chdir('some_dir')
+  pop @CWD;                 # same as chdir(File::Spec->updir)
+  push @CWD, 'some_dir'     # same as chdir('some_dir')
 
-C<<< @CWD >>> and C<<< $CWD >>> both work fine together.
+C<@CWD> and C<$CWD> both work fine together.
 
-B<NOTE> Due to a perl bug you can't localize C<<< @CWD >>>.  See L</CAVEATS> for a work around.
+*NOTE* Due to a perl bug you can't localize C<@CWD>.  See L</CAVEATS> for a work around.
 
 =head1 EXAMPLES
 
-(We omit the C<<< use File::chdir >>> from these examples for terseness)
+(We omit the C<use File::chdir> from these examples for terseness)
 
-Here's C<<< $CWD >>> instead of C<<< chdir() >>>:
+Here's C<$CWD> instead of C<chdir()>:
 
-     $CWD = 'foo';           # chdir('foo')
+    $CWD = 'foo';           # chdir('foo')
 
 and now instead of Cwd.
 
-     print $CWD;             # use Cwd;  print Cwd::abs_path
+    print $CWD;             # use Cwd;  print Cwd::abs_path
 
-you can even do zsh style C<<< cd foo bar >>>
+you can even do zsh style C<cd foo bar>
 
-     $CWD = '/usr/local/foo';
-     $CWD =~ s/usr/var/;
+    $CWD = '/usr/local/foo';
+    $CWD =~ s/usr/var/;
 
 if you want to localize that, make sure you get the parens right
 
-     {
-         (local $CWD) =~ s/usr/var/;
-         ...
-     }
+    {
+        (local $CWD) =~ s/usr/var/;
+        ...
+    }
 
 It's most useful for writing polite subroutines which don't leave the
 program in some strange directory:
 
-     sub foo {
-         local $CWD = 'some/other/dir';
-         ...do your work...
-     }
+    sub foo {
+        local $CWD = 'some/other/dir';
+        ...do your work...
+    }
 
 which is much simpler than the equivalent:
 
-     sub foo {
-         use Cwd;
-         my $orig_dir = Cwd::getcwd;
-         chdir('some/other/dir');
- 
-         ...do your work...
- 
-         chdir($orig_dir);
-     }
-
-C<<< @CWD >>> comes in handy when you want to start moving up and down the
+    sub foo {
+        use Cwd;
+        my $orig_dir = Cwd::getcwd;
+        chdir('some/other/dir');
+
+        ...do your work...
+
+        chdir($orig_dir);
+    }
+
+C<@CWD> comes in handy when you want to start moving up and down the
 directory hierarchy in a cross-platform manner without having to use
 File::Spec.
 
-     pop @CWD;                   # chdir(File::Spec->updir);
-     push @CWD, 'some', 'dir'    # chdir(File::Spec->catdir(qw(some dir)));
+    pop @CWD;                   # chdir(File::Spec->updir);
+    push @CWD, 'some', 'dir'    # chdir(File::Spec->catdir(qw(some dir)));
 
 You can easily change your parent directory:
 
-     # chdir from /some/dir/bar/moo to /some/dir/foo/moo
-     $CWD[-2] = 'foo';
+    # chdir from /some/dir/bar/moo to /some/dir/foo/moo
+    $CWD[-2] = 'foo';
 
 =head1 CAVEATS
 
-=head3 C<<< local @CWD >>> does not work.
+=head2 C<local @CWD> does not work.
 
-C<<< local @CWD >>> will not localize C<<< @CWD >>>.  This is a bug in Perl, you
+C<local @CWD> will not localize C<@CWD>.  This is a bug in Perl, you
 can't localize tied arrays.  As a work around localizing $CWD will
 effectively localize @CWD.
 
-     {
-         local $CWD;
-         pop @CWD;
-         ...
-     }
+    {
+        local $CWD;
+        pop @CWD;
+        ...
+    }
 
-=head3 Assigning to C<<< @CWD >>> calls C<<< chdir() >>> for each element
+=head2 Assigning to C<@CWD> calls C<chdir()> for each element
 
-     @CWD = qw/a b c d/;
+    @CWD = qw/a b c d/;
 
-Internally, Perl clears C<<< @CWD >>> and assigns each element in turn.  Thus, this
+Internally, Perl clears C<@CWD> and assigns each element in turn.  Thus, this
 code above will do this:
 
-     chdir 'a';
-     chdir 'a/b';
-     chdir 'a/b/c';
-     chdir 'a/b/c/d';
+    chdir 'a';
+    chdir 'a/b';
+    chdir 'a/b/c';
+    chdir 'a/b/c/d';
 
-Generally, avoid assigning to C<<< @CWD >>> and just use push and pop instead.
+Generally, avoid assigning to C<@CWD> and just use push and pop instead.
 
-=head3 Volumes not handled
+=head2 Volumes not handled
 
 There is currently no way to change the current volume via File::chdir.
 
 =head1 NOTES
 
-C<<< $CWD >>> returns the current directory using native path separators, i.e. \
-on Win32.  This ensures that C<<< $CWD >>> will compare correctly with directories
+C<$CWD> returns the current directory using native path separators, i.e. \
+on Win32.  This ensures that C<$CWD> will compare correctly with directories
 created using File::Spec.  For example:
 
-     my $working_dir = File::Spec->catdir( $CWD, "foo" );
-     $CWD = $working_dir;
-     doing_stuff_might_chdir();
-     is( $CWD, $working_dir, "back to original working_dir?" );
+    my $working_dir = File::Spec->catdir( $CWD, "foo" );
+    $CWD = $working_dir;
+    doing_stuff_might_chdir();
+    is( $CWD, $working_dir, "back to original working_dir?" );
 
-Deleting the last item of C<<< @CWD >>> will act like a pop.  Deleting from the
+Deleting the last item of C<@CWD> will act like a pop.  Deleting from the
 middle will throw an exception.
 
-     delete @CWD[-1]; # OK
-     delete @CWD[-2]; # Dies
+    delete @CWD[-1]; # OK
+    delete @CWD[-2]; # Dies
 
 What should %CWD do?  Something with volumes?
 
-     # chdir to C:\Program Files\Sierra\Half Life ?
-     $CWD{C} = '\\Program Files\\Sierra\\Half Life';
+    # chdir to C:\Program Files\Sierra\Half Life ?
+    $CWD{C} = '\\Program Files\\Sierra\\Half Life';
 
 =head1 DIAGNOSTICS
 
-If an error is encountered when changing C<<< $CWD >>> or C<<< @CWD >>>, one of
+If an error is encountered when changing C<$CWD> or C<@CWD>, one of
 the following exceptions will be thrown:
 
-=over
-
-=item *
-
-I<Can't delete except at the end of @CWD>
-
-=item *
-
-I<Failed to change directory to '$dir'>
-
-=back
+* ~Can't delete except at the end of @CWD~
+* ~Failed to change directory to '$dir'~
 
 =head1 HISTORY
 
-Michael wanted C<<< local chdir >>> to work.  p5p didn't.  But it wasn't over!
+Michael wanted C<local chdir> to work.  p5p didn't.  But it wasn't over!
 Was it over when the Germans bombed Pearl Harbor?  Hell, no!
 
-Abigail andE<sol>or Bryan Warnock suggested the C<<< $CWD >>> thing (Michael forgets
+Abigail and/or Bryan Warnock suggested the C<$CWD> thing (Michael forgets
 which).  They were right.
 
-The C<<< chdir() >>> override was eliminated in 0.04.
+The C<chdir()> override was eliminated in 0.04.
 
 David became co-maintainer with 0.06_01 to fix some chronic
 Win32 path bugs.
 
-As of 0.08, if changing C<<< $CWD >>> or C<<< @CWD >>> fails to change the directory, an
+As of 0.08, if changing C<$CWD> or C<@CWD> fails to change the directory, an
 error will be thrown.
 
 =head1 SEE ALSO
@@ -424,7 +417,7 @@ L<File::pushd>, L<File::Spec>, L<Cwd>, L<perlfunc/chdir>,
 =head2 Bugs / Feature Requests
 
 Please report any bugs or feature requests through the issue tracker
-at L<https://rt.cpan.org/Public/Dist/Display.html?Name=File-chdir>.
+at L<http://rt.cpan.org/Public/Dist/Display.html?Name=File-chdir>.
 You will be notified automatically of any progress on your issue.
 
 =head2 Source Code
@@ -432,9 +425,9 @@ You will be notified automatically of any progress on your issue.
 This is open source software.  The code repository is available for
 public review and contribution under the terms of the license.
 
-L<https://github.com/dagolden/file-chdir>
+L<https://github.com/dagolden/File-chdir>
 
-  git clone git://github.com/dagolden/file-chdir.git
+  git clone https://github.com/dagolden/File-chdir.git
 
 =head1 AUTHORS
 
@@ -442,17 +435,23 @@ L<https://github.com/dagolden/file-chdir>
 
 =item *
 
-David A Golden <dagolden@cpan.org>
+David Golden <dagolden@cpan.org>
 
 =item *
 
-Michael G Schwern <schwern@pobox.com> (original author)
+Michael G. Schwern <schwern@pobox.com>
 
 =back
 
+=head1 CONTRIBUTOR
+
+=for stopwords Joel Berger
+
+Joel Berger <joel.a.berger@gmail.com>
+
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2012 by Michael G Schwern and David A Golden.
+This software is copyright (c) 2014 by Michael G. Schwern and David Golden.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
@@ -4,6 +4,12 @@ verbose = 8
 [Variables::ProhibitPunctuationVars]
 allow = $@ $!
 
+[TestingAndDebugging::ProhibitNoStrict]
+allow = refs
+
+[Variables::ProhibitEvilVariables]
+variables = $DB::single
+
 # Turn these off
 [-BuiltinFunctions::ProhibitStringyEval]
 [-ControlStructures::ProhibitPostfixControls]
@@ -13,6 +19,7 @@ allow = $@ $!
 [-References::ProhibitDoubleSigils]
 [-RegularExpressions::RequireExtendedFormatting]
 [-InputOutput::ProhibitTwoArgOpen]
+[-Modules::ProhibitEvilModules]
 
 # Turn this on
 [Lax::ProhibitStringyEval::ExceptForRequire]
@@ -1,73 +0,0 @@
-#!perl
-
-use strict;
-use warnings;
-
-use Test::More;
-
-
-
-use File::Find;
-use File::Temp qw{ tempdir };
-
-my @modules;
-find(
-  sub {
-    return if $File::Find::name !~ /\.pm\z/;
-    my $found = $File::Find::name;
-    $found =~ s{^lib/}{};
-    $found =~ s{[/\\]}{::}g;
-    $found =~ s/\.pm$//;
-    # nothing to skip
-    push @modules, $found;
-  },
-  'lib',
-);
-
-sub _find_scripts {
-    my $dir = shift @_;
-
-    my @found_scripts = ();
-    find(
-      sub {
-        return unless -f;
-        my $found = $File::Find::name;
-        # nothing to skip
-        open my $FH, '<', $_ or do {
-          note( "Unable to open $found in ( $! ), skipping" );
-          return;
-        };
-        my $shebang = <$FH>;
-        return unless $shebang =~ /^#!.*?\bperl\b\s*$/;
-        push @found_scripts, $found;
-      },
-      $dir,
-    );
-
-    return @found_scripts;
-}
-
-my @scripts;
-do { push @scripts, _find_scripts($_) if -d $_ }
-    for qw{ bin script scripts };
-
-my $plan = scalar(@modules) + scalar(@scripts);
-$plan ? (plan tests => $plan) : (plan skip_all => "no tests to run");
-
-{
-    # fake home for cpan-testers
-     local $ENV{HOME} = tempdir( CLEANUP => 1 );
-
-    like( qx{ $^X -Ilib -e "require $_; print '$_ ok'" }, qr/^\s*$_ ok/s, "$_ loaded ok" )
-        for sort @modules;
-
-    SKIP: {
-        eval "use Test::Script 1.05; 1;";
-        skip "Test::Script needed to test script compilation", scalar(@scripts) if $@;
-        foreach my $file ( @scripts ) {
-            my $script = $file;
-            $script =~ s!.*/!!;
-            script_compiles( $file, "$script script compiles" );
-        }
-    }
-}
@@ -0,0 +1,47 @@
+do { my $x = {
+       'configure' => {
+                        'requires' => {
+                                        'ExtUtils::MakeMaker' => '6.17'
+                                      }
+                      },
+       'develop' => {
+                      'requires' => {
+                                      'Dist::Zilla' => '5',
+                                      'Dist::Zilla::PluginBundle::DAGOLDEN' => '0.068',
+                                      'File::Spec' => '0',
+                                      'File::Temp' => '0',
+                                      'IO::Handle' => '0',
+                                      'IPC::Open3' => '0',
+                                      'Pod::Coverage::TrustPod' => '0',
+                                      'Test::CPAN::Meta' => '0',
+                                      'Test::More' => '0',
+                                      'Test::Pod' => '1.41',
+                                      'Test::Pod::Coverage' => '1.08',
+                                      'Test::Spelling' => '0.12'
+                                    }
+                    },
+       'runtime' => {
+                      'requires' => {
+                                      'Carp' => '0',
+                                      'Cwd' => '3.16',
+                                      'Exporter' => '0',
+                                      'File::Spec::Functions' => '3.27',
+                                      'perl' => '5.006',
+                                      'strict' => '0',
+                                      'vars' => '0'
+                                    }
+                    },
+       'test' => {
+                   'recommends' => {
+                                     'CPAN::Meta' => '2.120900'
+                                   },
+                   'requires' => {
+                                   'ExtUtils::MakeMaker' => '0',
+                                   'File::Spec' => '0',
+                                   'Test::More' => '0',
+                                   'warnings' => '0'
+                                 }
+                 }
+     };
+  $x;
+ }
\ No newline at end of file
@@ -0,0 +1,176 @@
+#!perl
+
+use strict;
+use warnings;
+
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.019
+
+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';
+if ( $source && $HAS_CPAN_META ) {
+    if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
+        $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
+    }
+}
+else {
+    $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 );
+            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 ( @dep_errors ) {
+    diag join("\n",
+        "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
+        "The following REQUIRED prerequisites were not satisfied:\n",
+        @dep_errors,
+        "\n"
+    );
+}
+
+pass;
+
+# vim: ts=4 sts=4 sw=4 et:
@@ -0,0 +1,53 @@
+use 5.006;
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.046
+
+use Test::More  tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
+
+
+
+my @module_files = (
+    'File/chdir.pm'
+);
+
+
+
+# fake home for cpan-testers
+use File::Temp;
+local $ENV{HOME} = File::Temp::tempdir( CLEANUP => 1 );
+
+
+my $inc_switch = -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;
+
+    my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]");
+    binmode $stderr, ':crlf' if $^O eq 'MSWin32';
+    my @_warnings = <$stderr>;
+    waitpid($pid, 0);
+    is($?, 0, "$lib loaded ok");
+
+    if (@_warnings)
+    {
+        warn @_warnings;
+        push @warnings, @_warnings;
+    }
+}
+
+
+
+is(scalar(@warnings), 0, 'no warnings found') or diag 'got warnings: ', explain \@warnings if $ENV{AUTHOR_TESTING};
+
+
@@ -2,21 +2,25 @@ use strict;
 use warnings;
 use Test::More;
 
-# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.002005
-eval "use Test::Spelling 0.12; use Pod::Wordlist::hanekomu; 1" or die $@;
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006008
+use Test::Spelling 0.12;
+use Pod::Wordlist;
 
 
 add_stopwords(<DATA>);
-all_pod_files_spelling_ok('bin', 'lib');
+all_pod_files_spelling_ok( qw( bin lib  ) );
 __DATA__
 Warnock
 David
 Golden
+dagolden
 Michael
 Schwern
-original
-author
+schwern
 and
+Joel
+Berger
+joel
 lib
 File
 chdir
@@ -1,7 +1,6 @@
 #!perl
+# This file was automatically generated by Dist::Zilla::Plugin::MetaTests.
 
-use Test::More;
+use Test::CPAN::Meta;
 
-eval "use Test::CPAN::Meta";
-plan skip_all => "Test::CPAN::Meta required for testing META.yml" if $@;
 meta_yaml_ok();
@@ -0,0 +1,8 @@
+#!perl
+
+use Test::More;
+
+eval "use Test::MinimumVersion";
+plan skip_all => "Test::MinimumVersion required for testing minimum versions"
+  if $@;
+all_minimum_version_ok( qq{5.010} );
@@ -1,13 +1,7 @@
 #!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
 
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.08";
-plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage"
-  if $@;
-
-eval "use Pod::Coverage::TrustPod";
-plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage"
-  if $@;
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
 
 all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
@@ -1,7 +1,6 @@
 #!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
 use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+use Test::Pod 1.41;
 
 all_pod_files_ok();
@@ -1,8 +1,12 @@
 #!perl
 
+use strict;
+use warnings;
+
 use Test::More;
 
 eval 'use Test::Portability::Files';
 plan skip_all => 'Test::Portability::Files required for testing portability'
     if $@;
+options(test_one_dot => 0);
 run_tests();