---
name: "Test::CPAN::Meta::YAML"
section: "3pm"
platform: "linux"
package: "libtest-cpan-meta-yaml-perl"
version: "0.25-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::CPAN::Meta::YAML"
---

# Test::CPAN::Meta::YAML(3pm)

Validate a META.yml file within a CPAN distribution.

## NAME

Test::CPAN::Meta::YAML - Validate a META.yml file within a CPAN distribution.

## SYNOPSIS

There are two forms this module can be used.

The first is a standalone test of your distribution's *META.yml* file:

```
  use Test::More;
  eval "use Test::CPAN::Meta::YAML";
  plan skip_all => "Test::CPAN::Meta::YAML required for testing META.yml" if $@;
  meta_yaml_ok();
```

Note that you may provide an optional label/comment/message/etc to the function, or one will be created automatically.

The second form allows you to test other *META.yml* files, or specify a specific version you wish to test against:

```
  use Test::More tests => 6;
  use Test::CPAN::Meta::YAML;
  # specify a file and specification version
  meta_spec_ok('META.yml','1.3',$msg);
  # specify the specification version to validate the local META.yml
  meta_spec_ok(undef,'1.3',$msg);
  # specify a file, where the specification version is deduced
  # from the file itself
  meta_spec_ok('META.yml',undef,$msg);
```

Note that this form requires you to specify the number of tests you will be running in your test script. Also note that each `"meta_spec_ok"` is actually two tests under the hood.

## DESCRIPTION

This module was written to ensure that a *META.yml* file, provided with a standard distribution uploaded to CPAN, meets the specifications that slowly being introduced to module uploads, via the use of ExtUtils::MakeMaker, Module::Build and Module::Install.

See CPAN::Meta for further details of the CPAN Meta Specification.

## FUNCTIONS

- •

  meta\_yaml\_ok(\[$msg\])

  Basic *META.yml* wrapper around `"meta_spec_ok"`.

- •

  meta\_spec\_ok($file, `$version` \[,$msg\])

  Validates the named file against the given specification version. Both `$file` and `$version` can be undefined.

## TESTING META FILES

There are currently three distributions to test META files:

- Test-CPAN-Meta

  - Test-CPAN-Meta-JSON

  - Test-CPAN-Meta-YAML

  All three have slightly different requirements and are intended to be used in slightly different environments.

Test-CPAN-Meta-YAML requires a YAML parser, and currently looks for the YAML or YAML::Syck modules. This is the original variant of the three and was intended to provide a more complete YAML validation of a *META.yml*.

Test-CPAN-Meta requires the Parse::CPAN::Meta module, which is now part of Perl Core as of perl-5.10.1. This version is intended to be used by those only wishing to rely on core modules to test their *META.yml* files.

Test-CPAN-Meta-JSON is the most recent addition to the family, and is specifically aimed at those distributions that use a *META.json* Meta file. The distribution requires the JSON module to parse the Meta file.

## BUGS, PATCHES & FIXES

There are no known bugs at the time of this release. However, if you spot a bug or are experiencing difficulties that are not explained within the POD documentation, please send an email to barbie@cpan.org or submit a bug to the RT system (http://rt.cpan.org/Public/Dist/Display.html?Name=Test-CPAN-Meta-YAML). However, it would help greatly if you are able to pinpoint problems or even supply a patch.

Fixes are dependent upon their severity and my availability. Should a fix not be forthcoming, please feel free to (politely) remind me.

## SEE ALSO

- Test::YAML::Valid

  - Test::CPAN::Meta

  - Test::CPAN::Meta::JSON

  - Test::CPAN::Meta::YAML

  ## AUTHOR

Barbie, \<barbie@cpan.org\> for Miss Barbell Productions, \<http://www.missbarbell.co.uk\>

## COPYRIGHT AND LICENSE

```
  Copyright (C) 2007-2015 Barbie for Miss Barbell Productions
  This distribution is free software; you can redistribute it and/or
  modify it under the Artistic Licence v2.
```
