The next major release of GAP 4.10.0 has been announced on 12 November 2018. Its complete overview with links to the GAP documentation and GitHub pull requests can be found here. Alternative distributions – Gap.app for macOS and GAP Docker container have been updated too.
You can check the status of standard tests of GAP packages from GAP 4.10.0 release on Travis CI. Out of 140 packages, redistributed with this GAP release, 103 now provide such a test, and for 97 of these packages their tests pass cleanly. To compare, in GAP 4.7.9 (November 2015), only 56 packages had standard tests. But not only more tests were added over three years, but also their code coverage improved, as you can see by exploring code coverage for GAP packages at Codecov. This is a result of collaboration of many GAP developers and package authors, helper by keeping many package repositories on GitHub (see https://gap-packages.github.io/) and providing tools for package authors to automate testing and publishing releases, and keep a regular release cycle. In particular, in GAP 4.10.0 distribution, 103 packages have been updated in 2018, another 20 – in 2017, and 6 more in 2016. On the other hand, there are 2 packages dated 2011, 2 – 2012, 5 – 2013, 1 – 2014 and 1 – 2015, but no packages from 2000s any more!
GAP 4.10.0 contains the new release of the JupyterKernel package by Markus Pfeiffer which allows to use GAP in a Jupyter notebook. This development has been supported by the OpenDreamKit project. You can try to use it remotely on Binder or install it locally as explained in its manual.
One of the new packages from GAP 4.10.0, based on the Jupyter kernel for GAP, is francy by Manuel Martins, which provides an interface to draw graphics using objects.
Another package is JupyterViz by Nathan Carter. It adds visualisation tools including standard line and bar charts, pie charts, scatter plots, and graphs (i.e. vertices & edges). Both packages also offer an opportunity to explore them on Binder (click on “launch on Binder” badges in their README files on GitHub).
Remarkably, there was no beta release this time. The new GAP 4.10.0 release is a proper official GAP release. With publicly available repositories for GAP and the majority of packages, and with the improved testing setup, the need in a preliminary beta release simply disappears. The GAP testing dashboard shows how code coverage (collected at Codecov with the help of the profiling package by Chris Jefferson) improved over releases.
The GAP testing dashboard also contains badges for Travis CI builds which test GAP packages. We test released and development versions of packages with released and development versions of GAP in various settings.
Other tools to support package authors are:
- PackageMaker – a GAP package that makes it easy and convenient to create new GAP packages
- Example package – an example of how to create a GAP package
- ReleaseTools – a script which automates the process of making a new release for a GAP package hosted on GitHub.
- GitHubPagesForGAP – a template for setting up a website for a GAP package hosted on GitHub.
- Docker containers for GAP – https://hub.docker.com/r/gapsystem/