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, using pip
, create a virtual environment and install dependencies with the following command:
$ 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, so please follow these guidelines.
In order to build the documentation locally, you first need to install some dependencies:
Create a dedicated virtual environment via conda
:
$ conda env create -f environment.doc.yml
$ conda activate mapie-doc
Alternatively, using pip
, create a different virtual environment than the one used for development, and install the dependencies:
$ pip install -r requirements.doc.txt
$ pip install -e .
Finally, once dependencies are installed, you can build the documentation locally by running:
$ make clean-doc
$ make doc
You can make your contribution visible by:
- Adding your name to the Contributors section 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