unsloth/.github/workflows
Daniel Han 4c85b8259e ci(mlx): expand macOS install ladder to match the Linux dep set
The first attempt installed only mlx + mlx-lm + pytest +
unsloth_zoo with --no-deps + unsloth -e --no-deps. That ladder
under-specifies what the MLX import branch in unsloth/__init__.py
actually needs:

  - The studio backend hardware module imports structlog at module
    top level. Without it tests/studio/test_hardware_dispatch_matrix.py
    fails at the very first `from utils.hardware import hardware as hw`
    with ModuleNotFoundError.
  - unsloth/__init__.py loads dataprep/raw_text.py via
    spec_from_file_location, which `from datasets import Dataset`. With
    --no-deps on unsloth-zoo neither datasets nor transformers nor any
    other shared dep got pulled in.

Mirror the Linux job's working ladder, with two MAC-specific
adjustments:

  - Drop bitsandbytes (CUDA-only).
  - Drop CPU torch (mlx replaces it on Apple Silicon, and unsloth-zoo
    already gates torch on `sys_platform != darwin or platform_machine != arm64`).
  - Install unsloth_zoo from git main WITH deps so pip resolves
    mlx + mlx-lm + mlx-vlm (gated on darwin+arm64 in the zoo's
    pyproject) plus the shared deps (datasets, transformers,
    sentencepiece, ...).

Validated locally against a Linux mac-sim venv (platform spoofed to
Darwin/arm64 via mlx_simulation, real datasets/transformers/structlog
installed via the same ladder, fake mlx via the shim):

  - Step 1 _IS_MLX activation: OK
  - Step 2 import each of unsloth_zoo.mlx_{loader,trainer,compile,utils,cce}
    + unsloth_zoo.gated_delta_vjp + FastMLXModel + MLXTrainer surface: OK
  - Step 3 36 tests across the three dispatch files: 36 passed in 0.43s

The Linux job (mlx-dispatch) is unchanged.
2026-05-07 03:11:05 +00:00
..
lint-ci.yml CI: SHA-pin every action; fix 4 bugs in advisory-audit 2026-05-07 01:12:40 +00:00
mlx-ci.yml ci(mlx): expand macOS install ladder to match the Linux dep set 2026-05-07 03:11:05 +00:00
release-desktop.yml Fix Studio desktop tray installer and titlebar and bux fixes (#5179) 2026-04-30 08:40:39 -07:00
security-audit.yml CI: SHA-pin every action; fix 4 bugs in advisory-audit 2026-05-07 01:12:40 +00:00
stale.yml CI: SHA-pin every action; fix 4 bugs in advisory-audit 2026-05-07 01:12:40 +00:00
studio-backend-ci.yml CI: SHA-pin every action; fix 4 bugs in advisory-audit 2026-05-07 01:12:40 +00:00
studio-frontend-ci.yml CI: SHA-pin every action; fix 4 bugs in advisory-audit 2026-05-07 01:12:40 +00:00
studio-inference-smoke.yml CI: rename + comprehensive Chat UI Tests (verified locally) 2026-05-07 01:51:01 +00:00
studio-tauri-smoke.yml CI: SHA-pin every action; fix 4 bugs in advisory-audit 2026-05-07 01:12:40 +00:00
studio-ui-smoke.yml CI(ui): drop nonexistent username locator (auth form is password-only) 2026-05-07 02:10:14 +00:00
studio-update-smoke.yml CI: rename + comprehensive Chat UI Tests (verified locally) 2026-05-07 01:51:01 +00:00
wheel-smoke.yml CI: SHA-pin every action; fix 4 bugs in advisory-audit 2026-05-07 01:12:40 +00:00