Welcome to aGrUM's contribution guide and thank you for helping us making aGrUM the best open source API for using Graphical Probabilistic Models.
Opening an issue does not imply to fill the aGrUM's contribution agreement.
Please follow as much as possible this template :
⚠️ One issue, One bug(Describe your issue in detail. Provide as much as possible steps to reproduce.)
(describe your os, you CC compiler, your python version, the agrum version, etc.)
(Write what you thought would happen.)
(Write what happened. Include screenshots if needed.)
You can contribute to aGrUM in the following domains:
- Code
- Documentation
- Packaging and distributing
Before submitting your first contribution, please take the time to fill aGrUM's contribution agreement. We will not accept any contribution without it !
You can find the individual agreement here and the entity agreement here. Please send us your agreement at [email protected].
We are planning to change aGrUM's licence, but don't worry aGrUM will always be Open Source. To do so, we need your agreement as one of aGrUM's contributor. There is also some legal consideration about how your contribution can be used and distributed with aGrUM. So please take your time and read the agreement before sending it to us. And if you have any question, feel free to ask us at [email protected].
Before contributing to aGrUM's code you should ask us before hand at [email protected]. This will prevent you from submiting code that we won't integrate: aGrUM's is still under heavy development and some featured modules like bayesnet
or learning
are refactored quite often.
Outside of aGrUM's core code, you can help us solve bugs, write new tests or contribute to one of aGrUM's applications or wrappers.
Helping us to write aGrUM's documentation is one of the best way to help us making aGrUM a more usable API. aGrUM's documentation is written using Doxygen and aGrUM's wrappers is written with [Sphynx].
You can also write aGrUM's example or tutorials, both are direly needed.
Packaging and distributing aGrUM or pyAgrum helps a lot by leting aGrUM users easily access updates. We currently have conda and pip packaging for pyAgrum and packaging for ArchLinux. Please contact us if you plan to package aGrUM or pyAgrum. We will be happy to help/
For your first contribution you should fork aGrUM, make your contribution and send us a merge request. Before contributing, please take the time to warn us at [email protected] so we can help you out with your contribution.