Development Guide
- Description
- Coding Conventions
- VCS - Git/Github
- CMake/Autotools
- Portability (Multiple OS support)
- Documentation
- Build Monitoring Tools
Description
In the context of projects IML, MILA and GSoC we wrote this guidelines to present the software which is under development. All the projects must be submitted to review through a pull request.
Coding Conventions
To write a high quality software ROOT have a coding conventions that is based in Taligent Guide please read it carefully.
VCS - Git/Github
All our code is manipulate with a ditributed VCS(Version Control System) called git and hosted in in a cloud platform called http://github.com that lets do visualization of the code easily. Lets open a free account and see the documentation at https://guides.github.com/ and https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control useful commands:
$ git checkout mybranch
$ git rebase --autosquash -x 'git clang-format master && git commit -a --amend --no-edit' master
CMake/Autotools
We are using two software construction tools CMake and Autotools, all the software must support both.
Portability (Multiple OS support)
Currently ROOT 6 have support for Gnu/Linux and MacOS and the software must support both platforms too.
Documentation
The documentation is using doxygen https://root.cern.ch/how/formatting-comments-doxygen in the source files and Markdown for users guide, lets see userguides examples at https://github.com/root-mirror/root/tree/master/documentation/users-guide
Build Monitoring Tools
http://cdash.cern.ch/index.php?project=ROOT https://phsft-jenkins.cern.ch/job/root-incremental-master/