-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Information for New Developers
- Creating a GitHub account
- Setting up your development environment
- Important Resources
- Stay in contact
⚠️ Warning: This page is only relevant to you if you have been accepted as a developer and in particular if you have a CGAL editor backing/mentoring you.
Once your mentor has introduced you on the CGAL Editorial Board mailing list, and once the CGAL Editorial Board has approved your participation in the CGAL project as a CGAL developer, you should follow these guidelines.
- Visit https://github.com/join and choose Free as the personal plan (although you are free to pay if you want).
- You should receive an email to verify that the email address provided is valid.
- Add your first name and last name and complete your profile at https://github.com/settings/profile.
- Add all email addresses that you have ever used (for statistics) at https://github.com/settings/emails and, optionally, check the box Keep my email address private.
- Set up your SSH keys: https://github.com/settings/ssh (see here for help).
- Recommended Set up the 2-factor authentication https://github.com/settings/security (if you do not set it you will be contacted by an admin of CGAL to ask you why).
- Configure notifications at https://github.com/settings/notifications.
Once this is done, send an email with your GitHub ID to @sloriot, who will add you to the list of members of the CGAL organization so that you can see the private repositories.
Once your GitHub account has been created, and added by an admin to the CGAL organization, you have to publicize your membership, so that all our GitHub actions work correctly. Follow these steps to do so.
BEFORE YOU START ANY CODING BE SURE TO SET UP CGAL IN EXACTLY THIS WAY:
- Uninstall any old CGAL Installation (if you installed CGAL through a package manager, use it to uninstall it again; if you installed CGAL from a tarball, you need to remove it manually)
- Install all dependencies
- on Arch Linux:
pacman -S cmake qt5 gmp mpfi mpfr boost zlib mesa glu eigen
. - on macOS, use brew (
brew install --only-dependencies cgal
) or macports. - on Windows, things are more delicate.
- on Arch Linux:
- Clone your repository
- cloning cgal-public-dev:
git clone git@github.com:CGAL/cgal-public-dev.git
. - add read-only branches:
git remote add cgal git@github.com:CGAL/cgal.git
.
- cloning cgal-public-dev:
- Set
CGAL_DIR
persistently to a directory where you placed your clone of CGAL- UNIX environment: Add
export CGAL_DIR=path/to/cgal
to~/.profile
or your shell configuration file. Refer to your systems documentation for more specific information.
- UNIX environment: Add
- Build CGAL from the repository
- You should consider setting the CMake CGAL_DEV_MODE option, while developing CGAL.
There is a lot of information in the wiki. Some pages that every developer should read are:
- The public Developers' Manual (especially the Getting Started section)
- Our Guidelines and in particular
- Please introduce yourself on your user page of the internal wiki (click on your user name at the top of every wiki page when logged in), and provide your e-mail address there as well (note that the internal wiki is not publicly accessible).
- Have a look at our mailing lists. The developers mainly communicate via cgal-develop (with restricted access only for CGAL developers), but you might want to also subscribe to the public (high-traffic) cgal-discuss and/or (low-traffic) cgal-announce.
- We meet in person at CGAL developer meetings, which take place roughly each six months. We try to distribute the meetings between several institutes affiliated to CGAL. They are announced via cgal-develop and on the internal wiki.
General Information
- Information for New Developers
- Developing with Git
- Structure of a CGAL Package
- Building
- Concurrency in CGAL
- License
- Documentation Guidelines
- Reviewing Process
- Testing
- Miscellaneous
- Tools
- Scripts
- Libraries
- Infrastructure
- Releases
- Miscellaneous