Skip to content

Support package extensions (see the manual section "Extensions Provided by a Package") - #5375

Merged
fingolfin merged 4 commits into
gap-system:masterfrom
ThomasBreuer:TB_package_extensions
Feb 16, 2023
Merged

Support package extensions (see the manual section "Extensions Provided by a Package")#5375
fingolfin merged 4 commits into
gap-system:masterfrom
ThomasBreuer:TB_package_extensions

Conversation

@ThomasBreuer

@ThomasBreuerThomasBreuer commented Feb 8, 2023

Copy link
Copy Markdown
Contributor

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.g files in the PackageInfo.g file of the Example package, and to support the component in PackageMaker,
but there is no exhaustive list of supported components in PackageInfo.g files in the Reference Manual.

@ThomasBreuerThomasBreuer added kind: new feature topic: packages issues or PRs related to package handling, or specific to a package (for packages w/o issue tracker) release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes labels Feb 8, 2023
@fingolfin

Copy link
Copy Markdown
Member

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).

Comment threadlib/package.gi Outdated
Comment threadlib/package.gi Outdated
@ThomasBreuerThomasBreuer changed the title Support package extensionsSupport package extensions (see the manual section "Extensions Provided by a Package")Feb 9, 2023

@fingolfinfingolfin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

I've made some suggestions for the docs. Happy to discuss them, perhaps someone has better suggestions

Comment threaddoc/ref/gappkg.xml Outdated
Comment threaddoc/ref/gappkg.xml Outdated
Comment threaddoc/ref/gappkg.xml Outdated
Comment threaddoc/ref/gappkg.xml Outdated
Comment threaddoc/ref/gappkg.xml Outdated
Comment threaddoc/ref/gappkg.xml Outdated
- 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)
@ThomasBreuer

Copy link
Copy Markdown
ContributorAuthor

@fingolfin
fingolfin merged commit c96b815 into gap-system:masterFeb 16, 2023
@ThomasBreuer
ThomasBreuer deleted the TB_package_extensions branch February 16, 2023 16:19
ThomasBreuer added a commit to ThomasBreuer/PackageManager that referenced this pull request Feb 17, 2023
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.
fingolfin pushed a commit to gap-packages/PackageManager that referenced this pull request Mar 20, 2023
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.
fingolfin added a commit to gap-packages/quickcheck that referenced this pull request Jul 31, 2026
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.
fingolfin added a commit to gap-packages/quickcheck that referenced this pull request Jul 31, 2026
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.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind: new featurerelease notes: use titleFor PRs: the title of this PR is suitable for direct use in the release notestopic: packagesissues or PRs related to package handling, or specific to a package (for packages w/o issue tracker)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ThomasBreuer@fingolfin