Skip to content

Feature Request: Add manylinux_2_17 wheel target #1125

@zastrowm

Description

@zastrowm

I'd like to request that manylinux_2_17 be added as a python wheel target.

manylinux_2_17 is a popular target architecture for python packages, but watchdog currently doesn't prebuilt wheel files for it as part of the publishing process - for example 6.0.0 contains no wheels targeting it: https://pypi.org/project/watchdog/6.0.0/#files

Per PEP-600, the manylinux_2_17 is an alias for manylinux2014_aarch64, but folks attempting binary-only pip installs from manylinux_2_17 still see failures when watchdog is a dependency (see strands-agents/sdk-python#605).

Related packages

To determine if it was worthwhile to support manylinux_2_17, I ran some stats on popular packages. From the list of packages from https://pythonwheels.com/ (360 total packages), 18.3% targeted MANYLINUX_2_17, while 3.9% did not, and 77.8% had no targets other than any:

MANYLINUX_2_17 (66 packages, 18.3%):
aiohttp, bcrypt, black, cffi, charset-normalizer, coverage, cryptography, cython, debugpy, fonttools, frozenlist, google-crc32c, greenlet, grpcio, grpcio-tools, hf-xet, httptools, jiter, kiwisolver, lxml, lz4, markupsafe, matplotlib, msgpack, multidict, mypy, nvidia-cuda-nvrtc-cu12, nvidia-cufft-cu12, nvidia-cusparse-cu12, nvidia-nccl-cu12, nvidia-nvjitlink-cu12, orjson, pandas, pendulum, pillow, propcache, psutil, psycopg2-binary, pycryptodome, pydantic-core, pymongo, pynacl, pyrsistent, pyyaml, pyzmq, regex, rpds-py, ruamel-yaml-clib, ruff, safetensors, scikit-learn, scipy, shapely, snowflake-connector-python, sqlalchemy, tiktoken, tokenizers, tomli, tornado, uv, uvloop, watchfiles, websockets, wrapt, yarl, zstandard

OTHERS (14 packages, 3.9%):
aliyun-python-sdk-core, contourpy, dulwich, multiprocess, mysql-connector-python, numpy, nvidia-cublas-cu12, nvidia-cudnn-cu12, protobuf, pyarrow, pyspark, rapidfuzz, torch, watchdog

ANY ONLY (280 packages, 77.8%):
 <omitted>

Of the packages tested, these were the counts of packages that targeted each architecture:

MANYLINUX_2_17 ARCHITECTURES:
  manylinux_2_17_x86_64: 65
  manylinux_2_17_aarch64: 59
  manylinux_2_17_i686: 27
  manylinux_2_17_ppc64le: 22
  manylinux_2_17_s390x: 22
  manylinux_2_17_armv7l: 13
  manylinux_2_17_ppc64: 2

MANYLINUX2014 ARCHITECTURES:
  manylinux2014_x86_64: 65
  manylinux2014_aarch64: 58
  manylinux2014_i686: 27
  manylinux2014_ppc64le: 22
  manylinux2014_s390x: 22
  manylinux2014_armv7l: 13
  manylinux2014_ppc64: 2

So I would suggest that manylinux_2_17_x86_64 and manylinux_2_17_aarch64 be added as additional wheels on deployment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions