Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Contributing to GAP
We invite everyone to contribute by submitting patches, pull requests, and bug reports. We would like to make the contributing process as easy as possible.
Packages versus contributions to the "core" system
One way of contributing to GAP is to write a GAP package (see https://www.gap-system.org/Packages/packages.html) and send it to us to consider for redistribution with GAP. This is appropriate if your contribution adds a body of functionality for some area of mathematics (or some coherent batch of system functionality). A package is also appropriate if you plan to continue to develop your code in the future. You will retain control of your code and be recorded as author and maintainer of it.
Packages are not an appropriate way to release fixes or extremely small changes, or to impose your own preferences for, for instance, how things should be printed.
Issue reporting and code contributions
Before you report an issue, or wish to add functionality, please try and check to see if there are existing issues or pull requests. We do not want you wasting your time duplicating somebody else's work.
For substantial changes it is also advisable to contact us before you start work to discuss your ideas.
You should be prepared to wait until your pull request or patch has been discussed and authorized prior to its inclusion. We might also ask for you to adapt your changes to make them suitable for inclusion.
To help increase the chance of your pull request being accepted:
Run the tests.
Update the documentation, tests, examples, guides, and whatever else is affected by your contribution.
Use appropriate code formatting for both C and GAP.
The Campsite Rule A basic rule when contributing to GAP is the campsite rule: leave the codebase in better condition than you found it. Please clean up any messes that you find, and don't leave behind new messes for the next contributor.
Making Changes
GAP development follows a straightforward branching model. We prefer using the GitHub infrastructure. If you would like to contribute, but do not want to create a GitHub account, see below for an alternative.
Make sure you are familiar with Git
see for example the Atlassian Git Tutorials for an excellent introduction to Git.
Make sure you have a GitHub account.
Make sure you are familiar with GAP.
Fork our main development repository on github
Clone your fork to a chosen directory on your local machine using HTTPS:
This will create a folder called
gap
(in the location where you rangit clone
) containing the source files, folders and the Git repository. The clone automatically sets up a remote alias namedorigin
pointing to your fork on GitHub, which you can verify with:Add
gap-system/gap
as a remote upstreamEnsure your existing clone is up-to-date with current
HEAD
e.g.Create and checkout onto a topic (or feature) branch on which to base your work.
This is typically done from the local
master
branch.For your own sanity, please avoid working on the local
master
branch. Instead, create a new branch for your work:A shorter way of doing the above is
which creates the topic branch and checks out that branch immediately after.
Make commits of logical units.
Check for unnecessary whitespace with
Make sure your commit messages are along the lines of:
Make sure you have added any necessary tests for your changes.
Run all the tests to assure nothing else was accidentally broken.
Push your changes to a topic branch in your fork of the repository.
Go to GitHub and submit a pull request to GAP.
From there you will have to wait on one of the GAP committers to respond to the request. This response might be an accept or some changes/improvements/alternatives will be suggested. We do not guarantee that all requests will be accepted.
Making changes without Github account
If you do not want to open a GitHub account you can still clone the GAP repository like so:
Make your changes and commits, create a patch containing the commits you want to send, and use git's send-email
feature to email the patch to [email protected]. You can refer to this tutorial on how to do this.
Additional Resources
Heavily adapted from the contributing files from the Puppet project, Factory Girl Rails, and Idris.