1Test::CPAN::Meta::YAML:U:sVeerrsCioonnt(r3i)buted Perl DToecsutm:e:nCtPaAtNi:o:nMeta::YAML::Version(3)
2
3
4

NAME

6       Test::CPAN::Meta::YAML::Version - Validate CPAN META data against the
7       specification
8

SYNOPSIS

10         use Test::CPAN::Meta::YAML::Version;
11

DESCRIPTION

13       This module was written to ensure that a META.yml file, provided with a
14       standard distribution uploaded to CPAN, meets the specifications that
15       are slowly being introduced to module uploads, via the use of
16       ExtUtils::MakeMaker, Module::Build and Module::Install.
17
18       This module is meant to be used together with Test::CPAN::Meta::YAML,
19       however the code is self contained enough that you can access it
20       directly.
21
22       See CPAN::Meta for further details of the CPAN Meta Specification.
23

ABSTRACT

25       Validation of META.yml data against the CPAN Meta Specification.
26

CLASS CONSTRUCTOR

28       •   new( data => $data [, spec => $version] )
29
30           The constructor must be passed a valid data structure.
31
32           Optionally you may also provide a specification version. This
33           version is then use to ensure that the given data structure meets
34           the respective specification definition. If no version is provided
35           the module will attempt to deduce the appropriate specification
36           version from the data structure itself.
37

METHODS

39   Main Methods
40parse()
41
42           Using the given data structure provided with the constructor,
43           attempts to parse and validate according to the appropriate
44           specification definition.
45
46           Returns 1 if any errors found, otherwise returns 0.
47
48errors()
49
50           Returns a list of the errors found during parsing.
51
52   Check Methods
53       •   check_map($spec,$data)
54
55           Checks whether a map (or hash) part of the data structure conforms
56           to the appropriate specification definition.
57
58       •   check_list($spec,$data)
59
60           Checks whether a list (or array) part of the data structure
61           conforms to the appropriate specification definition.
62
63   Validator Methods
64       •   header($self,$key,$value)
65
66           Validates that the YAML header is valid.
67
68           Note: No longer used as we now read the YAML data structure, not
69           the file.
70
71       •   url($self,$key,$value)
72
73           Validates that a given value is in an acceptable URL format
74
75       •   urlspec($self,$key,$value)
76
77           Validates that the URL to a META.yml specification is a known one.
78
79       •   string_or_undef($self,$key,$value)
80
81           Validates that the value is either a string or an undef value. Bit
82           of a catchall function for parts of the data structure that are
83           completely user defined.
84
85       •   string($self,$key,$value)
86
87           Validates that a string exists for the given key.
88
89       •   file($self,$key,$value)
90
91           Validate that a file is passed for the given key. This may be made
92           more thorough in the future. For now it acts like \&string.
93
94       •   exversion($self,$key,$value)
95
96           Validates a list of versions, e.g. '<= 5, >=2, ==3, !=4, >1, <6,
97           0'.
98
99       •   version($self,$key,$value)
100
101           Validates a single version string. Versions of the type '5.8.8' and
102           '0.00_00' are both valid. A leading 'v' like 'v1.2.3' is also
103           valid.
104
105       •   boolean($self,$key,$value)
106
107           Validates for a boolean value. Currently these values are '1', '0',
108           'true', 'false', however the latter 2 may be removed.
109
110       •   license($self,$key,$value)
111
112           Validates that a value is given for the license. Returns 1 if an
113           known license type, or 2 if a value is given but the license type
114           is not a recommended one.
115
116       •   resource($self,$key,$value)
117
118           Validates that the given key is in CamelCase, to indicate a user
119           defined keyword.
120
121       •   keyword($self,$key,$value)
122
123           Validates that key is in an acceptable format for the META.yml
124           specification, i.e. any in the character class [-_a-z].
125
126           For user defined keys, although not explicitly stated in the
127           specifications (v1.0 - v1.4), the convention is to precede the key
128           with a pattern matching qr{\Ax_}i. Following this any character
129           from the character class [-_a-zA-Z] can be used. This clarification
130           has been added to v2.0 of the specification.
131
132       •   identifier($self,$key,$value)
133
134           Validates that key is in an acceptable format for the META.yml
135           specification, for an identifier, i.e. any that matches the regular
136           expression qr/[a-z][a-z_]/i.
137
138       •   module($self,$key,$value)
139
140           Validates that a given key is in an acceptable module name format,
141           e.g.  'Test::CPAN::Meta::YAML::Version'.
142
143       •   anything($self,$key,$value)
144
145           Usually reserved for user defined structures, allowing them to be
146           considered valid without a need for a specification definition for
147           the structure.
148

BUGS, PATCHES & FIXES

150       There are no known bugs at the time of this release. However, if you
151       spot a bug or are experiencing difficulties that are not explained
152       within the POD documentation, please send an email to barbie@cpan.org
153       or submit a bug to the RT system
154       (http://rt.cpan.org/Public/Dist/Display.html?Name=Test-CPAN-Meta-YAML).
155       However, it would help greatly if you are able to pinpoint problems or
156       even supply a patch.
157
158       Fixes are dependent upon their severity and my availability. Should a
159       fix not be forthcoming, please feel free to (politely) remind me.
160

AUTHOR

162       Barbie, <barbie@cpan.org> for Miss Barbell Productions,
163       <http://www.missbarbell.co.uk>
164
166         Copyright (C) 2007-2015 Barbie for Miss Barbell Productions
167
168         This distribution is free software; you can redistribute it and/or
169         modify it under the Artistic Licence v2.
170
171
172
173perl v5.38.0                      2023-07-21Test::CPAN::Meta::YAML::Version(3)
Impressum