Skip to content

Commit e94baa2

Browse files
ThomasBreuerfingolfin
authored andcommitted
document the supported components of PackageInfo.g
The list was derived from the function `ValidatePackageInfo` and the contents of the `PackageInfo.g` file of the `Example` package. (Should also the `AutoDoc` component be mentioned?)
1 parent 076b3e9 commit e94baa2

File tree

1 file changed

+188
-1
lines changed

1 file changed

+188
-1
lines changed

doc/ref/gappkg.xml

Lines changed: 188 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,194 @@ Each package has the file <F>PackageInfo.g</F> which
165165
contains meta-information about the package
166166
(package name, version, author(s), relations to other packages,
167167
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;&nbsp;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+
169356
</Subsection>
170357

171358
<#Include Label="ValidatePackageInfo">

0 commit comments

Comments
 (0)