Skip to content

Commit dce2979

Browse files
mayeutYannickJadoul
authored andcommitted
Add manylinux2014 & manylinux_2_24 support for PyPy
1 parent 6d4cea1 commit dce2979

File tree

5 files changed

+14
-10
lines changed

5 files changed

+14
-10
lines changed

bin/update_docker.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,14 @@ class Image(NamedTuple):
3131
Image("manylinux2014", "aarch64", "quay.io/pypa/manylinux2014_aarch64", None),
3232
Image("manylinux2014", "ppc64le", "quay.io/pypa/manylinux2014_ppc64le", None),
3333
Image("manylinux2014", "s390x", "quay.io/pypa/manylinux2014_s390x", None),
34+
Image("manylinux2014", "pypy_x86_64", "quay.io/pypa/manylinux2014_x86_64", None),
3435
# 2_24 images
3536
Image("manylinux_2_24", "x86_64", "quay.io/pypa/manylinux_2_24_x86_64", None),
3637
Image("manylinux_2_24", "i686", "quay.io/pypa/manylinux_2_24_i686", None),
3738
Image("manylinux_2_24", "aarch64", "quay.io/pypa/manylinux_2_24_aarch64", None),
3839
Image("manylinux_2_24", "ppc64le", "quay.io/pypa/manylinux_2_24_ppc64le", None),
3940
Image("manylinux_2_24", "s390x", "quay.io/pypa/manylinux_2_24_s390x", None),
41+
Image("manylinux_2_24", "pypy_x86_64", "quay.io/pypa/manylinux_2_24_x86_64", None),
4042
]
4143

4244
config = configparser.ConfigParser()

cibuildwheel/resources/pinned_docker_images.cfg

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,18 @@ manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-05-23-b4fb34d
1212

1313
[pypy_x86_64]
1414
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-23-b4fb34d
15+
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-23-b4fb34d
16+
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-23-b4fb34d
1517

1618
[aarch64]
1719
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-23-b4fb34d
18-
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-23-769ff88
20+
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-23-b4fb34d
1921

2022
[ppc64le]
21-
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-05-23-769ff88
22-
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-05-23-769ff88
23+
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-05-23-b4fb34d
24+
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-05-23-b4fb34d
2325

2426
[s390x]
2527
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-05-23-b4fb34d
26-
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-05-23-769ff88
28+
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-05-23-b4fb34d
2729

docs/options.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -479,9 +479,9 @@ The available options are:
479479
- `CIBW_MANYLINUX_PPC64LE_IMAGE`
480480
- `CIBW_MANYLINUX_S390X_IMAGE`
481481

482-
Set an alternative Docker image to be used for building [manylinux](https://github.com/pypa/manylinux) wheels. cibuildwheel will then pull these instead of the default images, [`quay.io/pypa/manylinux2010_x86_64`](https://quay.io/pypa/manylinux2010_x86_64), [`quay.io/pypa/manylinux2010_i686`](https://quay.io/pypa/manylinux2010_i686), [`pypywheels/manylinux2010-pypy_x86_64`](https://hub.docker.com/r/pypywheels/manylinux2010-pypy_x86_64), [`quay.io/pypa/manylinux2014_aarch64`](https://quay.io/pypa/manylinux2014_aarch64), [`quay.io/pypa/manylinux2014_ppc64le`](https://quay.io/pypa/manylinux2014_ppc64le), and [`quay.io/pypa/manylinux2014_s390x`](https://quay.io/pypa/manylinux2010_s390x).
482+
Set an alternative Docker image to be used for building [manylinux](https://github.com/pypa/manylinux) wheels. cibuildwheel will then pull these instead of the default images, [`quay.io/pypa/manylinux2010_x86_64`](https://quay.io/pypa/manylinux2010_x86_64), [`quay.io/pypa/manylinux2010_i686`](https://quay.io/pypa/manylinux2010_i686), [`quay.io/pypa/manylinux2010_x86_64`](https://quay.io/pypa/manylinux2010_x86_64), [`quay.io/pypa/manylinux2014_aarch64`](https://quay.io/pypa/manylinux2014_aarch64), [`quay.io/pypa/manylinux2014_ppc64le`](https://quay.io/pypa/manylinux2014_ppc64le), and [`quay.io/pypa/manylinux2014_s390x`](https://quay.io/pypa/manylinux2010_s390x).
483483

484-
The value of this option can either be set to `manylinux1`, `manylinux2010`, `manylinux2014` or `manylinux_2_24` to use a pinned version of the [official manylinux images](https://github.com/pypa/manylinux) and [PyPy manylinux images](https://github.com/pypy/manylinux). Alternatively, set these options to any other valid Docker image name. For PyPy, only the official `manylinux2010` image is currently available. For architectures other
484+
The value of this option can either be set to `manylinux1`, `manylinux2010`, `manylinux2014` or `manylinux_2_24` to use a pinned version of the [official manylinux images](https://github.com/pypa/manylinux). Alternatively, set these options to any other valid Docker image name. For PyPy, the `manylinux1` image is not available. For architectures other
485485
than x86 (x86\_64 and i686) `manylinux2014` or `manylinux_2_24` must be used, because the first version of the manylinux specification that supports additional architectures is `manylinux2014`.
486486

487487

test/test_manylinuxXXXX_only.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,8 @@ def test(manylinux_image, tmp_path):
6565
"CIBW_MANYLINUX_PPC64LE_IMAGE": manylinux_image,
6666
"CIBW_MANYLINUX_S390X_IMAGE": manylinux_image,
6767
}
68-
if manylinux_image in {"manylinux1", "manylinux2014", "manylinux_2_24"}:
68+
if manylinux_image in {"manylinux1"}:
6969
# We don't have a manylinux1 image for PyPy
70-
# We don't have a manylinux2014 / manylinux_2_24 image for PyPy (yet?)
7170
add_env["CIBW_SKIP"] = "pp*"
7271

7372
actual_wheels = utils.cibuildwheel_run(project_dir, add_env=add_env)
@@ -80,6 +79,6 @@ def test(manylinux_image, tmp_path):
8079
expected_wheels = utils.expected_wheels(
8180
"spam", "0.1.0", manylinux_versions=platform_tag_map.get(manylinux_image, [manylinux_image])
8281
)
83-
if manylinux_image in {"manylinux1", "manylinux2014", "manylinux_2_24"}:
82+
if manylinux_image in {"manylinux1"}:
8483
expected_wheels = [w for w in expected_wheels if "-pp" not in w]
8584
assert set(actual_wheels) == set(expected_wheels)

unit_test/main_tests/main_options_test.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ def test_empty_selector(platform, intercepted_build_args, monkeypatch):
8484
("pypy_x86_64", None, "quay.io/pypa/manylinux2010_x86_64:*"),
8585
("pypy_x86_64", "manylinux1", "manylinux1"), # Does not exist
8686
("pypy_x86_64", "manylinux2010", "quay.io/pypa/manylinux2010_x86_64:*"),
87-
("pypy_x86_64", "manylinux2014", "manylinux2014"), # Does not exist (yet)
87+
("pypy_x86_64", "manylinux2014", "quay.io/pypa/manylinux2014_x86_64:*"),
88+
("pypy_x86_64", "manylinux_2_24", "quay.io/pypa/manylinux_2_24_x86_64:*"),
8889
("pypy_x86_64", "custom_image", "custom_image"),
8990
],
9091
)

0 commit comments

Comments
 (0)