Skip to content

Commit 5d24003

Browse files
added package to PackageJanitor
1 parent e7cad6e commit 5d24003

37 files changed

+1486
-306
lines changed

.github/workflows/Tests.yml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches:
6+
- "master"
7+
- "*-ci"
8+
pull_request:
9+
schedule:
10+
- cron: "0 4 * * *" # after gap-docker(-master) is rebuilt
11+
workflow_dispatch:
12+
13+
# cancel runs for pull requests on force push
14+
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-using-a-fallback-value
15+
concurrency:
16+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}-${{ github.run_attempt }}
17+
cancel-in-progress: true
18+
19+
jobs:
20+
test:
21+
strategy:
22+
matrix:
23+
image: ["ghcr.io/homalg-project/gap-docker:latest", "ghcr.io/homalg-project/gap-docker-master:latest"]
24+
fail-fast: false
25+
runs-on: ubuntu-latest
26+
container:
27+
image: ${{ matrix.image }}
28+
defaults:
29+
run:
30+
working-directory: /home/gap/.gap/pkg/
31+
env:
32+
# HOME is already set in the docker container, but GitHub Actions overwrites it
33+
HOME: /home/gap
34+
steps:
35+
- name: Keep workflow active even if repository has no activity for 60 days
36+
if: github.event_name != 'pull_request'
37+
run: |
38+
curl --fail -X PUT -H "Accept: application/vnd.github.v3+json" -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/$GITHUB_REPOSITORY/actions/workflows/Tests.yml/enable"
39+
- name: Check out repo
40+
uses: actions/checkout@v3
41+
with:
42+
# the persisted token interferes with the subsplit token used below
43+
persist-credentials: false
44+
fetch-depth: 0
45+
- name: Move checked out repo to GAP user root dir
46+
run: |
47+
cp -a $GITHUB_WORKSPACE /home/gap/.gap/pkg/
48+
- name: Prepare environment
49+
run: |
50+
cp ./Blocks/dev/ci_gaprc /home/gap/.gap/gaprc
51+
git clone --depth 1 -vv https://github.com/homalg-project/homalg_project.git
52+
- name: Build documentation of packages which we might want to reference
53+
run: |
54+
# keep this in sync with `dev/.release`
55+
if [ -d "CAP_project/CAP" ]; then make -C "CAP_project/CAP" doc; fi
56+
if [ -d "CAP_project/CompilerForCAP" ]; then make -C "CAP_project/CompilerForCAP" doc; fi
57+
if [ -d "CAP_project/MonoidalCategories" ]; then make -C "CAP_project/MonoidalCategories" doc; fi
58+
if [ -d "CAP_project/CartesianCategories" ]; then make -C "CAP_project/CartesianCategories" doc; fi
59+
if [ -d "CAP_project/AdditiveClosuresForCAP" ]; then make -C "CAP_project/AdditiveClosuresForCAP" doc; fi
60+
if [ -d "CAP_project/FreydCategoriesForCAP" ]; then make -C "CAP_project/FreydCategoriesForCAP" doc; fi
61+
if [ -d "HigherHomologicalAlgebra/ToolsForHigherHomologicalAlgebra" ]; then make -C "HigherHomologicalAlgebra/ToolsForHigherHomologicalAlgebra" doc; fi
62+
if [ -d "homalg_project/homalg" ]; then make -C "homalg_project/homalg" doc; fi
63+
if [ -d "homalg_project/Modules" ]; then make -C "homalg_project/Modules" doc; fi
64+
if [ -d "CategoricalTowers/ToolsForCategoricalTowers" ]; then make -C "CategoricalTowers/ToolsForCategoricalTowers" doc; fi
65+
if [ -d "CategoricalTowers/Toposes" ]; then make -C "CategoricalTowers/Toposes" doc; fi
66+
- name: Test Blocks
67+
run: |
68+
make -C Blocks --trace -j $(nproc) --output-sync ci-test
69+
- name: Release package or simulate release
70+
run: |
71+
cd Blocks
72+
python3 dev/process_coverage.py
73+
git config --global user.name "Bot"
74+
git config --global user.email "empty"
75+
CUR_SHA=$(git rev-parse --verify HEAD)
76+
git fetch origin gh-pages
77+
git worktree add gh-pages/ gh-pages || (echo "There was an error. Make sure there is a branch named 'gh-pages'. See https://github.com/homalg-project/PackageJanitor#error-there-was-an-error-make-sure-there-is-a-branch-named-gh-pages"; exit 1)
78+
if [ "${{ matrix.image }}" = "ghcr.io/homalg-project/gap-docker:latest" ] && [ "$CUR_SHA" = "$(git rev-parse origin/master)" ] && [ $(dirname "$GITHUB_REPOSITORY") = "homalg-project" ]; then \
79+
git checkout master; \
80+
TOKEN="${{ secrets.GITHUB_TOKEN }}" SUBSPLIT_PUSH_SECRET="${{ secrets.SUBSPLIT_PUSH_SECRET }}" ./dev/make_dist.sh; \
81+
else \
82+
TOKEN="${{ secrets.GITHUB_TOKEN }}" ./dev/simulate_dist.sh; \
83+
fi
84+
- name: Upload code coverage
85+
if: github.event_name != 'schedule' && matrix.image == 'ghcr.io/homalg-project/gap-docker:latest'
86+
env:
87+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
88+
run: |
89+
cd Blocks
90+
./dev/upload_codecov.sh

