/ dev / install-skinny.sh
install-skinny.sh
 1  #!/usr/bin/env bash
 2  # Install from master:
 3  # curl -LsSf https://raw.githubusercontent.com/mlflow/mlflow/HEAD/dev/install-skinny.sh | sh
 4  #
 5  # Install from a specific branch:
 6  # curl -LsSf https://raw.githubusercontent.com/mlflow/mlflow/HEAD/dev/install-skinny.sh | sh -s <branch>
 7  #
 8  # Install from a specific PR:
 9  # curl -LsSf https://raw.githubusercontent.com/mlflow/mlflow/HEAD/dev/install-skinny.sh | sh -s pull/<pr_num>/merge
10  REF=${1:-HEAD}
11  
12  # Fetching the entire repo is slow. Use sparse-checkout to only fetch the necessary files.
13  TEMP_DIR=$(mktemp -d)
14  git clone --filter=blob:none --no-checkout https://github.com/mlflow/mlflow.git $TEMP_DIR
15  cd $TEMP_DIR
16  # Exclude the mlflow/server/js folder as it contains frontend JavaScript files not needed for mlflow-skinny installation.
17  git sparse-checkout set --no-cone /mlflow /libs/skinny /pyproject.toml '!/mlflow/server/js/*'
18  git fetch origin "$REF"
19  git config advice.detachedHead false
20  git checkout FETCH_HEAD
21  OPTIONS=$(if uv pip freeze --system | grep -q "mlflow-skinny @"; then echo "--force-reinstall --no-deps"; fi)
22  uv pip install --system $OPTIONS ./libs/skinny
23  rm -rf $TEMP_DIR