Thank you for considering contributing to Evidently!
We welcome both code and none-code contributions. You can:
- Report a bug
- Improve documentation
- Submit a bug fix
- Propose a new feature or improvement
- Contribute a new feature or improvement
- Test Evidently
Here is the general workflow:
- Fork the Evidently repository
- Clone the repository
- Make the changes and commit them
- Push the branch to your local fork
- Make sure that all the tests are passed sucessfully
- Submit a Pull Request with described changes
- Evidently is under active development.
- We are happy to receive a pull request for bug fixes or new functions for any section of the library. If you need help or guidance, you can open an Issue first.
- The only exception is UI, because it is in the process of significant refactoring! If you want to contribute to UI, please first come to our Discord channel for a quick chat.
- We highly recommend that you open an issue, describe your contribution, share all needed information there and link it to a pull request.
- We evaluate pull requests taking into account: code architecture and quality, code style, comments & docstrings and coverage by tests.
git clone https://github.com/evidentlyai/evidently.git
cd /path/to/evidently_repo
python3 -m venv venv
. venv/bin/activate
cd C:\path\to\evidently_repo
py -m venv venv
.\venv\Scripts\activate
To use the cloned version in the virtual environment as a package, you need to install the package in the editable mode:
cd /path/to/evidently_repo
pip install -e .[dev]
cd C:\path\to\evidently_repo
pip install -e .[dev]
We use flake8 for code style checks.
flake8 evidently
We use mypy for object types checks.
mypy
Currently, the project is not fully covered by unit tests, but we are going to add more soon and expect to receive PRs with some unit tests 🙂
pytest -v
Together with the unit tests we use smoke testing: we basically run all the notebooks from the examples. To run the tests, first convert all the notebooks to a python script, then download the required datasets and run the script to check that all computation is executed correctly. It can be done by using the following commands:
jupyter nbconvert --to script evidently/examples/*.ipynb --output-dir example_scripts
curl https://archive.ics.uci.edu/ml/machine-learning-databases/00275/Bike-Sharing-Dataset.zip -o Bike-Sharing-Dataset.zip &&
unzip Bike-Sharing-Dataset.zip -d Bike-Sharing-Dataset
python example_test.py
5. (first come to our Discord channel for a quick chat) Working with UI
To build UI, you need:
nodejs
andnpm
https://nodejs.org/en/download/yarn
https://yarnpkg.com/getting-started/install
One-time build:
cd ui
yarn
yarn build
Watched build (any changes to the UI source files will be automatically recompiled):
cd ui
yarn
yarn watch