5 package CPAN::Meta::History;
6 our $VERSION = '2.113640'; # VERSION
10 # ABSTRACT: history of CPAN Meta Spec changes
19 CPAN::Meta::History - history of CPAN Meta Spec changes
27 The CPAN Meta Spec has gone through several iterations. It was
28 originally written in HTML and later revised into POD (though published
29 in HTML generated from the POD). Fields were added, removed or changed,
30 sometimes by design and sometimes to reflect real-world usage after the
33 This document reconstructs the history of the CPAN Meta Spec based on
34 change logs, repository commit messages and the published HTML files.
35 In some cases, particularly prior to version 1.2, the exact version
36 when certain fields were introduced or changed is inconsistent between
37 sources. When in doubt, the published HTML files for versions 1.0 to
38 1.4 as they existed when version 2 was developed are used as the
41 Starting with version 2, the specification document is part of the
42 CPAN-Meta distribution and will be published on CPAN as
45 Going forward, specification version numbers will be integers and
46 decimal portions will correspond to a release date for the CPAN::Meta
59 Revised spec examples as perl data structures rather than YAML
63 Switched to JSON serialization from YAML
67 Specified allowed version number formats
71 Replaced 'requires', 'build_requires', 'configure_requires',
72 'recommends' and 'conflicts' with new 'prereqs' data structure divided
73 by I<phase> (configure, build, test, runtime, etc.) and I<relationship>
74 (requires, recommends, suggests, conflicts)
78 Added support for 'develop' phase for requirements for maintaining
79 a list of authoring tools
83 Changed 'license' to a list and revised the set of valid licenses
87 Made 'dynamic_config' mandatory to reduce confusion
91 Changed 'resources' subkey 'repository' to a hash that clarifies
92 repository type, url for browsing and url for checkout
96 Changed 'resources' subkey 'bugtracker' to a hash for either web
101 Changed specification of 'optional_features':
107 Added formal specification and usage guide instead of just example
111 Changed to use new prereqs data structure instead of individual keys
117 Clarified intended use of 'author' as generalized contact list
121 Added 'release_status' field to indicate stable, testing or unstable
122 status to provide hints to indexers
126 Added 'description' field for a longer description of the distribution
130 Formalized use of "x_" or "X_" for all custom keys not listed in the
143 Noted explicit support for 'perl' in prerequisites
147 Added 'configure_requires' prerequisite type
151 Changed 'optional_features'
157 Example corrected to show map of maps instead of list of maps
158 (though descriptive text said 'map' even in v1.3)
162 Removed 'requires_packages', 'requires_os' and 'excluded_os'
177 Clarified that all prerequisites take version range specifications
181 Added 'no_index' subkey 'directory' and removed 'dir' to match actual
186 Added a 'repository' subkey to 'resources'
198 Re-wrote and restructured spec in POD syntax
202 Changed 'name' to be mandatory
206 Changed 'generated_by' to be mandatory
210 Changed 'license' to be mandatory
214 Added required 'abstract' field
218 Added required 'author' field
222 Added required 'meta-spec' field to define 'version' (and 'url') of the
223 CPAN Meta Spec used for metadata
227 Added 'provides' field
231 Added 'no_index' field and deprecated 'private' field. 'no_index'
232 subkeys include 'file', 'dir', 'package' and 'namespace'
236 Added 'keywords' field
240 Added 'resources' field with subkeys 'homepage', 'license', and
245 Added 'optional_features' field as an alterate under 'recommends'.
246 Includes 'description', 'requires', 'build_requires', 'conflicts',
247 'requires_packages', 'requires_os' and 'excluded_os' as valid subkeys
251 Removed 'license_uri' field
263 Changed 'version' to be mandatory
267 Added 'private' field
271 Added 'license_uri' field
283 Original release (in HTML format only)
287 Included 'name', 'version', 'license', 'distribution_type', 'requires',
288 'recommends', 'build_requires', 'conflicts', 'dynamic_config',
299 David Golden <dagolden@cpan.org>
303 Ricardo Signes <rjbs@cpan.org>
307 =head1 COPYRIGHT AND LICENSE
309 This software is copyright (c) 2010 by David Golden and Ricardo Signes.
311 This is free software; you can redistribute it and/or modify it under
312 the same terms as the Perl 5 programming language system itself.