Contributing to MLexp

To contribute to MLexp, please follow guidelines here.

Development Workflow

  1. Fork the mlexp repo.

  2. Clone the forked repo locally

  3. Create a branch for the change:

git checkout -b branch_name
  1. Make a change

  2. Test your change (code and docs, see below)

  3. Commit the change to your local branch

  4. Push your local branch to remote

git push origin branch_name
  1. Create PR to merge your branch in develop branch of mlexp repo

Requirements

Install requirements:

pip install -r requirements.txt

Install development requirements (tests, documentation, formatting):

pip install -r requirements-dev.txt

Tests

To test code locally you have to start mlflow server

mlflow server

Also you have to set environment variable with neptune token:

export NEPTUNE_API_TOKEN=<neptune token>

Neptune project is also required (check args for more details)

To run tests:

make test <neptune user/neptune project>

Minimum code coverage is 75%

To test only documentation:

$ make test_docs

Documentation

Docstrings

All public classes and functions must have docstrings.

MLexps uses rst format of docstrings.

Generating Documentation Locally

You can generate documentation in HTML locally as follows:

make build_docs

Documentation will be available in docs/build/html/index.html.

Code formatting

MLexps uses ufmt for formatting code.

To format code:

ufmt format .