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 conda environment for development, as follows:
conda create --name mlflow-dev-env
source activate mlflow-dev-env
pip install -r dev-requirements.txt
pip install -r test-requirements.txt
pip install -e . # installs mlflow from current checkout
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.
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