This post is based on my earlier comment on the pull request number one submitted to the GAP repository on GutHub a little bit more than a year ago.
Of course, GAP is not new to the version control. The first revision in the CVS repository for GAP 4 is dated July 3rd 1996. Then 16 years later, in summer 2012 the repository had been converted to Mercurial (thanks to Max Horn!) after the release of GAP 4.5. In February 2015 the Mercurial repository had been converted to Git (thanks to Chris Jefferson!), and we started to host it on GitHub at https://github.com/gap-system/gap.
Below there are some highlights of what happened during the first year after that:
- On 26th February 2016 there were In total 640 pull requests and issues in this repository, namely:
- 120 open + 133 closed issues
- 32 open + 356 closed pull requests
- That’s more than one new pull request a day!
- While the ratio for open/closed issues is nearly 50:50, “if things are done, they are done”: pull requests are normally reviewed and getting merged, so the ratio open/closed for pull requests is about 1:10.
- We had several very productive GAP Days in Aachen, Trondheim and St Andrews.
- We have a gap-system virtual organisation on GitHub which also hosts repositories for other development tools, GAP Website, etc.
- We have an expanding virtual organisation for gap-packages.
- There is even more activity with GAP packages, since some of them are openly developed elsewhere (we are trying to keep an up-to-date list at this page).
- There is an active open GAP development mailing list.
- There is also a growing Wiki with documentation for developers.
- In 2015, we made two minor releases based on the stable-4.7 branch of the GitHub repository (4.7.8 and 4.7.9).
- We put a lot of efforts in making GAP more robust and test it better, in particular, we now run nightly check of the code coverage and publish code coverage reports.
- And we have just announced the first major release of GAP 4.8.2, which is the first major release of GAP that has been made from this repository! The overview of changes between GAP 4.7 and GAP 4.8 highlights most significant ones, including support for partially variadic functions, better tools for testing, debugging and profiling, function calls with timeouts, 12 new packages redistributed with GAP, and other changes.
Congratulations and thanks to everyone who worked on making all of this possible!!!
In addition, this visualisation, produced with gource, shows files and directories that were modified in the master branch of the core GAP system during the 1st year on GitHub. The large cluster in the top right corner corresponds to the GAP library. The top left corner is occupied by the GAP kernel. The pink cluster in the bottom represents GAP regression tests, and the main GAP manuals are marked by green. There are already changes waiting for GAP 4.9!
GAP 4.8.2 includes 130 GAP packages, and I am amazed how many of them are in the working order in the container – including all those requiring compilation, with non-trivial dependencies on external libraries and other third-party software. I have previously used the container for GAP 4.7.9 on an Ubuntu machine as a reference GAP installation, and this morning I was thrilled to upgrade it to GAP 4.8.2 using just two commands and waiting for no more than a couple of minutes!
I still haven’t seen GAP Docker container running on Windows – if anyone manages to do that, I would be very glad to know. This would be very beneficial for users of some packages working only in the UNIX environment.