Skip to content

v0.2.1

Latest

Choose a tag to compare

@Adamtaranto Adamtaranto released this 09 Sep 10:11
· 1 commit to main since this release

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.