Skip to content

Commit 120eac8

Browse files
authored
Merge pull request #1256 from zickgraf/PackageJanitor
Apply PackageJanitor
2 parents 991ad9a + 22f4b0b commit 120eac8

File tree

11 files changed

+388
-177
lines changed

11 files changed

+388
-177
lines changed

.github/workflows/Tests.yml

Lines changed: 47 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -25,47 +25,64 @@ jobs:
2525
runs-on: ubuntu-latest
2626
container:
2727
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
2834
steps:
29-
# keep workflow active even if repository has no activity for 60 days (do not execute for pull requests)
30-
- run: '[ "$GITHUB_EVENT_NAME" = "pull_request" ] || 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'
31-
- uses: actions/checkout@v3
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
3241
with:
3342
# the persisted token interferes with the subsplit token used below
3443
persist-credentials: false
3544
fetch-depth: 0
36-
- run: cp -a $GITHUB_WORKSPACE /home/gap/.gap/pkg/
37-
- run: |
38-
export HOME="/home/gap"
39-
cd /home/gap/.gap/pkg/
40-
cp ./CAP_project/ci_gaprc /home/gap/.gap/gaprc
41-
git clone --depth 1 https://github.com/gap-packages/AutoDoc.git
42-
git clone --depth 1 https://github.com/homalg-project/homalg_project.git
43-
# set SOURCE_DATE_EPOCH for reproducible PDFs
44-
export SOURCE_DATE_EPOCH=0
45-
# build documentation of packages which we might want to reference, keep this in sync with `release-gap-package`
46-
[ -d "CAP_project/CAP" ] && make -C "CAP_project/CAP" doc
47-
[ -d "CAP_project/CompilerForCAP" ] && make -C "CAP_project/CompilerForCAP" doc
48-
[ -d "CAP_project/MonoidalCategories" ] && make -C "CAP_project/MonoidalCategories" doc
49-
[ -d "CAP_project/CartesianCategories" ] && make -C "CAP_project/CartesianCategories" doc
50-
[ -d "CAP_project/FreydCategoriesForCAP" ] && make -C "CAP_project/FreydCategoriesForCAP" doc
51-
[ -d "HigherHomologicalAlgebra/ToolsForHigherHomologicalAlgebra" ] && make -C "HigherHomologicalAlgebra/ToolsForHigherHomologicalAlgebra" doc
52-
[ -d "homalg_project/homalg" ] && make -C "homalg_project/homalg" doc
53-
[ -d "homalg_project/Modules" ] && make -C "homalg_project/Modules" doc
54-
[ -d "Toposes" ] && make -C "Toposes" doc
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 ./CAP_project/dev/ci_gaprc /home/gap/.gap/gaprc
51+
git clone --depth 1 -vv https://github.com/gap-packages/AutoDoc.git
52+
git clone --depth 1 -vv https://github.com/homalg-project/homalg_project.git
53+
- name: Build documentation of packages which we might want to reference
54+
run: |
55+
# keep this in sync with `dev/.release`
56+
if [ -d "CAP_project/CAP" ]; then make -C "CAP_project/CAP" doc; fi
57+
if [ -d "CAP_project/CompilerForCAP" ]; then make -C "CAP_project/CompilerForCAP" doc; fi
58+
if [ -d "CAP_project/MonoidalCategories" ]; then make -C "CAP_project/MonoidalCategories" doc; fi
59+
if [ -d "CAP_project/CartesianCategories" ]; then make -C "CAP_project/CartesianCategories" 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/CategoryConstructor" ]; then make -C "CategoricalTowers/CategoryConstructor" doc; fi
65+
if [ -d "CategoricalTowers/Toposes" ]; then make -C "CategoricalTowers/Toposes" doc; fi
66+
- name: Test CAP_project
67+
run: |
5568
make -C CAP_project -j $(nproc) --output-sync ci-test
69+
- name: Release package or simulate release
70+
run: |
5671
cd CAP_project
57-
LANG=C.UTF-8 python3 process_coverage.py
58-
[ "$GITHUB_EVENT_NAME" != "schedule" ] && [ "${{ matrix.image }}" = "ghcr.io/homalg-project/gap-docker-master:latest" ] && ./upload_codecov.sh
72+
python3 dev/process_coverage.py
5973
git config --global user.name "Bot"
6074
git config --global user.email "empty"
6175
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)
6278
if [ "${{ matrix.image }}" = "ghcr.io/homalg-project/gap-docker:latest" ] && [ "$CUR_SHA" = "$(git rev-parse origin/master)" ] && [ $(dirname "$GITHUB_REPOSITORY") = "homalg-project" ]; then \
63-
git fetch origin gh-pages; \
64-
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); \
6579
git checkout master; \
66-
LANG=C.UTF-8 ./make_dist.sh --token "${{ secrets.GITHUB_TOKEN }}"; \
67-
# publish subsplits
68-
git subtree split --prefix=FreydCategoriesForCAP -b FreydCategoriesForCAP-split && git push https://homalg-project:${{ secrets.SUBSPLIT_PUSH_SECRET }}@github.com/homalg-project/FreydCategoriesForCAP FreydCategoriesForCAP-split:master; \
80+
TOKEN="${{ secrets.GITHUB_TOKEN }}" SUBSPLIT_PUSH_SECRET="${{ secrets.SUBSPLIT_PUSH_SECRET }}" ./dev/make_dist.sh; \
6981
else \
70-
echo "Not making a release."; \
82+
TOKEN="${{ secrets.GITHUB_TOKEN }}" ./dev/simulate_dist.sh; \
7183
fi
84+
- name: Upload code coverage
85+
if: github.event_name != 'schedule' && matrix.image == 'ghcr.io/homalg-project/gap-docker-master:latest'
86+
run: |
87+
cd CAP_project
88+
./dev/upload_codecov.sh

dev/.release

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/bin/bash
2+
# This script is intended to be run by the release-gap-package script which is
3+
# part of the the ReleaseTools for GAP:
4+
#
5+
# https://github.com/gap-system/ReleaseTools
6+
7+
set -e
8+
9+
# adjust date
10+
# Note that we cannot use sed's `-i` option for in-place editing, as
11+
# that is a non-portable extension of POSIX, which works differently in
12+
# BSD and GNU make.
13+
sed "s;Date := .*;Date := \"$(date +%d/%m/%Y)\",;" PackageInfo.g > PackageInfo.g.bak
14+
mv PackageInfo.g.bak PackageInfo.g
15+
16+
# replace links to packages which are possibly referenced in the documentation, keep this in sync with `Tests.yml.j2`
17+
for package in CAP_project/CAP CAP_project/CompilerForCAP CAP_project/MonoidalCategories CAP_project/CartesianCategories CAP_project/FreydCategoriesForCAP HigherHomologicalAlgebra/ToolsForHigherHomologicalAlgebra homalg_project/homalg homalg_project/Modules CategoricalTowers/CategoryConstructor CategoricalTowers/Toposes; do
18+
19+
# adjust links to other manuals
20+
# Note that we cannot use sed's `-i` option for in-place editing, as
21+
# that is a non-portable extension of POSIX, which works differently in
22+
# BSD and GNU make.
23+
for f in ./*/*.htm* ; do
24+
sed "s;href=\"/home/gap/.gap/pkg/$package/doc/;href=\"https://homalg-project.github.io/$package/doc/;g" "$f" > "$f.bak"
25+
mv "$f.bak" "$f"
26+
done
27+
28+
done
29+
30+
# remove dev directory
31+
rm -rf dev
File renamed without changes.
File renamed without changes.

dev/make_dist.sh

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
# CAP
6+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/CAP" --webdir "$PWD/gh-pages/CAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
7+
8+
# ActionsForCAP
9+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/ActionsForCAP" --webdir "$PWD/gh-pages/ActionsForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
10+
11+
# AttributeCategoryForCAP
12+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/AttributeCategoryForCAP" --webdir "$PWD/gh-pages/AttributeCategoryForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
13+
14+
# CartesianCategories
15+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/CartesianCategories" --webdir "$PWD/gh-pages/CartesianCategories" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
16+
17+
# CompilerForCAP
18+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/CompilerForCAP" --webdir "$PWD/gh-pages/CompilerForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
19+
20+
# ComplexesAndFilteredObjectsForCAP
21+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/ComplexesAndFilteredObjectsForCAP" --webdir "$PWD/gh-pages/ComplexesAndFilteredObjectsForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
22+
23+
# DeductiveSystemForCAP
24+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/DeductiveSystemForCAP" --webdir "$PWD/gh-pages/DeductiveSystemForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
25+
26+
# FreydCategoriesForCAP
27+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/FreydCategoriesForCAP" --webdir "$PWD/gh-pages/FreydCategoriesForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
28+
git subtree split --prefix=FreydCategoriesForCAP -b FreydCategoriesForCAP-split
29+
git push https://homalg-project:$SUBSPLIT_PUSH_SECRET@github.com/homalg-project/FreydCategoriesForCAP FreydCategoriesForCAP-split:master
30+
31+
# GeneralizedMorphismsForCAP
32+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/GeneralizedMorphismsForCAP" --webdir "$PWD/gh-pages/GeneralizedMorphismsForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
33+
34+
# GradedModulePresentationsForCAP
35+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/GradedModulePresentationsForCAP" --webdir "$PWD/gh-pages/GradedModulePresentationsForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
36+
37+
# GroupRepresentationsForCAP
38+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/GroupRepresentationsForCAP" --webdir "$PWD/gh-pages/GroupRepresentationsForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
39+
40+
# HomologicalAlgebraForCAP
41+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/HomologicalAlgebraForCAP" --webdir "$PWD/gh-pages/HomologicalAlgebraForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
42+
43+
# InternalExteriorAlgebraForCAP
44+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/InternalExteriorAlgebraForCAP" --webdir "$PWD/gh-pages/InternalExteriorAlgebraForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
45+
46+
# LinearAlgebraForCAP
47+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/LinearAlgebraForCAP" --webdir "$PWD/gh-pages/LinearAlgebraForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
48+
49+
# ModulePresentationsForCAP
50+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/ModulePresentationsForCAP" --webdir "$PWD/gh-pages/ModulePresentationsForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
51+
52+
# ModulesOverLocalRingsForCAP
53+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/ModulesOverLocalRingsForCAP" --webdir "$PWD/gh-pages/ModulesOverLocalRingsForCAP" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
54+
55+
# MonoidalCategories
56+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/MonoidalCategories" --webdir "$PWD/gh-pages/MonoidalCategories" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
57+
58+
# ToricSheaves
59+
./dev/release-gap-package --skip-existing-release --srcdir "$PWD/ToricSheaves" --webdir "$PWD/gh-pages/ToricSheaves" --update-script "$PWD/gh-pages/update.g" --release-script "$PWD/dev/.release"
File renamed without changes.

0 commit comments

Comments
 (0)