We warmly welcome your contribution to ROOT!
There are two ways in which you can contribute:
Submit a pull request
You can create a pull request on GitHub. Simply follow our guidelines. By providing code this way, you agree to transfer your copyright on the code to the “ROOT project”. Of course you will be duly credited: for sizable contributions your name will appear in the CREDITS file shipped with every binary and source distribution. The copyright transfer helps us with effectively defending the project in case of litigation.
Via the users’ contribution section in the forum
The Users’ Forum has a section which describes how to advertise your feature based on ROOT. It is the easiest way to make your code known to the community, even if it will not be automatically integrated in ROOT. Some contributions might become part of the repository - as it happened for RooFit, TMVA, Eve, to name a few.
Often it is useful to contact us first to discuss the code you want to develop or the bug you want to fix.
Picking up an idea
We maintain a set of “ideas” for talented scientists and developers to pick up. An “idea” is a sketch of a development project, or a missing feature we would like to see in your ROOT! You can inspect the ideas in the following list.
- 26 Jun 2020 Make PyROOT more pythonic
Add pythonizations for ROOT classes, which make it easier to use ROOT from Python.
- 25 Jun 2020 Fix an "easy" bug
Grab one of ROOT's bugs marked as "easy" and contribute a fix and a test
- 25 Jun 2020 Improve ROOT's build system
Several small-ish build system features could improve ROOT
- 30 Jan 2019 Transform GNU-makefile tests to CMake
ROOT's test suite has several crucial tests that still try on GNU-Makefile. We need to integrate them with CMake.
- 30 Jan 2019 More tests, more benchmarks!
ROOT relies on testing, including performance testing - and we need to improve both.
- 30 Jan 2019 Better argument parsing
Use a C++ command line argument library for defining and parsing ROOT's options.
- 05 Jan 2016 Wanted: A tool to 'warn' user of inefficient (for I/O) construct in data model
A tool to 'warn' user of inefficient (for I/O) construct in data model
- 28 Mar 2015 Commandline tools for ROOT files inspection, modification and automated plotting
Create a unix-like set of Python command line tools to explore, modify and display the content of ROOT files.