Fixes broken macOS wheels. macOS users on 0.1.0 or 0.2.0 should upgrade.
pip install --upgrade "dot-explorer[app]"The problem
Every macOS wheel in 0.2.0 — and all but one in 0.1.0 — linked Homebrew's
liblzma by absolute path. GitHub's macOS runners ship Homebrew, so the wheels
imported fine in CI and failed on any Mac without that exact path:
ImportError: dlopen(..._dot_explorer...so): Library not loaded:
/opt/homebrew/opt/xz/lib/liblzma.5.dylib
It comes from the compression feature pulling in lzma-sys, which links the
system liblzma dynamically. Linux and Windows wheels were never affected —
auditwheel bundles dependencies into manylinux wheels.
The one 0.1.0 wheel that worked (cp314-cp314-macosx_11_0_arm64) was built by
hand on a machine without Homebrew xz, which masked the bug during release
testing.
The fix
The macOS build now sets LZMA_API_STATIC=1 so liblzma is linked statically,
and a new scripts/check_macos_wheel.py fails the build if any Mach-O object
in a wheel depends on a path outside /usr/lib, /System or the wheel itself.
A build-machine-only library can no longer be published.
Verified on a real runner: all eight macOS wheel jobs pass the new gate, and a
CI-built wheel installs and runs on a machine with no Homebrew xz.
Full changelog
See CHANGELOG.md.