From be825186976cd7127bb74ea25ea94389225ae295 Mon Sep 17 00:00:00 2001 From: Glen Whitney Date: Thu, 16 Aug 2018 21:12:38 -0700 Subject: [PATCH] Organize raq into standard GAP package file tree In preparation for a beta release of the raq package, it's important for it to be conformant to current GAP package conventions. Therefore, I have rearranged the file tree to match the Example package quite thoroughly. In so doing, this laid the foundation for the following aspects of the package: - Package documentation. Added makedoc.g at the top level to generate AutoDoc/GAPDoc documentation for raq. Currently the documentation is empty; future development will bring the documentation to cover all existing code. - Package tests. The basic structure to add .tst files in the tst subdirectory of the package is in place. The coverage of tests provided in this commit is minimal; again, further development will extend the test coverage. In addition, PackageInfo.g has been elaborated to include much more complete information about raq and where it will (initially) be posted on line. Resolves: #1 --- CHANGES | 3 +++ COPYING.txt | 3 --- PackageInfo.g | 48 +++++++++++++---------------------- README.md | 21 +++++++++++++-- doc/.gitignore | 19 ++++++++++++++ doc/README.md | 3 +++ init.g | 10 ++++---- {gap => lib}/byconj.gd | 0 {gap => lib}/byconj.gi | 0 {gap => lib}/bytable.gd | 0 {gap => lib}/bytable.gi | 0 {gap => lib}/constructions.gd | 0 {gap => lib}/constructions.gi | 0 {gap => lib}/structure.gd | 0 {gap => lib}/structure.gi | 0 makedoc.g | 6 +++++ read.g | 10 ++++---- tst/bytableAndStructure.tst | 25 ++++++++++++++++++ tst/testall.g | 10 ++++++++ 19 files changed, 113 insertions(+), 45 deletions(-) create mode 100644 CHANGES delete mode 100644 COPYING.txt create mode 100644 doc/.gitignore create mode 100644 doc/README.md rename {gap => lib}/byconj.gd (100%) rename {gap => lib}/byconj.gi (100%) rename {gap => lib}/bytable.gd (100%) rename {gap => lib}/bytable.gi (100%) rename {gap => lib}/constructions.gd (100%) rename {gap => lib}/constructions.gi (100%) rename {gap => lib}/structure.gd (100%) rename {gap => lib}/structure.gi (100%) create mode 100644 makedoc.g create mode 100644 tst/bytableAndStructure.tst create mode 100644 tst/testall.g diff --git a/CHANGES b/CHANGES new file mode 100644 index 0000000..a309da5 --- /dev/null +++ b/CHANGES @@ -0,0 +1,3 @@ +Version 0.1: 2018/10/01 + Initial beta release. GW + diff --git a/COPYING.txt b/COPYING.txt deleted file mode 100644 index 8eb9882..0000000 --- a/COPYING.txt +++ /dev/null @@ -1,3 +0,0 @@ -Code in this package is made available under whatever terms preferred by -Leandro Vendramin and Matias Graña, the authors of the RIG package on which it -is (more or less) based. diff --git a/PackageInfo.g b/PackageInfo.g index 0576b7e..3fa8d8b 100644 --- a/PackageInfo.g +++ b/PackageInfo.g @@ -2,9 +2,14 @@ SetPackageInfo( rec( PackageName := "raq", Subtitle := "Racks And Quandles in GAP", Version := "0.1.0", -Date := "2017-Oct-17", -ArchiveURL := "", -ArchiveFormats := "-win.zip .tar.gz", +Date := "2018-Oct-1", +PackageWWWHome := "http://code.studioinfinity.org/raq/wiki", +SourceRepository := rec( Type := "git", + URL := "http://code.studioinfity.org/raq" ), +IssueTrackerURL := "http://code.studioinfinity.org/raq/issues", +SupportEmail := "glen@studioinfinity.org", +ArchiveURL := "http://code.studioinfinity.org/raq/releases", +ArchiveFormats := ".tar.gz", Persons := [ rec( @@ -12,28 +17,14 @@ Persons := [ FirstNames := "Glen", IsAuthor := true, IsMaintainer := true, - Email := "gwhitney@post.harvard.edu", - WWWHome := "http://mathwalks.org", + Email := "glen@studioinfinity.org", + WWWHome := "http://studioinfinity.org", PostalAddress := Concatenation( [ "523 Rialto Ave.\n", "Venice, CA 90291\n", "USA" ] ), Place := "Venice", - Institution := "mathwalks.org" - ), - rec( - LastName := "Vendramin", - FirstNames := "Leandro", - IsAuthor := true, - IsMaintainer := false, - Email := "lvendramin@dm.uba.ar", - WWWHome := "http://mate.dm.uba.ar/~lvendram/", - PostalAddress := Concatenation( [ - "Departamento de matemática, FCEyN, UBA", - "Ciudad Universitaria, Pab. 1,\n", - "Buenos Aires, Argentina" ] ), - Place := "Buenos Aires", - Institution := "UBA" + Institution := "studioInfinity.org" ) ], @@ -44,12 +35,11 @@ Persons := [ ## "dev" for development versions of packages ## "other" for all other packages ## -Status := "dev", +Status := "other", -README_URL := - "", +README_URL := "http://code.studioinfinity.org/raq/src/branch/master/README.md", PackageInfoURL := - "", + "http://code.studioinfinity.org/raq/src/branch/master/PackageInfo.g", AbstractHTML := Concatenation( "The RAQ package provides researchers ", @@ -59,18 +49,16 @@ AbstractHTML := Concatenation( "established in the LOOPS package, and ", "and provides enhanced functionality, libraries, and implementations ", "as compared to the earlier RIG package ", - "on which RAQ is loosely modeled." + "on which RAQ is generally modeled." ), - -PackageWWWHome := "", PackageDoc := rec( BookName := "raq", - ArchiveURLSubset := ["doc", "htm"], + ArchiveURLSubset := ["doc"], HTMLStart := "doc/chap0.html", PDFFile := "doc/manual.pdf", SixFile := "doc/manual.six", - LongTitle := "The RAQ Package: Racks And Quandles in GAP", + LongTitle := "The raq Package: Racks And Quandles in GAP", Autoload := true # only for the documentation, TEMPORARILY TURNED OFF ), @@ -83,7 +71,7 @@ Dependencies := rec( ), AvailabilityTest := ReturnTrue, -BannerString := Concatenation("--\nRAQ, Racks And Quandles in GAP, Version ", +BannerString := Concatenation("--\nraq, Racks And Quandles in GAP, Version ", ~.Version, ".\n--\n"), Autoload := false, # false for deposited packages diff --git a/README.md b/README.md index c3dce63..4c7a1fb 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,20 @@ -# raq +# raq, a GAP System package for Racks And Quandles. -RAQ, a GAP System package for Racks And Quandles. \ No newline at end of file +* Website: code.studioinfinity.org/raq/wiki +* Repository: code.studioinfinity.org/raq + +This package provides a variety of facilities for computing with one-sided +quasigroups, racks, and quandles in GAP. + +It uses no external binaries, so installation consists only of placing the raq +file tree in a directory in your package search path, e.g. the pkg directory of +your GAP installation, or perhaps the .gap/pkg subdirectory of your home +directory. + +Authors/maintainers of raq: Glen Whitney + +The authors of raq would like to acknowledge their debt to the creators of +RIG, an earlier package for Racks in GAP; chaief among them is Leandro +Vendramin. RIG was an inspiration for the creation of raq, and using and +reading that package suggested many features needed in the development of +raq. diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 0000000..90476b2 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1,19 @@ +*.xml +*.html +*.txt +*.css +*.js +*.lab +*.pdf +*.six +*.aux +*.bbl +*.blg +*.idx +*.ilg +*.ind +*.log +*.out +*.pnr +*.tex +*.toc diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 0000000..25bb005 --- /dev/null +++ b/doc/README.md @@ -0,0 +1,3 @@ +This directory is currently empty in the repository, except for this file, +since its entire contents are generated by AutoDoc (see the makedoc.g file in +the main package directory, one level up from this directory.) diff --git a/init.g b/init.g index 41f9afe..9ee8203 100644 --- a/init.g +++ b/init.g @@ -1,13 +1,13 @@ -## init.g RAQ: Racks and Quandles in GAP +## init.g raq # Definitions, generation, and elementary properties and operations. -ReadPackage("raq", "gap/structure.gd"); +ReadPackage("raq", "lib/structure.gd"); # Quasigroups, racks, and quandles by multiplication tables -ReadPackage("raq", "gap/bytable.gd"); +ReadPackage("raq", "lib/bytable.gd"); # Quandles by conjugation -ReadPackage("raq", "gap/byconj.gd"); +ReadPackage("raq", "lib/byconj.gd"); # Other quandle constructions -ReadPackage("raq", "gap/constructions.gd"); +ReadPackage("raq", "lib/constructions.gd"); diff --git a/gap/byconj.gd b/lib/byconj.gd similarity index 100% rename from gap/byconj.gd rename to lib/byconj.gd diff --git a/gap/byconj.gi b/lib/byconj.gi similarity index 100% rename from gap/byconj.gi rename to lib/byconj.gi diff --git a/gap/bytable.gd b/lib/bytable.gd similarity index 100% rename from gap/bytable.gd rename to lib/bytable.gd diff --git a/gap/bytable.gi b/lib/bytable.gi similarity index 100% rename from gap/bytable.gi rename to lib/bytable.gi diff --git a/gap/constructions.gd b/lib/constructions.gd similarity index 100% rename from gap/constructions.gd rename to lib/constructions.gd diff --git a/gap/constructions.gi b/lib/constructions.gi similarity index 100% rename from gap/constructions.gi rename to lib/constructions.gi diff --git a/gap/structure.gd b/lib/structure.gd similarity index 100% rename from gap/structure.gd rename to lib/structure.gd diff --git a/gap/structure.gi b/lib/structure.gi similarity index 100% rename from gap/structure.gi rename to lib/structure.gi diff --git a/makedoc.g b/makedoc.g new file mode 100644 index 0000000..9fb12cf --- /dev/null +++ b/makedoc.g @@ -0,0 +1,6 @@ +# makedoc.g raq +# build the documentation for raq via AutoDoc + +LoadPackage("AutoDoc"); +AutoDoc(rec(scaffold := true, autodoc := true)); +QUIT; diff --git a/read.g b/read.g index 05462e3..6006c4b 100644 --- a/read.g +++ b/read.g @@ -1,13 +1,13 @@ -## read.g RAQ +## read.g raq # Definitions, representations, and elementary operations. -ReadPackage("raq", "gap/structure.gi"); +ReadPackage("raq", "lib/structure.gi"); # Quasigroups, racks, and quandles by multiplication tables -ReadPackage("raq", "gap/bytable.gi"); +ReadPackage("raq", "lib/bytable.gi"); # Quandles by conjugation -ReadPackage("raq", "gap/byconj.gi"); +ReadPackage("raq", "lib/byconj.gi"); # Other quandle constructions -ReadPackage("raq", "gap/constructions.gi"); +ReadPackage("raq", "lib/constructions.gi"); diff --git a/tst/bytableAndStructure.tst b/tst/bytableAndStructure.tst new file mode 100644 index 0000000..b2ca368 --- /dev/null +++ b/tst/bytableAndStructure.tst @@ -0,0 +1,25 @@ +# bytableAndStructure.tst raq +# Test the functions in the bytable and structure files + +gap> START_TEST("raq package: bytableAndStructure.tst"); +gap> t4 := [[1,3,2,4], [3,2,1,4], [2,1,3,4], [1,2,3,4]]; +[ [ 1, 3, 2, 4 ], [ 3, 2, 1, 4 ], [ 2, 1, 3, 4 ], [ 1, 2, 3, 4 ] ] +gap> IsRightSelfDistributiveTable(t4); +false +gap> IsLeftSelfDistributiveTable(t4); +true +gap> IsElementwiseIdempotentTable(t4); +true +gap> l4 := LeftQuasigroupByMultiplicationTable(t4); + +gap> Elements(l4); +[ lA1, lA2, lA3, lA4 ] +gap> IsLeftQuasigroup(l4); +true +gap> q1 := MagmaElement(l4,1); q2 := MagmaElement(l4,2); +lA1 +lA2 +gap> LeftQuotient(q1,q2); +lA3 +gap> STOP_TEST( "bytableAndStructure.tst", 10000); + diff --git a/tst/testall.g b/tst/testall.g new file mode 100644 index 0000000..354a862 --- /dev/null +++ b/tst/testall.g @@ -0,0 +1,10 @@ +# tst/testall.g raq + +LoadPackage( "raq" ); + +TestDirectory(DirectoriesPackageLibrary("raq","tst"), + rec(exitGAP := true, + testOptions := rec(compareFunction := "uptowhitespace")) + ); + +FORCE_QUIT_GAP(1); # should be unreachable