We welcome community contributions to MLflow. This page describes how to develop/test your changes to MLflow locally.
We recommend installing MLflow in its own virtualenv for development, as follows:
virtualenv env source env/bin/activate pip install -r dev-requirements.txt pip install -r tox-requirements.txt pip install -e .
npm
is required to run the Javascript dev server.
You can verify that npm
is on the PATH by running npm -v
, and
install npm if needed.
Before running the Javascript dev server or building a distributable wheel, install Javascript dependencies via:
cd mlflow/server/js npm install cd - # return to root repository directory
If modifying dependencies in mlflow/server/js/package.json
, run npm update within
mlflow/server/js
to install the updated dependencies.
We recommend Running the Javascript Dev Server - otherwise, the tracking frontend will request
files in the mlflow/server/js/build
directory, which is not checked into Git.
Alternatively, you can generate the necessary files in mlflow/server/js/build
as described in
Building a Distributable Artifact.
Please verify that the unit tests & linter pass before submitting a pull request by running:
pytest ./lint.sh
Install Node Modules, then run the following:
In one shell:
mlflow ui
In another shell:
cd mlflow/server/js npm start
The MLflow Tracking UI will show runs logged in ./mlruns
at http://localhost:3000.
Install Node Modules, then run the following:
Generate JS files in mlflow/server/js/build
:
cd mlflow/server/js npm run build
Build a pip-installable wheel in dist/
:
cd - python setup.py bdist_wheel
To build protobuf files, simply run generate-protos.sh
. The required protoc
version is 3.6.0
.
Install the necessary Python dependencies via pip install -r dev-requirements.txt
. Then run
cd docs make livehtml