mlx icon indicating copy to clipboard operation
mlx copied to clipboard

Use cibuildwheel to build wheels for all Python versions, platforms and architectures

Open reneleonhardt opened this issue 4 months ago • 0 comments

Several platforms, architectures and Python versions are not being build (for example Python 3.14, musllinux, most glibc variants, ...). https://pypi.org/project/mlx/0.28.0/#files

The manylinux project supports:

  • manylinux2014 images for x86_64, i686, aarch64, ppc64le and s390x.
  • manylinux_2_28 images for x86_64, i686, aarch64, ppc64le and s390x.
  • manylinux_2_34 images for x86_64, i686, aarch64, ppc64le and s390x.
  • manylinux_2_39 images for aarch64 and riscv64.
  • musllinux_1_2 images for x86_64, i686, aarch64, ppc64le, s390x and armv7l.

https://github.com/pypa/manylinux

Debian 13 uses glibc 2.41 for example.

The standard GitHub Action cibuildwheel builds all possible variants, can the wheel builds be modernized to allow a larger user base? https://github.com/pypa/cibuildwheel/#example-setup

To build manylinux, musllinux, macOS, and Windows wheels on GitHub Actions, you could use this .github/workflows/wheels.yml:

name: Build

on: [push, pull_request]

jobs:
  build_wheels:
    name: Build wheels on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-13, macos-latest]

reneleonhardt avatar Aug 15 '25 12:08 reneleonhardt