Test::CheckManifest - Check if your Manifest matches your distro
Contents
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)
perl v5.38.2 2024-02-21 Test::CheckManifest(3pm)
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
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/'});
Name
Test::CheckManifest - Check if your Manifest matches your distro
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>).
Synopsis
use Test::CheckManifest;
ok_manifest();
EXPORT
There is only one method exported: "ok_manifest"
Version
version 1.43
