NAME

   Test::CheckManifest - Check if your Manifest matches your distro

VERSION

   version 1.42

SYNOPSIS

     use Test::CheckManifest;
     ok_manifest();

EXPORT

   There is only one method exported: ok_manifest

METHODS

ok_manifest [{exclude => $arref}][$msg]

   checks whether the Manifest file matches the distro or not. To match a
   distro the Manifest has to name all files that come along with the
   distribution.

   To check the Manifest file, this module searches for a file named
   MANIFEST.

   To exclude some directories from this test, you can specify these dirs
   in the hashref.

     ok_manifest({exclude => ['/var/test/']});

   is ok if the files in /path/to/your/dist/var/test/ are not named in the
   MANIFEST file. That means that the paths in the exclude array must be
   "pseudo-absolute" (absolute to your distribution).

   To use a "filter" you can use the key "filter"

     ok_manifest({filter => [qr/\.svn/]});

   With that you can exclude all files with an '.svn' in the filename or
   in the path from the test.

   These files would be excluded (as examples):

     * /dist/var/.svn/test

     * /dist/lib/test.svn

   You can also combine "filter" and "exclude" with 'and' or 'or' default
   is 'or':

     ok_manifest({exclude => ['/var/test'],
                  filter  => [qr/\.svn/],
                  bool    => 'and'});

   These files have to be named in the MANIFEST:

     * /var/foo/.svn/any.file

     * /dist/t/file.svn

     * /var/test/test.txt

   These files not:

     * /var/test/.svn/*

     * /var/test/file.svn

   By default, ok_manifest will look for the file MANIFEST in the current
   working directory (which is how tests are traditionally run). If you
   wish to specify a different directory, you may pass the file or dir
   parameters, for example:

     ok_manifest({dir => '/path/to/my/dist/'});

EXCLUDING FILES

   Beside filter and exclude there is another way to exclude files:
   MANIFEST.SKIP. This is a file with filenames that should be excluded:

     t/my_very_own.t
     file_to.skip

REPLACE THIS MODULE

   You can replace the test scripts using Test::CheckManifest with this
   one using ExtUtils::Manifest.

       use Test::More tests => 2;
       use ExtUtils::Manifest;

       is_deeply [ ExtUtils::Manifest::manicheck() ], [], 'missing';
       is_deeply [ ExtUtils::Manifest::filecheck() ], [], 'extra';

   (thanks to @mohawk2
   <https://github.com/reneeb/Test-CheckManifest/issues/20>).

ACKNOWLEDGEMENT

   Great thanks to Christopher H. Laco, who did a lot of testing stuff for
   me and he reported some bugs to RT.

AUTHOR

   Renee Baecker <[email protected]>

COPYRIGHT AND LICENSE

   This software is Copyright (c) 2018 by Renee Baecker.

   This is free software, licensed under:

     The Artistic License 2.0 (GPL Compatible)