Summary
On Intel macOS, the recommended contributor setup currently fails:
uv venv .venv
source .venv/bin/activate
uv sync --group test
@gpagnon reported that uv sync --group test tries to install a recent jaxlib release that does not provide Intel-macOS wheels.
Recent jaxlib releases only publish macOS wheels for arm64, not Intel macOS (x86_64).
I reproduced the resolution failure for Intel macOS with:
uv sync --group test --python-platform x86_64-apple-darwin --dry-run
On the v1.0.0 tag this resolves to jaxlib==0.9.2 and fails because no Intel-macOS wheel exists.
On current main, the committed lockfile similarly fails on Intel macOS because it pins jaxlib==0.9.1, which also has no Intel-macOS wheel.
The package itself may still work on Intel Macs if resolution lands on the last compatible JAX line
Why this matters
The docs currently recommend uv sync --group test as the standard setup, so Intel-macOS users are led into a failing installation path even though core pymdp usage may still be possible.
Possible fixes
A few possible directions:
- Document Intel macOS as a constrained / best-effort platform and provide an explicit fallback install path.
- Add dependency markers or constraints so Intel macOS resolves to a compatible JAX/JAXlib version (likely <0.5).
- Adjust the uv locking strategy so Intel macOS is considered during resolution.
Additional note
After forcing older JAX in a temporary checkout, I hit a further Intel-macOS wheel issue in the test stack (torch, via transitive dependencies such as pybefit), so a full fix may need to look beyond JAX alone.
Summary
On Intel macOS, the recommended contributor setup currently fails:
@gpagnon reported that
uv sync --group testtries to install a recent jaxlib release that does not provide Intel-macOS wheels.Recent jaxlib releases only publish macOS wheels for arm64, not Intel macOS (x86_64).
I reproduced the resolution failure for Intel macOS with:
uv sync --group test --python-platform x86_64-apple-darwin --dry-runOn the v1.0.0 tag this resolves to jaxlib==0.9.2 and fails because no Intel-macOS wheel exists.
On current main, the committed lockfile similarly fails on Intel macOS because it pins jaxlib==0.9.1, which also has no Intel-macOS wheel.
The package itself may still work on Intel Macs if resolution lands on the last compatible JAX line
Why this matters
The docs currently recommend
uv sync --group testas the standard setup, so Intel-macOS users are led into a failing installation path even though core pymdp usage may still be possible.Possible fixes
A few possible directions:
Additional note
After forcing older JAX in a temporary checkout, I hit a further Intel-macOS wheel issue in the test stack (torch, via transitive dependencies such as pybefit), so a full fix may need to look beyond JAX alone.