NAME Test::CheckManifest - Check if your Manifest matches your distro VERSION version 1.43 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 ). 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 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)