<!-- llms-explorer concept facts · https://llms-explorer.com/tree/mlx-lm-version-pinning-and-current-release-compatibility-delta/ · pack 2026-10-23 · ~1579 tokens -->

# MLX-LM version pinning and current release compatibility delta

> Source-anchored research for MLX-LM version pinning and current release compatibility delta. Run status: COMPLETED.

Parent: [MLX-LM native service model lifecycle and release contracts](https://llms-explorer.com/tree/mlx-lm-native-service-model-lifecycle-and-release-contracts/) · 7 facets · 13 facts · page: https://llms-explorer.com/tree/mlx-lm-version-pinning-and-current-release-compatibility-delta/

## Structure and components

- In pinned pyproject.toml, [project].requires-python sets the Python floor to >=3.11. [project].dependencies contains "mlx>=0.32.3; platform_system == 'Darwin'" and "transformers>=5.7.0". Under [project.optional-dependencies], train supplies datasets and tqdm; evaluate supplies lm-eval and tqdm. These are the pinned main requirements, not a replacement for the v0.32.2 wheel metadata. (low confidence) (verified as of 2026-10-23) — [source](https://raw.githubusercontent.com/ml-explore/mlx-lm/0d4d3d04f8ab7ce4a51e7209e8615755a48ba94d/pyproject.toml)

## How it works

- Inference: reproducible deployments should lock mlx-lm, mlx, transformers, and Python together, record the resolved versions, and rerun workload tests before point upgrades because the published and main-branch MLX floors differ and a downstream project excluded one point release after A/B testing. (medium confidence) — [source](https://raw.githubusercontent.com/ml-explore/mlx-lm/93e6d4a6447b3080861985947f0820e76fcb957d/pyproject.toml)
- A reproducible result needs both the MLX-LM software version or source commit and the model revision. The former identifies runtime/training implementation; load(..., revision=<branch,tag,commit>) selects model files from the Hub. Use an immutable model commit when recording exact weights; a package-version pin does not pin those model files. (medium confidence) (verified as of 2026-10-23) — [source](https://raw.githubusercontent.com/ml-explore/mlx-lm/0d4d3d04f8ab7ce4a51e7209e8615755a48ba94d/mlx_lm/utils.py)

## How-to and procedures

- To install the comparison release explicitly, use python -m pip install "mlx-lm==0.32.2" in the intended environment. The == specifier fixes the mlx-lm package version; it does not by itself freeze every transitive dependency. Record the resolved environment alongside the package pin. (medium confidence) (verified as of 2026-10-23) — [source](https://pip.pypa.io/en/stable/cli/pip_install/)

## Measurements and reference values

- The captured vLLM Metal manifest pins an MLX-LM Git commit that its dependency comment dates to 2026-08-25 and says provides cache APIs absent from 0.31.3. That comment does not establish when vLLM Metal adopted the pin. The October 4 mlx-dspark changelog reports that MLX-LM 0.32.0 removed meta_state and records a cache-snapshot fix supporting both 0.31.3 and 0.32.0. (medium confidence) (verified as of 2026-10-04) — [source](https://github.com/vllm-project/vllm-metal/blob/main/pyproject.toml)

## Problems, failure modes and limitations

- The deprecated direct python -m mlx_lm.lora form prints a replacement notice: use mlx_lm.lora ... or python -m mlx_lm lora .... The package manifest supplies the mlx_lm.lora console script. (medium confidence) (verified as of 2026-10-23) — [source](https://raw.githubusercontent.com/ml-explore/mlx-lm/0d4d3d04f8ab7ce4a51e7209e8615755a48ba94d/mlx_lm/lora.py)

## Comparisons and alternatives

- On Python 3.10, pip can select mlx-lm 0.31.3 rather than fail because 0.32.2 requires Python >=3.11; a third-party install check observed 0.31.3 as the last release accepted by Python 3.10, so verify the interpreter and installed package version after installation. (medium confidence) (verified as of 2026-10-17) — [source](https://pypi.org/pypi/mlx-lm/0.32.2/json)

## Facts and statements

- On 2026-10-16, mlx-lm 0.32.2 was the latest PyPI release; 0.32.0 shipped October 1, 0.32.1 October 15, and 0.32.2 October 16, after 0.31.3 on April 22. (high confidence) (verified as of 2026-10-16) — [source](https://pypi.org/project/mlx-lm/0.32.2/)
- The published mlx-lm 0.32.2 metadata requires Python >=3.11, mlx>=0.32.2 on Darwin, and transformers>=5.7.0; its cpu, cuda12, and cuda13 extras also require the corresponding mlx backend at >=0.32.2. (high confidence) (verified as of 2026-10-16) — [source](https://pypi.org/pypi/mlx-lm/0.32.2/json)
- The 0.32.2 release source sets the Darwin MLX floor to >=0.32.2, while upstream main has raised that floor to >=0.32.3 and raised the matching cpu, cuda12, and cuda13 extra floors too. The moving main manifest therefore does not describe the dependency contract of the published 0.32.2 release. (high confidence) (verified as of 2026-10-23) — [source](https://raw.githubusercontent.com/ml-explore/mlx-lm/93e6d4a6447b3080861985947f0820e76fcb957d/pyproject.toml)
- Chad's pyproject, checked 2026-10-23, keeps Darwin mlx-lm in the 0.31 series (>=0.31.3,<0.32) while bounding MLX independently to >=0.32.0, !=0.32.1, and <=0.32.2. Its notes say MLX 0.32.1 caused degenerate generations with its custom kernels, confirmed by an A/B test on 2026-08-23, and admit 0.32.2 only after its own workload gate; this is application-specific evidence, not an upstream compatibility guarantee. (low confidence) (verified as of 2026-10-23) — [source](https://github.com/nathansutton/chad/blob/main/pyproject.toml)
- On 2026-10-23 the upstream release page marked v0.32.2 as latest; PyPI records its upload on 2026-10-16, after v0.32.0 on October 1 and v0.32.1 on October 15. An independent install guide reported pip resolving mlx-lm 0.32.2 on October 17. (high confidence) (verified as of 2026-10-23) — [source](https://github.com/ml-explore/mlx-lm/releases/tag/v0.32.2)
- This comparison uses stable v0.32.2 as its release baseline and commit 0d4d3d04f8ab7ce4a51e7209e8615755a48ba94d as its exact main implementation snapshot. Qualify findings seen only at that main commit as snapshot behavior; they are not established v0.32.2 behavior without checking the release source. The pinned main manifest requires MLX>=0.32.3 on Darwin, while the release manifest requires MLX>=0.32.2. (medium confidence) (verified as of 2026-10-23) — [source](https://raw.githubusercontent.com/ml-explore/mlx-lm/0d4d3d04f8ab7ce4a51e7209e8615755a48ba94d/pyproject.toml)
