diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1020d31..df63b9c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,13 +62,15 @@ jobs: # test_git_integration.py - live-server integration requiring model weights. # Run: pytest tests/test_git_integration.py --model qwen3:8b # tests/quant/test_int4_loader.py - requires squish_quant Rust extension (cargo/maturin). - # The following three files have `import mlx.core` at module level (inside try/except). + # The following files have module-level Metal/MLX imports (directly or via squish modules). # On macOS CI runners the Metal GPU context is not ready at pytest collection time; # the bare import triggers Metal init → SIGABRT (exit 134) killing the entire process. - # All three must be run manually on real Apple Silicon hardware with a warmed Metal context. + # All must be run manually on real Apple Silicon hardware with a warmed Metal context. # tests/test_sqint2_linear.py - module-level mlx.core import → Metal SIGABRT # tests/test_backend_unit.py - module-level mlx.core import → Metal SIGABRT # tests/quant/test_int3_linear_unit.py - module-level mlx.core import → Metal SIGABRT + # tests/hardware/test_fused_kernels_unit.py - importorskip(mlx.core) → imports + # squish.hardware.fused_kernels which has module-level mlx.nn → Metal SIGABRT run: | pytest tests/ \ --ignore=tests/test_git_integration.py \ @@ -76,6 +78,7 @@ jobs: --ignore=tests/test_sqint2_linear.py \ --ignore=tests/test_backend_unit.py \ --ignore=tests/quant/test_int3_linear_unit.py \ + --ignore=tests/hardware/test_fused_kernels_unit.py \ --timeout=60 \ -v --tb=short -q @@ -116,14 +119,16 @@ jobs: - name: Run full test suite (Rust extension available) # test_int4_loader.py is now included — requires squish_quant built above. # test_git_integration.py still excluded (needs live model weights). - # Metal SIGABRT exclusions (module-level mlx.core import → exit 134 at collection time): - # test_sqint2_linear.py, test_backend_unit.py, test_int3_linear_unit.py + # Metal SIGABRT exclusions (module-level mlx.core/mlx.nn import → exit 134 at collection time): + # test_sqint2_linear.py, test_backend_unit.py, test_int3_linear_unit.py, + # tests/hardware/test_fused_kernels_unit.py (importorskip → mlx.nn via fused_kernels) run: | .venv/bin/pytest tests/ \ --ignore=tests/test_git_integration.py \ --ignore=tests/test_sqint2_linear.py \ --ignore=tests/test_backend_unit.py \ --ignore=tests/quant/test_int3_linear_unit.py \ + --ignore=tests/hardware/test_fused_kernels_unit.py \ --timeout=120 \ -v --tb=short -q diff --git a/demo/index.html b/demo/index.html index e825625..d97a113 100644 --- a/demo/index.html +++ b/demo/index.html @@ -870,6 +870,22 @@