gap-packages / agt Goto Github PK
View Code? Open in Web Editor NEWAlgebraic graph theory: A GAP package
Home Page: https://gap-packages.github.io/agt/
License: GNU General Public License v2.0
Algebraic graph theory: A GAP package
Home Page: https://gap-packages.github.io/agt/
License: GNU General Public License v2.0
I looked at the issue mentioned in gap-system/gap-distribution#104.
What happens is an interaction between Grape and Digraphs, caused by the fact that when we call LoadPackage("agt" : OnlyNeeded)
, then OnlyNeeded
becomes a global option. Now agt dependencies have
NeededOtherPackages := [["GAPDoc", "1.5"],["grape","4.8"],["design","1.6"],["Digraphs","0.12.2"]],
and each of those packages will be loaded with the same OnlyNeeded
option (I suppose). But Digraphs has this:
BindGlobal("DIGRAPHS_IsGrapeLoaded",
IsPackageMarkedForLoading("grape", "4.8.1"));
if not DIGRAPHS_IsGrapeLoaded then
IsGraph := ReturnFalse;
Vertices := IdFunc;
Adjacency := IdFunc;
fi;
and apparently DIGRAPHS_IsGrapeLoaded=false
and IsGraph
and Vertices
are then defined as above. Next, GAP tries to load GRAPE as needed package and clearly this causes an error.
Any ideas how to fix this @fingolfin @james-d-mitchell ? One is to withdraw tests with OnlyNeeded
option (or let them fail without failing the test) - but they are useful to catch undocumented dependencies. Another is to review relations between GRAPE and Digraphs - the change to allow Digraphs to load without GRAPE has been made 5 years ago, do we still need it?
Your .gitignore among other things lists these files:
/srglib/Validated.g
/srglib/NotInvalidated.g
/srglib/Enumerated.g
/srglib/BrouwerParametersold.g
/srglib/Available.g
/srglib/SpenceFileToGAP.m
Yet these files are actually in the repository. That makes no sense: either those files should be removed from the repository; or else these lines be removed from .gitignore
.
BTW, if you simply don't want these files to be in releases, you can edit the .release
script to delete them during the release process (assuming you are using ReleaseTools to make releases)
Please add this package to
https://github.com/gap-infra/gap-docker-pkg-tests-master-devel/blob/master/.travis.yml
and
https://github.com/gap-infra/gap-docker-pkg-tests-stable-4.11-devel/blob/master/.travis.yml
This explains how to do it:
This package still has URLs like https://travis-ci.org/rhysje00/agt in various places. I recommend to git grep rhysje00
through the repository to find all affected places
After #2, add a line to https://github.com/gap-system/gap-distribution/blob/master/DistributionUpdate/PackageUpdate/currentPackageInfoURLList with the URL of PackageInfo.g and email to GAP Support with the suggestion to deposit this package.
The README just refers to "the terms of the GNU General Public License" but does not specify which version. It also points to the LICENSE
file, which has GPL 3, but it is left unclear whether now GPL 3 is indeed the license, or "GPL 3 or later", or something else. The README.md should make that clear.
In general, I would recommend to use the "... or later" variant as it can help simplify things in the future. Here is the "standard" text for that:
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Also, if this code is entirely written by you, please consider whether "GPL 2 or later" would also be acceptable for you, as that would match the licensing terms of GAP itself and thus make life of downstream packagers easier. That said, it is of course your choice.
Finally, I would appreciate if you were to add a suitable License
field to PackageInfo.g
. See e.g. here https://github.com/gap-packages/io/blob/master/PackageInfo.g (any SPDX license ID is acceptable).
Specifically:
$ ls -al doc/mathjax
lrwxr-xr-x 1 mhorn staff 29 Dec 14 16:54 doc/mathjax -> /usr/share/javascript/mathjax
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.