Menu

#201 fix(installer): install Python venv from PyPI at install time, drop pre-built tarball

closed
nobody
released (243)
2026-06-09
2026-06-09
Anonymous
No

Originally created by: adityaharishch

Problem

Users on macOS 14/15 got this crash on every install:

ImportError: dlopen(libmlx.dylib): Symbol not found in libc++
Referenced from: libmlx.dylib (built for macOS 26.0 which is newer than running OS)

Root cause: The v1.32.0 release CI (macOS 26 runner) compiled apple-fm-sdk into the shared venv tarball. apple-fm-sdk requires macOS 26 at both compile time AND runtime (FoundationModels framework does not exist on macOS 14/15). This stamped minos=26.0 onto libmlx.dylib. Every user on macOS 14/15 who downloaded that tarball hit the crash. Re-running the installer didn't help — the hash-stamp differential skip reused the broken venv every time.

Fix

Drop the pre-built venv tarball approach entirely. The venv is now built from PyPI at install time:

uv sync --frozen --python 3.11

PyPI MLX wheels are tagged macosx_13_0_arm64 / macosx_14_0_arm64 — pip's platform filter guarantees the correct ABI for the user's macOS. Pinning --python 3.11 means uv auto-downloads a managed Python 3.11 if the user doesn't have it; no Homebrew dependency required.

Changes

  • install-from-bundle.sh — replace Path A/B/C + _extract_venv with a single uv sync; uv.lock hash-stamp skip preserved so meridian update is instant when deps haven't changed; mlx.core import probe guards the skip to catch any future ABI issues
  • package-release.sh — remove entire venv build section (uv sync, apple-fm-sdk compilation, tarball + sha256 upload)
  • verify-release-bundle.sh — remove check [#3] (venv asset integrity); renumber and update comments
  • meridian-npm-setup.sh — update stale comment (venv preservation logic is correct and stays)
  • .releaserc.json — remove venv GitHub Release asset entries

Test plan

  • [ ] Syntax check: bash -n passes on all 4 modified scripts ✓
  • [ ] JSON valid: .releaserc.json passes python3 -m json.tool
  • [ ] Verify a fresh meridian setup on macOS 14 installs successfully (uv downloads macosx_13_0_arm64 MLX wheel)
  • [ ] Verify meridian update skips uv sync when uv.lock hash unchanged
  • [ ] Verify macOS 26 still gets apple-fm-sdk installed via the per-user step

🤖 Generated with Claude Code

Related

Tickets: #202
Tickets: #3

Discussion

  • Anonymous

    Anonymous - 2026-06-09

    Ticket changed by: adityaharishch

    • status: open --> closed
     
  • Anonymous

    Anonymous - 2026-06-09

    Originally posted by: adityaharishch

    🎉 This PR is included in version 1.32.1 🎉

    The release is available on:

    Your semantic-release bot 📦🚀

     

Log in to post a comment.