Skip to content

manylinux arm + pypy builds too many wheels #2412

@oscarbenjamin

Description

@oscarbenjamin

I just tested out cibuildwheel 3.0.0b1 in flintlib/python-flint#283 to test building wheels for CPython 3.14. It all seems to be working fine except that too many wheels are built in the manylinux arm job which seems to be caused by pypy pulling in a different docker container.

The other jobs all build 7 wheels e.g. this is what I get for manylinux x86-64:

7 wheels produced in 16 minutes:
  python_flint-0.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl          11,297 kB
  python_flint-0.7.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl          11,213 kB
  python_flint-0.7.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl          11,205 kB
  python_flint-0.7.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl         11,260 kB
  python_flint-0.7.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl          11,205 kB
  python_flint-0.7.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl         11,260 kB
  python_flint-0.7.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl   10,969 kB

However the manylinux arm job builds 13 wheels:

13 wheels produced in 22 minutes:
  python_flint-0.7.1-cp311-cp311-manylinux_2_28_aarch64.whl          11,292 kB
  python_flint-0.7.1-cp311-cp311-manylinux_2_31_armv7l.whl            8,070 kB
  python_flint-0.7.1-cp312-cp312-manylinux_2_28_aarch64.whl          11,200 kB
  python_flint-0.7.1-cp312-cp312-manylinux_2_31_armv7l.whl            8,022 kB
  python_flint-0.7.1-cp313-cp313-manylinux_2_28_aarch64.whl          11,186 kB
  python_flint-0.7.1-cp313-cp313-manylinux_2_31_armv7l.whl            8,013 kB
  python_flint-0.7.1-cp313-cp313t-manylinux_2_28_aarch64.whl         11,279 kB
  python_flint-0.7.1-cp313-cp313t-manylinux_2_31_armv7l.whl           7,990 kB
  python_flint-0.7.1-cp314-cp314-manylinux_2_28_aarch64.whl          11,231 kB
  python_flint-0.7.1-cp314-cp314-manylinux_2_31_armv7l.whl            7,986 kB
  python_flint-0.7.1-cp314-cp314t-manylinux_2_28_aarch64.whl         11,280 kB
  python_flint-0.7.1-cp314-cp314t-manylinux_2_31_armv7l.whl           7,991 kB
  python_flint-0.7.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl   10,965 kB

It seems that what happens is that cibuildwheel uses a manylinux container to build all the non-pypy wheels but then launches a new Ubuntu container for the pypy wheels and then in that new container it builds not just the pypy whel but also new versions of the cpython wheels for armv7l.

The cibuildwheel configuration is at:
https://github.com/flintlib/python-flint/blob/31218dfd2f53d575f22181b0988a2486c201c7a7/.github/workflows/buildwheel.yml#L6-L59
And:
https://github.com/flintlib/python-flint/blob/31218dfd2f53d575f22181b0988a2486c201c7a7/pyproject.toml#L82-L115

Is this expected behaviour?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions