Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
c5a80b3
updated npm dependencies
mcmartins Mar 29, 2024
6032e59
updated documentation
mcmartins Mar 30, 2024
470151b
updated documentation; updated development image
mcmartins Mar 31, 2024
f89f2a6
updated lock files
mcmartins Mar 31, 2024
9316447
updated unittests
mcmartins Apr 7, 2024
da94be6
updated dependencies
mcmartins Apr 7, 2024
bce27e0
updated dependencies to the latest supported by babel
mcmartins Apr 7, 2024
5aeaaeb
updated project dependencies
mcmartins Jun 2, 2024
700c092
updated eslint configs
mcmartins Jun 2, 2024
8f5904e
updated versions
mcmartins Jun 2, 2024
52f3130
updated dependencies and documentation
mcmartins Jun 23, 2024
dcfaaf1
updated dependencies
mcmartins Jul 7, 2024
3121093
Fix duplicate methods in manual
stertooy Oct 18, 2025
e629116
updated dependencies
mcmartins Nov 22, 2025
4fa5daa
update action yarn installation
mcmartins Nov 22, 2025
d7bdb85
fix yarn steps
mcmartins Nov 22, 2025
3607509
fix yarn cache path
mcmartins Nov 22, 2025
4fcc9ef
fix yarn
mcmartins Nov 22, 2025
d714e55
fix package build
mcmartins Nov 22, 2025
6674b39
update actions and yarn lock
mcmartins Nov 22, 2025
e533742
fix typo
mcmartins Nov 22, 2025
b21c654
Merge branch 'fix-ci' of github.com:stertooy/francy into stertooy-fix-ci
mcmartins Nov 30, 2025
c1df524
Merge branch 'stertooy-fix-ci' into develop
mcmartins Nov 30, 2025
820133d
multiple updates
mcmartins Nov 30, 2025
12be796
hardcoded jupyterlab version to latest supported by gap jupyterkernel
mcmartins Nov 30, 2025
728bdb4
fixed package version
mcmartins Nov 30, 2025
a508306
updated yarn lock file
mcmartins Nov 30, 2025
f812892
jupyterlab build still uses yarn 1, so we need to disable it when bui…
mcmartins Nov 30, 2025
ce091ac
updated package version and lock file
mcmartins Nov 30, 2025
ce9747f
downgrade chai as it is not compatible with karma-chai
mcmartins Nov 30, 2025
62cc62b
update ci file
mcmartins Nov 30, 2025
2207ba0
Merge branch 'master' of https://github.com/gap-packages/francy into …
mcmartins Nov 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 2 additions & 13 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
# ignore .git and .cache folders
.git
.cache
.github
.idea
.*

*.tgz

Expand All @@ -13,11 +9,4 @@
**/node_modules/
**/coverage/

.idea
.iml

.c9
.ipynb_*
.nyc*

*-lock.json
*-lock.json
54 changes: 34 additions & 20 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ name: CI
on:
push:
branches:
- main
- master
- develop
pull_request:
Expand All @@ -19,31 +20,32 @@ concurrency:
jobs:
# The CI test job
test_gap:
name: ${{ matrix.gap-branch }}
name: ${{ matrix.gap-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
gap-branch:
gap-version:
- master
- stable-4.15
- stable-4.14
- stable-4.13
- stable-4.12
- stable-4.15
- stable-4.14

steps:
- name: Install ZMQ
run: |
sudo apt update &&
sudo apt install libzmq3-dev -y
sudo apt install libzmq3-dev m4 -y
- uses: actions/checkout@v6
- uses: gap-actions/setup-gap@v2
- uses: gap-actions/setup-gap@v3
with:
GAP_PKGS_TO_BUILD: "datastructures json uuid io profiling crypting zeromqinterface jupyterkernel"
GAPBRANCH: ${{ matrix.gap-branch }}
- uses: gap-actions/build-pkg@v1
- uses: gap-actions/run-pkg-tests@v3
- uses: gap-actions/run-pkg-tests@v3
gap-version: ${{ matrix.gap-version }}
- run: |
cd $GAPROOT/pkg
../bin/BuildPackages.sh --strict datastructures json uuid io profiling crypting zeromqinterface jupyterkernel
- uses: gap-actions/build-pkg@v2
- uses: gap-actions/run-pkg-tests@v4
with:
only-needed: true
- uses: gap-actions/process-coverage@v2
Expand All @@ -56,7 +58,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ 19.x ]
node-version: [ 24.x ]

steps:
- uses: actions/checkout@v6
Expand All @@ -67,20 +69,23 @@ jobs:
sudo apt install -y "/tmp/google-chrome-stable_current_amd64.deb" -f
- uses: actions/setup-python@v4
with:
python-version: '3.10'
python-version: '3.12'
- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
- run: pip install jupyterlab==4.0.1
- run: pip install jupyterlab
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
registry-url: 'https://registry.npmjs.org'
- name: Enable Corepack (Yarn)
run: corepack enable
working-directory: js
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
run: echo "dir=$(pwd)/.yarn/cache" >> "$GITHUB_OUTPUT"
shell: bash
working-directory: js
- name: Restore yarn cache
Expand All @@ -90,11 +95,19 @@ jobs:
key: yarn-cache-folder-${{ hashFiles('**/yarn.lock', '.yarnrc.yml') }}
restore-keys: |
yarn-cache-folder-
- run: yarn install --frozen-lockfile
- run: yarn install --immutable
working-directory: js
- run: yarn run lint
working-directory: js
- run: yarn run build:prod
env:
# workaround as jupyterlab build uses yarn 1 which change the lock file
YARN_ENABLE_IMMUTABLE_INSTALLS: "false"
CI: ""
working-directory: js
- name: Restore lockfile to committed state (workaround)
run: |
git restore yarn.lock
working-directory: js
- run: yarn run test
working-directory: js
Expand All @@ -113,9 +126,10 @@ jobs:
run: |
sudo apt update &&
sudo apt install libzmq3-dev -y
- uses: gap-actions/setup-gap@v2
with:
GAP_PKGS_TO_BUILD: "datastructures uuid json io crypting zeromqinterface jupyterkernel"
- uses: gap-actions/build-pkg-docs@v1
- uses: gap-actions/setup-gap@v3
- run: |
cd $GAPROOT/pkg
../bin/BuildPackages.sh --strict datastructures json uuid io profiling crypting zeromqinterface jupyterkernel
- uses: gap-actions/build-pkg-docs@v2
with:
use-latex: 'true'
77 changes: 12 additions & 65 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,90 +14,35 @@ concurrency:
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}

jobs:
# FIXME well, on tag we do not have the refs necessary for the `git symbolic-ref -q --short HEAD` hence it fails
# GAP related release will be done manually as all other gap packages, using the Release-Tools package, locally
# gap_release_tools:
# name: Build and Publish manuals
# runs-on: ubuntu-latest
#
# steps:
# - uses: actions/checkout@v2
# with:
# fetch-depth: 0
# - name: Install ZMQ
# run: |
# sudo apt update &&
# sudo apt install libzmq3-dev -y
# - name: Install TeXLive
# run: |
# sudo apt-get install --no-install-recommends texlive-latex-base texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended
# - uses: gap-actions/setup-gap@v2
# with:
# GAP_PKGS_TO_BUILD: "datastructures uuid json io crypting zeromqinterface jupyterkernel"
# GAPBRANCH: master
# - name: Use Node.js ${{ matrix.node-version }}
# uses: actions/setup-node@v3
# with:
# node-version: ${{ matrix.node-version }}
# registry-url: 'https://registry.npmjs.org'
# - name: Get yarn cache directory path
# id: yarn-cache-dir-path
# run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
# shell: bash
# working-directory: js
# - name: Restore yarn cache
# uses: actions/cache@v3
# with:
# path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
# key: yarn-cache-folder-${{ hashFiles('**/yarn.lock', '.yarnrc.yml') }}
# restore-keys: |
# yarn-cache-folder-
# - run: yarn install --frozen-lockfile
# working-directory: js
# - run: yarn run docs
# working-directory: js
# - name: GAPTools Release
# env:
# GH_TOKEN: ${{ secrets.GH_TOKEN }}
# run: |
# # Clone Release tools
# git clone --depth=2 -b master https://github.com/gap-system/ReleaseTools $HOME/ReleaseTools
# # Add a new remote pointing to the GitHubPagesForGAP repository
# git worktree add gh-pages origin/gh-pages
# cd gh-pages && git checkout gh-pages && git pull && cd ..
# # Copy JavaScript documentation
# cp -rf doc/js gh-pages/doc/
# # Run Release Script
# git config --global user.email "noreply@none.no"
# git config --global user.name "GitHubActionRELEASE"
# GAP="$HOME/gap/gap" bash -x $HOME/ReleaseTools/release-gap-package --force --push --token ${GH_TOKEN}

