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 Qolmat is:
- Fork the main 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 main branch.
We encourage you to use a virtual environment. You'll want to activate it every time you want to work on Qolmat.
You can create a virtual environment via conda:
$ conda env create -f environment.dev.yml
$ conda activate env_qolmat_dev
If you need to use pytorch, enter the command:
$ pip install -e .[pytorch]
Once the environment is installed, pre-commit is installed, but need to be activated using the following command:
$ pre-commit install
$ pre-commit install-hooks
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.
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.
$ pre-commit run --all-files
These tests absolutely have to pass.
$ mypy qolmat
These tests absolutely have to pass. The coverage should on new features must be above 95%.
$ pytest -vs --cov-branch --cov=qolmat --pyargs tests --cov-report term-missing