Uh oh!
There was an error while loading. Please reload this page.
Support package extensions (see the manual section "Extensions Provided by a Package") - #5375
Conversation
fingolfin
commented
Feb 8, 2023
Adding an exhaustive list of supported PackageInfo.g entries somewhere is one of our open issues (It could be in the reference manual, or in a separate "package author guides", or whatever; once it exists, moving it wouldn't be hard either). |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
fingolfin
left a comment
There was a problem hiding this comment.
Great!
I've made some suggestions for the docs. Happy to discuss them, perhaps someone has better suggestions
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
as proposed in issue gap-system#5372
- addresses the comments: changed the `Extensions` format to be a list of records, such that the condition is given by a list of package/version pairs - added a test
- addressed the comments, - added the `Extensions` component to the documented components of `PackageInfo.g`, - improved the description of `PackageInfo.g` (continuing what has been done in gap-system#5376)
d9d842d to
e87bce0CompareThomasBreuer
commented
Feb 15, 2023
The failure of "Wrap releases ..." is due to an inconsistency of https://github.com/gap-system/PackageDistro/releases/download/latest/package-infos.json.gz.sha256 and https://github.com/gap-system/PackageDistro/releases/download/latest/package-infos.json.gz |
The Julia package GAP.jl provides an interface between GAP and Julia. It uses PackageManager for installing and loading GAP packages. As soon as GAP has access to a Julia session, a natural way to download files is via the Julia package Downloads.jl. Therefore, GAP.jl had replaced `PKGMAN_DownloadURL` by a Julia function that uses this approach. Since pull request gap-system/gap#5375 got merged, we can use its new feature such that the PackageManager package can perform this replacement under the condition that GAP.jl is available in the GAP session.
The Julia package GAP.jl provides an interface between GAP and Julia. It uses PackageManager for installing and loading GAP packages. As soon as GAP has access to a Julia session, a natural way to download files is via the Julia package Downloads.jl. Therefore, GAP.jl had replaced `PKGMAN_DownloadURL` by a Julia function that uses this approach. Since pull request gap-system/gap#5375 got merged, we can use its new feature such that the PackageManager package can perform this replacement under the condition that GAP.jl is available in the GAP session.
The `Extensions` field in PackageInfo.g, which we use to load gap/digraphs.g once Digraphs is available, is only supported since GAP 4.13 (see gap-system/gap#5375). Older GAP versions silently ignore unknown PackageInfo.g components, so on GAP 4.11/4.12 the extension is never read, QC_RegisterFilterGen(IsDigraph, ...) never runs, and tst/digraphs.tst fails with Error, Filter with no random generator: <Category "IsDigraph"> The previous bound of ">= 4.11" was never actually tested, since the CI matrix hardcoded stable-4.13 as its oldest branch. Testing against the 'minimal' GAP version derived from PackageInfo.g exposed this.
The `Extensions` field in PackageInfo.g, which we use to load gap/digraphs.g once Digraphs is available, is only supported since GAP 4.13 (see gap-system/gap#5375). Older GAP versions silently ignore unknown PackageInfo.g components, so on GAP 4.11/4.12 the extension is never read, QC_RegisterFilterGen(IsDigraph, ...) never runs, and tst/digraphs.tst fails with Error, Filter with no random generator: <Category "IsDigraph"> The previous bound of ">= 4.11" was never actually tested, since the CI matrix hardcoded stable-4.13 as its oldest branch. Testing against the 'minimal' GAP version derived from PackageInfo.g exposed this.
The feature is proposed in issue #5372.
Eventually the feature must be documented.(And the tile must be extended by a link to the relevant manual section, in order to serve as an entry for the release notes.)
Concerning the documentatiion, as far as I understand, it is recommended to add the new component in
PackageInfo.gfiles in thePackageInfo.gfile of the Example package, and to support the component in PackageMaker,but there is no exhaustive list of supported components in
PackageInfo.gfiles in the Reference Manual.