The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

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

VERSION

version 1.26

SYNOPSIS

  use Test::CheckManifest;
  ok_manifest();

DESCRIPTION

Test::CheckManifest

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

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

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 <module@renee-baecker.de>

COPYRIGHT AND LICENSE

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

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)