/
PackageInfo.g
272 lines (244 loc) · 11.9 KB
/
PackageInfo.g
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
#############################################################################
##
## PackageInfo.g for the package `symchm' Jayant Apte
##
## This is a GAP readable file. Of course you can change and remove all
## comments as you like.
##
## This file contains meta-information on the package. It is used by
## the package loading mechanism and the upgrade mechanism for the
## redistribution of the package via the GAP website.
##
## Entries that are commented out are based on the EDIM package and
## are there for purposes of illustration of a possible alternative,
## especially in the case where the Example package's entry is blank.
##
## For the LoadPackage mechanism in GAP >= 4.5 the minimal set of needed
## entries is .PackageName, .Version, and .AvailabilityTest, and an error
## will occur if any of them is missing. Other important entries are
## .PackageDoc and .Dependencies. The other entries are relevant if the
## package will be distributed for other GAP users, in particular if it
## will be redistributed via the GAP Website.
##
## With a new release of the package at least the entries .Version, .Date
## and .ArchiveURL must be updated.
SetPackageInfo( rec(
## This is case sensitive, use your preferred spelling.
##
PackageName := "symchm",
## This may be used by a default banner or on a Web page, should fit on
## one line.
Subtitle := "A package for symmetric polyhedral projection",
## See '?Extending: Version Numbers' in GAP help for an explanation
## of valid version numbers. For an automatic package distribution update
## you must provide a new version number even after small changes.
Version := "1.0",
## Release date of the current version in dd/mm/yyyy format.
##
Date := "05/11/2016",
## Optional: if the package manual uses GAPDoc, you may duplicate the
## version and the release date as shown below to read them while building
## the manual using GAPDoc facilities to distibute documents across files.
## <#GAPDoc Label="PKGVERSIONDATA">
## <!ENTITY VERSION "3.4.2">
## <!ENTITY RELEASEDATE "02 June 2012">
## <#/GAPDoc>
PackageWWWHome :="https://github.com/jayant91089/symchm",
## URL of the archive(s) of the current package release, but *without*
## the format extension(s), like '.tar.gz' or '-win.zip', which are given next.
## The archive file name *must be changed* with each version of the archive
## (and probably somehow contain the package name and version).
## The paths of the files in the archive must begin with the name of the
## directory containing the package (in our "example" probably:
## example/init.g, ... or example-3.3/init.g, ... )
#
ArchiveURL := ~.PackageWWWHome,
## All provided formats as list of file extensions, separated by white
## space or commas.
## Currently recognized formats are:
## .tar.gz the UNIX standard
## .tar.bz2 compressed with 'bzip2', often smaller than with gzip
## -win.zip zip-format for DOS/Windows, text files must have DOS
## style line breaks (CRLF)
##
## In the future we may also provide .deb or .rpm formats which allow
## a convenient installation and upgrading on Linux systems.
##
# ArchiveFormats := ".tar.gz", # the others are generated automatically
ArchiveFormats := ".zip",
Persons := [
rec(
LastName := "Apte",
FirstNames := "Jayant",
IsAuthor := true,
IsMaintainer := true,
Email := "jayant91089@gmail.com",
WWWHome := "https://sites.google.com/site/jayantapteshomepage/",
PostalAddress := Concatenation( [
"Department of Electrical and Computer Engineering\n",
"Drexel University\n",
"Philadelphia, PA 19104\n"] ),
Place := "Philadelphia",
Institution := "Drexel University"
)
# provide such a record for each author and/or maintainer ...
],
## Status information. Currently the following cases are recognized:
## "accepted" for successfully refereed packages
## "submitted" for packages submitted for the refereeing
## "deposited" for packages for which the GAP developers agreed
## to distribute them with the core GAP system
## "dev" for development versions of packages
## "other" for all other packages
##
# Status := "accepted",
Status := "dev",
## You must provide the next two entries if and only if the status is
## "accepted" because is was successfully refereed:
# format: 'name (place)'
# CommunicatedBy := "Mike Atkinson (St. Andrews)",
#CommunicatedBy := "",
# format: mm/yyyy
# AcceptDate := "08/1999",
#AcceptDate := "",
## For a central overview of all packages and a collection of all package
## archives it is necessary to have two files accessible which should be
## contained in each package:
## - A README file, containing a short abstract about the package
## content and installation instructions.
## - The PackageInfo.g file you are currently reading or editing!
## You must specify URLs for these two files, these allow to automate
## the updating of package information on the GAP Website, and inclusion
## and updating of the package in the GAP distribution.
#
README_URL :=
Concatenation( ~.PackageWWWHome, "/blob/master/README" ),
PackageInfoURL :=
Concatenation( ~.PackageWWWHome, "/blob/master/PackageInfo.g" ),
## Here you must provide a short abstract explaining the package content
## in HTML format (used on the package overview Web page) and an URL
## for a Webpage with more detailed information about the package
## (not more than a few lines, less is ok):
## Please, use '<span class="pkgname">GAP</span>' and
## '<span class="pkgname">MyPKG</span>' for specifing package names.
##
# AbstractHTML := "This package provides a collection of functions for \
# computing the Smith normal form of integer matrices and some related \
# utilities.",
AbstractHTML :=
"The <span class=\"pkgname\">symchm</span> A package for symmetric polyhedral projection",
PackageDoc := rec(
# use same as in GAP
BookName := "symchm",
# format/extension can be one of .tar.gz, .tar.bz2, -win.zip, .zoo.
ArchiveURLSubset := ["doc"],
HTMLStart := "doc/chap0.html",
PDFFile := "doc/manual.pdf",
# the path to the .six file used by GAP's help system
SixFile := "doc/manual.six",
# a longer title of the book, this together with the book name should
# fit on a single text line (appears with the '?books' command in GAP)
# LongTitle := "Elementary Divisors of Integer Matrices",
LongTitle := "A package for symmetric polyhedral projection",
),
## Are there restrictions on the operating system for this package? Or does
## the package need other packages to be available?
Dependencies := rec(
# GAP version, use the version string for specifying a least version,
# prepend a '=' for specifying an exact version.
GAP := "4.5.3",
# list of pairs [package name, version], package name is case
# insensitive, exact version denoted with '=' prepended to version string.
# without these, the package will not load
# NeededOtherPackages := [["GAPDoc", "1.5"]],
NeededOtherPackages := [["qsopt_ex-interface","1.0"],["GAPDoc", "1.5"]],
# list of pairs [package name, version] as above,
# these package are will be loaded if they are available,
# but the current package will be loaded if they are not available
# SuggestedOtherPackages := [],
SuggestedOtherPackages := [],
# *Optional*: a list of pairs as above, denoting those needed packages
# that must be completely loaded before loading of the current package
# is started (if this is not possible due to a cyclic dependency
# then the current package is regarded as not loadable);
# this component should be used only if functions from the needed packages
# in question are called (or global lists or records are accessed)
# while the current package gets loaded
# OtherPackagesLoadedInAdvance := [],
# needed external conditions (programs, operating system, ...) provide
# just strings as text or
# pairs [text, URL] where URL provides further information
# about that point.
# (no automatic test will be done for this, do this in your
# 'AvailabilityTest' function below)
# ExternalConditions := []
ExternalConditions := []
),
## Provide a test function for the availability of this package.
## For packages containing nothing but GAP code, just say 'ReturnTrue' here.
## For packages which may not work or will have only partial functionality,
## use 'LogPackageLoadingMessage( PACKAGE_WARNING, ... )' statements to
## store messages which may be viewed later with `DisplayPackageLoadingLog'.
## Do not call `Print' or `Info' in the `AvailabilityTest' function of the
## package.
##
## With the package loading mechanism of GAP >=4.4, the availability
## tests of other packages, as given under .Dependencies above, will be
## done automatically and need not be included in this function.
##
#AvailabilityTest := ReturnTrue,
AvailabilityTest := function()
#local path, file;
# test for existence of the compiled binary
#path:= DirectoriesPackagePrograms( "example" );
#file:= Filename( path, "hello" );
#if file = fail then
# LogPackageLoadingMessage( PACKAGE_WARNING,
# [ "The program `hello' is not compiled,",
# "`HelloWorld()' is thus unavailable.",
# "See the installation instructions;",
# "type: ?Installing the Example package" ] );
#fi;
# if the hello binary was vital to the package we would return
# the following ...
# return file <> fail;
# since the hello binary is not vital we return ...
return true;
end,
## *Optional*: path relative to package root to a file which
## shall be read immediately before the package is loaded.
#PreloadFile := "...",
## *Optional*: the LoadPackage mechanism can produce a default banner from
## the info in this file. If you are not happy with it, you can provide
## a string here that is used as a banner. GAP decides when the banner is
## shown and when it is not shown (note the ~-syntax in this example).
PackageDoc := rec(
BookName := "symchm",
ArchiveURLSubset := ["doc"],
HTMLStart := "doc/chap0.html",
PDFFile := "doc/manual.pdf",
SixFile := "doc/manual.six",
LongTitle := "A package for symmetric polyhedral projection",
Autoload := false
),
BannerString := Concatenation(
" 888 \n",
" 888 \n",
" 888 \n",
".d8888b 888 888 88888b.d88b. .d8888b 88888b. 88888b.d88b. \n",
"88K 888 888 888 888 88b d88P 888 88b 888 888 88b \n",
"Y8888b. 888 888 888 888 888 888 888 888 888 888 888 \n",
" X88 Y88b 888 888 888 888 Y88b. 888 888 888 888 888 \n",
"88888P' Y88888 888 888 888 Y8888P 888 888 888 888 888 \n",
" 888 \n",
" Y8b d88P 488 8888 \n",
" Y88P 88 88 88 \n",
" 88 X 8888 \n",
"Loading symchm ", ~.Version, "\n",
"by ",
JoinStringsWithSeparator( List( Filtered( ~.Persons, r -> r.IsAuthor ),
r -> Concatenation(
r.FirstNames, " ", r.LastName, " (", r.WWWHome, ")\n" ) ), " " ),
"For help, type: ?symchm \n",
"-----------------------------------------------------------------------\n" )
));