@@ -165,7 +165,194 @@ Each package has the file <F>PackageInfo.g</F> which
165
165
contains meta-information about the package
166
166
(package name, version, author(s), relations to other packages,
167
167
homepage, download archives, etc.). This file is used by the package
168
- loading mechanism and also for the redistribution of a package with &GAP;
168
+ loading mechanism and also for the redistribution of a package with &GAP; .
169
+
170
+ <P />
171
+
172
+ A <F >PackageInfo.g</F > file contains a call to the function
173
+ <C >SetPackageInfo</C >, with argument a record.
174
+ The following components of this record are <E >mandatory</E >.
175
+
176
+ <List >
177
+ <Mark ><C >PackageName</C ></Mark >
178
+ <Item >
179
+ a nonempty string denoting the name of the package,
180
+ </Item >
181
+ <Mark ><C >Subtitle</C ></Mark >
182
+ <Item >
183
+ a string that describes the package's contents,
184
+ may be used by a default banner or on a web page,
185
+ should fit on one line,
186
+ </Item >
187
+ <Mark ><C >Version</C ></Mark >
188
+ <Item >
189
+ a nonempty string that does not start with <C >=</C >,
190
+ denoting the version number of the package
191
+ (see Section <Ref Sect =" Version Numbers" />),
192
+ </Item >
193
+ <Mark ><C >Date</C ></Mark >
194
+ <Item >
195
+ a string of the form <C >yyyy-mm-dd</C >
196
+ <!-- the recommended format; a currently still supported format
197
+ that is expected to become deprecated is dd/mm/yyyy -->
198
+ denoting the release date of the current version of the package
199
+ (a date since 1999, when &GAP; 4 appeared),
200
+ </Item >
201
+ <Mark ><C >ArchiveURL</C ></Mark >
202
+ <Item >
203
+ a string started with <C >http://</C >, <C >https://</C >, or <C >ftp://</C >,
204
+ denoting an URL from where the current package archive can be downloaded,
205
+ </Item >
206
+ <Mark ><C >ArchiveFormats</C ></Mark >
207
+ <Item >
208
+ a string that lists the supported formats (among <C >.tar.gz</C >,
209
+ <C >.tar.bz2</C >, <C >-win.zip</C >), separated by whitespace or commas,
210
+ </Item >
211
+ <Mark ><C >Status</C ></Mark >
212
+ <Item >
213
+ one of <C >"accepted"</C >, <C >"submitted"</C >, <C >"deposited"</C >,
214
+ <C >"dev"</C >, <C >"other"</C >;
215
+ if the value is <C >"accepted"</C > then also
216
+ <C >CommunicatedBy</C > (a string of the form <C >name (place)</C >) and
217
+ <C >AcceptDate</C > (a string of the form <C >mm/yyyy</C >) are mandatory,
218
+ </Item >
219
+ <Mark ><C >README_URL</C ></Mark >
220
+ <Item >
221
+ a string started with <C >http://</C >, <C >https://</C >, or <C >ftp://</C >,
222
+ denoting an URL from where the current <F >README.md</F > or <F >README</F >
223
+ file of the package can be downloaded,
224
+ </Item >
225
+ <Mark ><C >PackageInfoURL</C ></Mark >
226
+ <Item >
227
+ a string started with <C >http://</C >, <C >https://</C >, or <C >ftp://</C >,
228
+ denoting an URL from where the current <F >PackageInfo.g</F > file of the
229
+ package can be downloaded,
230
+ </Item >
231
+ <Mark ><C >AbstractHTML</C ></Mark >
232
+ <Item >
233
+ a string that describes the package's contents in a few lines,
234
+ in HTML format; this text will be displayed on the package overview
235
+ web page of &GAP; ,
236
+ </Item >
237
+ <Mark ><C >PackageWWWHome</C ></Mark >
238
+ <Item >
239
+ a string started with <C >http://</C >, <C >https://</C >, or <C >ftp://</C >,
240
+ denoting the address of the package's home page,
241
+ </Item >
242
+ <Mark ><C >PackageDoc</C ></Mark >
243
+ <Item >
244
+ a record or a list of records; each record describes a book of the package
245
+ documentation, with the components
246
+ <C >BookName</C > (a string, the name of the book),
247
+ <C >LongTitle</C > (a string shown by <C >?books</C >),
248
+ <C >SixFile</C > (a string denoting a relative path to the <F >manual.six</F >
249
+ file of the book),
250
+ <C >HTMLStart</C > (a string denoting a relative path to the start file of
251
+ the HTML version of the book),
252
+ <C >PDFFile</C > (a string denoting a relative path to the <F >.pdf</F > file
253
+ of the book),
254
+ <C >ArchiveURLSubset</C > (a list of strings denoting relative paths to those
255
+ files and directories from the archive that are needed for the online
256
+ manual; typically, <C >[ "doc" ]</C > suffices),
257
+ </Item >
258
+ <Mark ><C >AvailabilityTest</C ></Mark >
259
+ <Item >
260
+ a function with no arguments that returns <K >true</K > if the package is
261
+ available, and <K >false</K > otherwise
262
+ (can be <Ref Func =" ReturnTrue" /> if the package consists only of &GAP;
263
+ code),
264
+ </Item >
265
+ </List >
266
+
267
+ The following components of the record are <E >optional</E >.
268
+
269
+ <List >
270
+ <Mark ><C >License</C ></Mark >
271
+ <Item >
272
+ a nonempty string containing an SPDX ID
273
+ (see <URL >https://spdx.org/licenses</URL > for a list of choices),
274
+ </Item >
275
+ <Mark ><C >TextFiles</C > or <C >BinaryFiles</C > or <C >TextBinaryFilesPatterns</C ></Mark >
276
+ <Item >
277
+ a list of strings that specify which files in the archive are text files
278
+ or binary files (at most one of the three components can be available,
279
+ each string in <C >TextBinaryFilesPatterns</C > must start with <C >T</C >
280
+ for text files and by <C >B</C > for binary files),
281
+ </Item >
282
+ <Mark ><C >Persons</C ></Mark >
283
+ <Item >
284
+ a list of records, each with mandatory components
285
+ <C >LastName</C > (a string), <C >FirstNames</C > (a string),
286
+ at least one of <C >IsAuthor</C > or <C >IsMaintainer</C >
287
+ (<K >true</K > or <K >false</K >),
288
+ and optional components
289
+ <C >PostalAddress</C >, <C >Place</C >, <C >Institution</C > (each a string);
290
+ if the <C >IsMaintainer</C > value is <K >true</K > then also one of the
291
+ components
292
+ <C >Email</C > (a string), <C >WWWHome</C > (a string denoting an URL),
293
+ or <C >PostalAddress</C > (a string) is mandatory,
294
+ </Item >
295
+ <Mark ><C >SourceRepository</C ></Mark >
296
+ <Item >
297
+ a record with the components
298
+ <C >Type</C > (the version control system, e.g. <C >"git"</C > or <C >"hg"</C >)
299
+ and <C >URL</C > (the URL of the repository), both strings,
300
+ </Item >
301
+ <Mark ><C >IssueTrackerURL</C ></Mark >
302
+ <Item >
303
+ a string started with <C >http://</C >, <C >https://</C >, or <C >ftp://</C >,
304
+ </Item >
305
+ <Mark ><C >SupportEmail</C ></Mark >
306
+ <Item >
307
+ a string denoting an e-mail address,
308
+ </Item >
309
+ <Mark ><C >Dependencies</C ></Mark >
310
+ <Item >
311
+ a record with the optional components
312
+ <C >GAP</C > (a string denoting the needed version of &GAP; ),
313
+ <C >NeededOtherPackages</C >
314
+ (a list of pairs <C >[ pkgname, pkgversion ]</C > of strings,
315
+ denoting the other packages which must be available if the current package
316
+ shall be loadable),
317
+ <C >SuggestedOtherPackages</C >
318
+ (a list of pairs <C >[ pkgname, pkgversion ]</C > of strings,
319
+ denoting the other packages which shall be loaded together with the
320
+ current package if they are available),
321
+ <C >OtherPackagesLoadedInAdvance</C >
322
+ (a list of pairs <C >[ pkgname, pkgversion ]</C > of strings,
323
+ denoting the other packages that must be completely loaded before loading
324
+ of the current package is started),
325
+ <C >ExternalConditions</C >
326
+ (a list of strings or of pairs <C >[ text, URL ]</C > of strings,
327
+ denoting conditions on external programs),
328
+ </Item >
329
+ <Mark ><C >BannerString</C ></Mark >
330
+ <Item >
331
+ a string that is used as the package banner
332
+ (useful if the default banner string is not suitable),
333
+ </Item >
334
+ <Mark ><C >BannerFunction</C ></Mark >
335
+ <Item >
336
+ a function with no arguments that returns a string that is used
337
+ as the package banner
338
+ (useful if the banner shall show information that is available
339
+ only at runtime),
340
+ </Item >
341
+ <Mark ><C >TestFile</C ></Mark >
342
+ <Item >
343
+ a string denoting a relative path to a readable file
344
+ which contains tests of the package's functionality,
345
+ </Item >
346
+ <Mark ><C >Keywords</C ></Mark >
347
+ <Item >
348
+ a list of strings that are keywords related to the topic of the package.
349
+ </Item >
350
+ <!-- <Mark><C>Extensions</C></Mark>
351
+ <Item>
352
+ a list of records.
353
+ </Item> -->
354
+ </List >
355
+
169
356
</Subsection >
170
357
171
358
<#Include Label="ValidatePackageInfo">
0 commit comments