You are welcome to propose and contribute new ideas. We encourage you to open an issue so that we can align on the work to be done. It is generally a good idea to have a quick discussion before opening a pull request that is potentially out-of-scope.
The typical workflow for contributing to mapie is:
- Fork the master branch from the GitHub repository.
- Clone your fork locally.
- Commit changes.
- Push the changes to your fork.
- Send a pull request from your fork back to the original master branch.
We encourage you to use a virtual environment. You'll want to activate it every time you want to work on mapie.
You can create a virtual environment via conda:
$ conda env create -f environment.dev.yml
$ conda activate mapie
Alternatively, you can install dependencies with pip:
$ pip install -r requirements.dev.txt
Finally install mapie in development mode:
pip install -e .
If you're adding a class or a function, then you'll need to add a docstring with a doctest. We follow the numpy docstring convention, so please do too. Any estimator should follow the [scikit-learn API](https://scikit-learn.org/stable/developers/develop.html), so please follow these guidelines. In order to build the documentation locally, run :
$ cd doc
$ make clean-doc
$ make doc
You can make your contribution visible by :
- adding your name to the Contributors sections of AUTHORS.rst
- adding a line describing your change into HISTORY.rst
These tests absolutely have to pass.
$ make lint
These tests absolutely have to pass.
$ make type-check
These tests absolutely have to pass.
$ make tests
The coverage should absolutely be 100%.
$ make coverage