.gitignore

Lines changed: 34 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,34 @@
1-
# git-ls-files --others --exclude-from=.git/info/exclude
2-
# Lines that start with '#' are comments.
3-
# For a project mostly in C, the following would be a good set of
4-
# exclude patterns (uncomment them if you want to use them):
5-
# *.[oa]
6-
*~
7-
bin
8-
change.log
9-
VERSION
10-
public_html
11-
public_html.version
12-
doc/manual.six
13-
doc/*.pdf
14-
doc/*.html
15-
doc/*.txt
16-
doc/*.css
17-
doc/*.js
18-
doc/*Bib.xml
19-
doc/*Bib.xml.bib
20-
doc/*.aux
21-
doc/*.bbl
22-
doc/*.blg
23-
doc/*.brf
24-
doc/*.idx
25-
doc/*.ilg
26-
doc/*.ind
27-
doc/*.log
28-
doc/*.pnr
29-
doc/*.tex
30-
doc/*.toc
31-
doc/*.out
32-
doc/manual.lab
33-
*.DS_Store
34-
doc/*.xml
35-
maketest.g
1+
/doc/chap*.html
2+
/doc/chap*.txt
3+
/doc/*.css
4+
/doc/*.js
5+
/doc/chooser.html
6+
/doc/*.aux
7+
/doc/*.bbl
8+
/doc/*.blg
9+
/doc/*.brf
10+
/doc/*.idx
11+
/doc/*.ilg
12+
/doc/*.ind
13+
/doc/*.lab
14+
/doc/*.log
15+
/doc/*.out
16+
/doc/*.pnr
17+
/doc/*.six
18+
/doc/*.tex
19+
/doc/*.toc
20+
/doc/manual.pdf
21+
/doc/_*.xml
22+
23+
/bin/
24+
/gen/
25+
/Makefile
26+
27+
/tmp/
28+
/gh-pages/
29+
30+
/coverage.json
31+
/doc/*.xml
32+
/doc_tmp/
33+
/stats
34+
/tst/blocks*.tst

COPYING renamed to LICENSE

Lines changed: 69 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,12 @@
1-
The Blocks package is free software; you can redistribute and/or
2-
modify it under the terms of the GNU General Public License as
3-
published by the Free Software Foundation; either version 2 of the
4-
License, or (at your option) any later version.
5-
6-
The AutoDoc package is distributed in the hope that it will be useful,
7-
but WITHOUT ANY WARRANTY; without even the implied warranty of
8-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9-
General Public License for more details.
10-
11-
Version 2 of the GNU General Public License follows.
12-
13-
GNU GENERAL PUBLIC LICENSE
14-
Version 2, June 1991
1+
GNU GENERAL PUBLIC LICENSE
2+
Version 2, June 1991
153

164
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
175
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
186
Everyone is permitted to copy and distribute verbatim copies
197
of this license document, but changing it is not allowed.
208

21-
Preamble
9+
Preamble
2210

2311
The licenses for most software are designed to take away your
2412
freedom to share and change it. By contrast, the GNU General Public
@@ -67,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
6755

6856
The precise terms and conditions for copying, distribution and
6957
modification follow.
70-
71-
GNU GENERAL PUBLIC LICENSE
58+
59+
GNU GENERAL PUBLIC LICENSE
7260
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
7361

7462
0. This License applies to any program or other work which contains
@@ -122,7 +110,7 @@ above, provided that you also meet all of these conditions:
122110
License. (Exception: if the Program itself is interactive but
123111
does not normally print such an announcement, your work based on
124112
the Program is not required to print an announcement.)
125-
113+
126114
These requirements apply to the modified work as a whole. If
127115
identifiable sections of that work are not derived from the Program,
128116
and can be reasonably considered independent and separate works in
@@ -180,7 +168,7 @@ access to copy from a designated place, then offering equivalent
180168
access to copy the source code from the same place counts as
181169
distribution of the source code, even though third parties are not
182170
compelled to copy the source along with the object code.
183-
171+
184172
4. You may not copy, modify, sublicense, or distribute the Program
185173
except as expressly provided under this License. Any attempt
186174
otherwise to copy, modify, sublicense or distribute the Program is
@@ -237,7 +225,7 @@ impose that choice.
237225

238226
This section is intended to make thoroughly clear what is believed to
239227
be a consequence of the rest of this License.
240-
228+
241229
8. If the distribution and/or use of the Program is restricted in
242230
certain countries either by patents or by copyrighted interfaces, the
243231
original copyright holder who places the Program under this License
@@ -267,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
267255
of preserving the free status of all derivatives of our free software and
268256
of promoting the sharing and reuse of software generally.
269257

270-
NO WARRANTY
258+
NO WARRANTY
271259

272260
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
273261
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@@ -289,5 +277,63 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
289277
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
290278
POSSIBILITY OF SUCH DAMAGES.
291279

292-
END OF TERMS AND CONDITIONS
293-
280+
END OF TERMS AND CONDITIONS
281+
282+
How to Apply These Terms to Your New Programs
283+
284+
If you develop a new program, and you want it to be of the greatest
285+
possible use to the public, the best way to achieve this is to make it
286+
free software which everyone can redistribute and change under these terms.
287+
288+
To do so, attach the following notices to the program. It is safest
289+
to attach them to the start of each source file to most effectively
290+
convey the exclusion of warranty; and each file should have at least
291+
the "copyright" line and a pointer to where the full notice is found.
292+
293+
<one line to give the program's name and a brief idea of what it does.>
294+
Copyright (C) <year> <name of author>
295+
296+
This program is free software; you can redistribute it and/or modify
297+
it under the terms of the GNU General Public License as published by
298+
the Free Software Foundation; either version 2 of the License, or
299+
(at your option) any later version.
300+
301+
This program is distributed in the hope that it will be useful,
302+
but WITHOUT ANY WARRANTY; without even the implied warranty of
303+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304+
GNU General Public License for more details.
305+
306+
You should have received a copy of the GNU General Public License along
307+
with this program; if not, write to the Free Software Foundation, Inc.,
308+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309+
310+
Also add information on how to contact you by electronic and paper mail.
311+
312+
If the program is interactive, make it output a short notice like this
313+
when it starts in an interactive mode:
314+
315+
Gnomovision version 69, Copyright (C) year name of author
316+
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317+
This is free software, and you are welcome to redistribute it
318+
under certain conditions; type `show c' for details.
319+
320+
The hypothetical commands `show w' and `show c' should show the appropriate
321+
parts of the General Public License. Of course, the commands you use may
322+
be called something other than `show w' and `show c'; they could even be
323+
mouse-clicks or menu items--whatever suits your program.
324+
325+
You should also get your employer (if you work as a programmer) or your
326+
school, if any, to sign a "copyright disclaimer" for the program, if
327+
necessary. Here is a sample; alter the names:
328+
329+
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330+
`Gnomovision' (which makes passes at compilers) written by James Hacker.
331+
332+
<signature of Ty Coon>, 1 April 1989
333+
Ty Coon, President of Vice
334+
335+
This General Public License does not permit incorporating your program into
336+
proprietary programs. If your program is a subroutine library, you may
337+
consider it more useful to permit linking proprietary applications with the
338+
library. If this is what you want to do, use the GNU Lesser General
339+
Public License instead of this License.

PackageInfo.g

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
1+
# SPDX-License-Identifier: GPL-2.0-or-later
2+
# Blocks: Tools for block theory
3+
#
4+
# This file contains package meta data. For additional information on
5+
# the meaning and correct usage of these fields, please consult the
6+
# manual of the "Example" package as well as the comments in its
7+
# PackageInfo.g file.
8+
#
19
SetPackageInfo( rec(
210

311
PackageName := "Blocks",
4-
512
Subtitle := "Tools for block theory",
13+
Version := "2026.03-01",
614

7-
Version := Maximum( [
8-
"2020.01.01", ## Mohamed's version
9-
## this line prevents merge conflicts
10-
] ),
11-
12-
# this avoids git-merge conflicts
13-
Date := ~.Version{[ 1 .. 10 ]},
14-
Date := Concatenation( ~.Date{[ 9, 10 ]}, "/", ~.Date{[ 6, 7 ]}, "/", ~.Date{[ 1 .. 4 ]} ),
15-
16-
ArchiveURL := Concatenation( "http://homalg.math.rwth-aachen.de/~barakat/homalg-project/Blocks-", ~.Version ),
17-
18-
ArchiveFormats := ".tar.gz",
15+
Date := (function ( ) if IsBound( GAPInfo.SystemEnvironment.GAP_PKG_RELEASE_DATE ) then return GAPInfo.SystemEnvironment.GAP_PKG_RELEASE_DATE; else return Concatenation( ~.Version{[ 1 .. 4 ]}, "-", ~.Version{[ 6, 7 ]}, "-01" ); fi; end)( ),
16+
License := "GPL-2.0-or-later",
1917

2018
Persons := [
2119
rec(
@@ -36,12 +34,31 @@ Persons := [
3634

3735
],
3836

37+
# BEGIN URLS
38+
SourceRepository := rec(
39+
Type := "git",
40+
URL := "https://github.com/homalg-project/Blocks",
41+
),
42+
IssueTrackerURL := Concatenation( ~.SourceRepository.URL, "/issues" ),
43+
PackageWWWHome := "https://homalg-project.github.io/pkg/Blocks",
44+
PackageInfoURL := "https://homalg-project.github.io/Blocks/PackageInfo.g",
45+
README_URL := "https://homalg-project.github.io/Blocks/README.md",
46+
ArchiveURL := Concatenation( "https://github.com/homalg-project/Blocks/releases/download/v", ~.Version, "/Blocks-", ~.Version ),
47+
# END URLS
48+
49+
ArchiveFormats := ".tar.gz .zip",
50+
51+
## Status information. Currently the following cases are recognized:
52+
## "accepted" for successfully refereed packages
53+
## "submitted" for packages submitted for the refereeing
54+
## "deposited" for packages for which the GAP developers agreed
55+
## to distribute them with the core GAP system
56+
## "dev" for development versions of packages
57+
## "other" for all other packages
58+
##
3959
Status := "dev",
4060

41-
README_URL :=
42-
"http://homalg.math.rwth-aachen.de/~barakat/homalg-project/Blocks/README.Blocks",
43-
PackageInfoURL :=
44-
"http://homalg.math.rwth-aachen.de/~barakat/homalg-project/Blocks/PackageInfo.g",
61+
AbstractHTML := "",
4562

4663
PackageDoc := rec(
4764
BookName := "Blocks",
@@ -53,24 +70,24 @@ PackageDoc := rec(
5370
),
5471

5572
Dependencies := rec(
56-
GAP := ">=4.4",
73+
GAP := ">= 4.13.0",
5774
NeededOtherPackages := [
58-
[ "AutoDoc", ">= 2013.12.04" ],
5975
[ "homalg", ">= 2013.09.03" ],
6076
[ "Modules", ">= 2015.01.13" ],
6177
[ "RingsForHomalg", ">= 2013.08.22" ],
6278
[ "GaussForHomalg", ">= 2013.06.26" ],
6379
[ "MatricesForHomalg", ">= 2013.10.27" ],
6480
[ "ctblocks", ">= 0.9.1" ],
6581
[ "LAGUNA", ">= 3.6.3" ],
66-
[ "GAPDoc", ">= 1.1" ]
6782
],
6883
SuggestedOtherPackages := [ ],
6984
ExternalConditions := [ ]
7085
),
7186

7287
AvailabilityTest := ReturnTrue,
7388

74-
Keywords := [ "block", "defect group" ]
89+
Keywords := [ "block", "defect group" ],
90+
91+
TestFile := "tst/testall.g",
7592

7693
));

0 commit comments

Comments
 (0)