mirror of
https://github.com/exo-explore/exo.git
synced 2026-09-18 00:14:38 -04:00
Since #2087 moved mlx, mlx-lm, mlx-vlm and mflux out of `dependencies` into the `mlx` extra, the documented setup path never installs them, and `[tool.uv]` sets no default extras. `uv run exo` starts the API, then every runner crashes with `ModuleNotFoundError: No module named 'mlx'` (#2156). Adds the extra to the commands documented as the way to set up: - README macOS: `uv sync --extra mlx` - README Linux: `uv sync --extra mlx-cpu`, with the mlx-cuda12 / mlx-cuda13 alternatives - CONTRIBUTING.md quick start - `just sync` / `just sync-clean`, which `just build-app` runs before pyinstaller — the spec aborts when the mlx Metal libraries are missing Docs plus two justfile recipes; no dependency or lock changes. Backend choice stays explicit, since mlx-cpu / mlx-cuda12 / mlx-cuda13 / mlx-none are declared as conflicting extras. #2234 overlaps on the macOS README block only, via a setup script that runs `uv sync --extra mlx`; the Linux block, CONTRIBUTING.md and the justfile are not covered there.
50 lines
1.2 KiB
Makefile
50 lines
1.2 KiB
Makefile
export NIX_CONFIG := "extra-experimental-features = nix-command flakes"
|
|
|
|
default: lint fmt
|
|
all: lint fmt check
|
|
|
|
fmt:
|
|
treefmt || nix fmt
|
|
|
|
lint:
|
|
uv run ruff check --fix
|
|
|
|
test:
|
|
uv run pytest src
|
|
|
|
check:
|
|
uv run basedpyright --project pyproject.toml
|
|
|
|
sync:
|
|
uv sync --all-packages --extra mlx
|
|
|
|
sync-clean:
|
|
uv sync --all-packages --extra mlx --force-reinstall --no-cache
|
|
|
|
rust-rebuild:
|
|
PYO3_PYTHON="$(uv run python -c 'import sys; print(sys.executable)')" cargo run --bin stub_gen
|
|
uv sync --reinstall-package exo_rs
|
|
|
|
build-dashboard:
|
|
#!/usr/bin/env bash
|
|
pushd dashboard
|
|
npm install
|
|
npm run build
|
|
popd
|
|
|
|
package: build-dashboard
|
|
uv run pyinstaller packaging/pyinstaller/exo.spec
|
|
rm -rf build
|
|
|
|
build-app: rust-rebuild sync-clean package
|
|
env -u LD xcodebuild build -project app/EXO/EXO.xcodeproj -scheme EXO -configuration Debug -derivedDataPath app/EXO/build
|
|
@echo "\nBuild complete. Run with:\n open {{justfile_directory()}}/app/EXO/build/Build/Products/Debug/EXO.app"
|
|
|
|
clean:
|
|
rm -rf **/__pycache__
|
|
rm -rf target/
|
|
rm -rf .venv
|
|
rm -rf dashboard/node_modules
|
|
rm -rf dashboard/.svelte-kit
|
|
rm -rf dashboard/build
|