Giter Site home page Giter Site logo

gap-packages / agt Goto Github PK

View Code? Open in Web Editor NEW
4.0 6.0 1.0 94.64 MB

Algebraic graph theory: A GAP package

Home Page: https://gap-packages.github.io/agt/

License: GNU General Public License v2.0

GAP 99.93% Dockerfile 0.07%
gap graphs algebraic-graph-theory strongly-regular-graphs agt

agt's People

Contributors

fingolfin avatar olexandr-konovalov avatar rhysje00 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

rhysje00

agt's Issues

Loading with OnlyNeeded option

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?

Mismatch between .gitignore and repository

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)

Clarify licensing terms

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.