Test::CheckManifest3pm
Check if your manifest matches your distro
Usage
use Test::CheckManifest;ok_manifest();
Export
There is only one method exported: "ok_manifest"
Version
version 1.43
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.tfile_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.
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)
Releases
8 releases since Debian 6.0 (Squeeze); the text changed 6 times.