publish_js_python_packages:
#needs: gap_release_tools
name: Build and Publish plugins
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ 19.x ]
node-version: [ 24.x ]

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
- uses: actions/setup-python@v4
with:
python-version: '3.10'
python-version: '3.12'
- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
- run: pip install jupyterlab==4.0.1 build
- run: pip install jupyterlab build
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
registry-url: 'https://registry.npmjs.org'
- name: Enable Corepack (Yarn)
run: corepack enable
working-directory: js
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
run: echo "dir=$(pwd)/.yarn/cache" >> "$GITHUB_OUTPUT"
shell: bash
working-directory: js
- name: Restore yarn cache
Expand All @@ -107,9 +52,12 @@ jobs:
key: yarn-cache-folder-${{ hashFiles('**/yarn.lock', '.yarnrc.yml') }}
restore-keys: |
yarn-cache-folder-
- run: yarn install --frozen-lockfile
- run: yarn install --immutable
working-directory: js
- run: yarn run build:prod
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: "false"
CI: ""
working-directory: js
- name: Configure npm
run: |
Expand All @@ -127,4 +75,3 @@ jobs:
with:
password: ${{ secrets.PYPI_API_TOKEN }}
packages_dir: js/packages/francy-extension-jupyterlab/dist

14 changes: 7 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
/doc/chooser.html
/doc/_*.xml

**/doc/js

*.la
*src/*.lo

Expand All @@ -49,12 +51,7 @@

**/node_modules/

.idea
.iml

.c9
.ipynb_*
.nyc*
.*

# istanbul
**/.nyc_output/
Expand Down Expand Up @@ -91,4 +88,7 @@ gh-pages/

**/docs/*

**/labextension/
**/labextension/

**/.nx
**/.yarn
21 changes: 11 additions & 10 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
FROM jupyter/minimal-notebook:latest
FROM quay.io/jupyter/minimal-notebook:latest

MAINTAINER Manuel Martins <manuelmachadomartins@gmail.com>

USER root
LABEL Author="Manuel Martins <manuelmachadomartins@gmail.com>"

ARG DEBIAN_FRONTEND="noninteractive"
ARG WGET="wget -N --no-check-certificate --tries=5 --waitretry=5 --retry-connrefused"

RUN apt update && apt -qq install -y git curl wget python3-pip inkscape pandoc texlive-xetex libgmp-dev libreadline-dev graphviz \
zlib1g-dev libzmq3-dev gcc g++ make autoconf && \
git clone --depth=2 -b master https://github.com/gap-system/gap.git /opt/master && cd /opt/master && \
./autogen.sh && ./configure && make -j4 V=1 && \
USER root

RUN apt update && apt -qq install -y \
git curl wget python3-pip inkscape pandoc texlive-xetex \
build-essential autoconf libgmp-dev libreadline-dev zlib1g-dev graphviz libzmq3-dev && \
git clone --depth=2 -b master https://github.com/gap-system/gap.git /opt/master && \
cd /opt/master && ./autogen.sh && ./configure && make -j4 V=1 && \
make bootstrap-pkg-full DOWNLOAD="$WGET" WGET="$WGET" && \
cd /opt/master/pkg && rm -rf /opt/master/pkg/francy && \
git clone https://github.com/gap-packages/FrancyMonoids && \
Expand All @@ -26,5 +27,5 @@ RUN apt update && apt -qq install -y git curl wget python3-pip inkscape pandoc t

USER jovyan

# jupyter lab extension installation
RUN pip install --no-cache-dir jupyterlab jupyterlab-francy && rm -rf /home/jovyan/.jupyter/*
# jupyter lab extension installation hardcoded to 4.4.10 as this is the last version where jupyterkernel works
RUN pip install --no-cache-dir jupyterlab==4.4.10 jupyterlab-francy && rm -rf /home/jovyan/.jupyter/*
4 changes: 2 additions & 2 deletions PackageInfo.g
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ SetPackageInfo(rec(

PackageName := "francy",
Subtitle := "Framework for Interactive Discrete Mathematics",
Version := "2.0.3",
Version := "2.0.4",
Date := "16/04/2023", # dd/mm/yyyy format
License := "MIT",

Expand Down Expand Up @@ -47,7 +47,7 @@ SetPackageInfo(rec(
ArchiveFormats := ".tar.gz",

AbstractHTML :=
"The <span class=\"pkgname\">Francy</span> package allows to use graphics in GAP.",
"<span class=\"pkgname\">Francy</span> offers a framework for generating graphic representations of data structures in GAP.",

PackageDoc := rec(
BookName := "Francy",
Expand Down
Loading
Loading