This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
49a614b82d507b22c79e26497fe5a4f3d4415a56
[perl5.git] / cpan / CPAN-Meta / lib / CPAN / Meta / History.pm
1 # vi:tw=72
2 use 5.006;
3 use strict;
4 use warnings;
5 package CPAN::Meta::History;
6 our $VERSION = '2.112150'; # VERSION
7
8 1;
9
10 # ABSTRACT: history of CPAN Meta Spec changes
11
12
13
14 __END__
15 =pod
16
17 =head1 NAME
18
19 CPAN::Meta::History - history of CPAN Meta Spec changes
20
21 =head1 VERSION
22
23 version 2.112150
24
25 =head1 DESCRIPTION
26
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
31 fact.
32
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
39 definitive source.
40
41 Starting with version 2, the specification document is part of the
42 CPAN-Meta distribution and will be published on CPAN as
43 L<CPAN::Meta::Spec>.
44
45 Going forward, specification version numbers will be integers and
46 decimal portions will correspond to a release date for the CPAN::Meta
47 library.
48
49 =head1 HISTORY
50
51 =head2 Version 2
52
53 April 2010
54
55 =over
56
57 =item *
58
59 Revised spec examples as perl data structures rather than YAML
60
61 =item *
62
63 Switched to JSON serialization from YAML
64
65 =item *
66
67 Specified allowed version number formats
68
69 =item *
70
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)
75
76 =item *
77
78 Added support for 'develop' phase for requirements for maintaining
79 a list of authoring tools
80
81 =item *
82
83 Changed 'license' to a list and revised the set of valid licenses
84
85 =item *
86
87 Made 'dynamic_config' mandatory to reduce confusion
88
89 =item *
90
91 Changed 'resources' subkey 'repository' to a hash that clarifies
92 repository type, url for browsing and url for checkout
93
94 =item *
95
96 Changed 'resources' subkey 'bugtracker' to a hash for either web
97 or mailto resource
98
99 =item *
100
101 Changed specification of 'optional_features':
102
103 =over
104
105 =item *
106
107 Added formal specification and usage guide instead of just example
108
109 =item *
110
111 Changed to use new prereqs data structure instead of individual keys
112
113 =back
114
115 =item *
116
117 Clarified intended use of 'author' as generalized contact list
118
119 =item *
120
121 Added 'release_status' field to indicate stable, testing or unstable
122 status to provide hints to indexers
123
124 =item *
125
126 Added 'description' field for a longer description of the distribution
127
128 =item *
129
130 Formalized use of "x_" or "X_" for all custom keys not listed in the
131 official spec
132
133 =back
134
135 =head2 Version 1.4
136
137 June 2008
138
139 =over
140
141 =item *
142
143 Noted explicit support for 'perl' in prerequisites
144
145 =item *
146
147 Added 'configure_requires' prerequisite type
148
149 =item *
150
151 Changed 'optional_features'
152
153 =over
154
155 =item *
156
157 Example corrected to show map of maps instead of list of maps
158 (though descriptive text said 'map' even in v1.3)
159
160 =item *
161
162 Removed 'requires_packages', 'requires_os' and 'excluded_os'
163 as valid subkeys
164
165 =back
166
167 =back
168
169 =head2 Version 1.3
170
171 November 2006
172
173 =over
174
175 =item *
176
177 Clarified that all prerequisites take version range specifications
178
179 =item *
180
181 Added 'no_index' subkey 'directory' and removed 'dir' to match actual
182 usage in the wild
183
184 =item *
185
186 Added a 'repository' subkey to 'resources'
187
188 =back
189
190 =head2 Version 1.2
191
192 August 2005
193
194 =over
195
196 =item *
197
198 Re-wrote and restructured spec in POD syntax
199
200 =item *
201
202 Changed 'name' to be mandatory
203
204 =item *
205
206 Changed 'generated_by' to be mandatory
207
208 =item *
209
210 Changed 'license' to be mandatory
211
212 =item *
213
214 Added required 'abstract' field
215
216 =item *
217
218 Added required 'author' field
219
220 =item *
221
222 Added required 'meta-spec' field to define 'version' (and 'url') of the
223 CPAN Meta Spec used for metadata
224
225 =item *
226
227 Added 'provides' field
228
229 =item *
230
231 Added 'no_index' field and deprecated 'private' field.  'no_index'
232 subkeys include 'file', 'dir', 'package' and 'namespace'
233
234 =item *
235
236 Added 'keywords' field
237
238 =item *
239
240 Added 'resources' field with subkeys 'homepage', 'license', and
241 'bugtracker'
242
243 =item *
244
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
248
249 =item *
250
251 Removed 'license_uri' field
252
253 =back
254
255 =head2 Version 1.1
256
257 May 2003
258
259 =over
260
261 =item *
262
263 Changed 'version' to be mandatory
264
265 =item *
266
267 Added 'private' field
268
269 =item *
270
271 Added 'license_uri' field
272
273 =back
274
275 =head2 Version 1.0
276
277 March 2003
278
279 =over
280
281 =item *
282
283 Original release (in HTML format only)
284
285 =item *
286
287 Included 'name', 'version', 'license', 'distribution_type', 'requires',
288 'recommends', 'build_requires', 'conflicts', 'dynamic_config',
289 'generated_by'
290
291 =back
292
293 =head1 AUTHORS
294
295 =over 4
296
297 =item *
298
299 David Golden <dagolden@cpan.org>
300
301 =item *
302
303 Ricardo Signes <rjbs@cpan.org>
304
305 =back
306
307 =head1 COPYRIGHT AND LICENSE
308
309 This software is copyright (c) 2010 by David Golden and Ricardo Signes.
310
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.
313
314 =cut
315