---
name: "Test::CheckManifest"
section: "3pm"
platform: "linux"
package: "libtest-checkmanifest-perl"
version: "1.43-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::CheckManifest"
---

# Test::CheckManifest(3pm)

Check if your Manifest matches your distro

## 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` \<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 \<reneeb@cpan.org\>

## 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)
```
