Skip to content

build(fs_connector): ship cp38-abi3 stable-ABI wheels (currently locked to cp312) #567

@kfirtoledo

Description

@kfirtoledo

Problem

fs_backend wheels are tagged cp312-cp312 — locked to one Python
version. vLLM publishes cp38-abi3 wheels, where one .so works on any
cpython 3.8+.

PR #566 tried this and hit a wall: torch 2.10's bundled pybind11 uses
non-stable-API macros (PyTuple_SET_ITEM), so Py_LIMITED_API breaks
every <torch/extension.h> consumer. We ship cp312 today and defer
abi3 to this issue.

Path forward

Bindings need to stop pulling torch's pybind11. Two options:

  • TorchBind: swap pybind11::class_<> for torch::class_<>
    (dispatcher path). Smaller diff; setup.py stays.
  • CMake + system pybind11 (vLLM's approach): bigger build-system
    rewrite, more flexibility.

Acceptance

  • Wheel: llmd_fs_connector-...-cp38-abi3-manylinux_2_35_<arch>.whl
  • Installs/imports on cpython 3.10–3.13
  • Existing storage offload tests pass

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions