feat: add default riscv64 images (#2506)
This commit is contained in:
@@ -71,8 +71,12 @@ images = [
|
|||||||
"pypy_aarch64",
|
"pypy_aarch64",
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
# manylinux_2_39 images
|
||||||
|
PyPAImage("manylinux_2_39", ["riscv64"]),
|
||||||
# musllinux_1_2 images
|
# musllinux_1_2 images
|
||||||
PyPAImage("musllinux_1_2", ["x86_64", "i686", "aarch64", "ppc64le", "s390x", "armv7l"]),
|
PyPAImage(
|
||||||
|
"musllinux_1_2", ["x86_64", "i686", "aarch64", "ppc64le", "s390x", "armv7l", "riscv64"]
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
config = configparser.ConfigParser()
|
config = configparser.ConfigParser()
|
||||||
@@ -136,8 +140,5 @@ for image in images:
|
|||||||
suffix = f"_{platform.removeprefix('pypy_')}"
|
suffix = f"_{platform.removeprefix('pypy_')}"
|
||||||
config[platform][image.manylinux_version] = f"{image.image_name}{suffix}:{tag_name}"
|
config[platform][image.manylinux_version] = f"{image.image_name}{suffix}:{tag_name}"
|
||||||
|
|
||||||
if not config.has_section("riscv64"):
|
|
||||||
config["riscv64"] = {}
|
|
||||||
|
|
||||||
with open(RESOURCES / "pinned_docker_images.cfg", "w") as f:
|
with open(RESOURCES / "pinned_docker_images.cfg", "w") as f:
|
||||||
config.write(f)
|
config.write(f)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ manylinux-aarch64-image = "manylinux_2_28"
|
|||||||
manylinux-ppc64le-image = "manylinux_2_28"
|
manylinux-ppc64le-image = "manylinux_2_28"
|
||||||
manylinux-s390x-image = "manylinux_2_28"
|
manylinux-s390x-image = "manylinux_2_28"
|
||||||
manylinux-armv7l-image = "manylinux_2_31"
|
manylinux-armv7l-image = "manylinux_2_31"
|
||||||
manylinux-riscv64-image = "ghcr.io/pypa/cibuildwheel/no_default_image:please_use_override"
|
manylinux-riscv64-image = "manylinux_2_39"
|
||||||
manylinux-pypy_x86_64-image = "manylinux_2_28"
|
manylinux-pypy_x86_64-image = "manylinux_2_28"
|
||||||
manylinux-pypy_i686-image = "manylinux_2_28"
|
manylinux-pypy_i686-image = "manylinux_2_28"
|
||||||
manylinux-pypy_aarch64-image = "manylinux_2_28"
|
manylinux-pypy_aarch64-image = "manylinux_2_28"
|
||||||
@@ -47,7 +47,7 @@ musllinux-aarch64-image = "musllinux_1_2"
|
|||||||
musllinux-ppc64le-image = "musllinux_1_2"
|
musllinux-ppc64le-image = "musllinux_1_2"
|
||||||
musllinux-s390x-image = "musllinux_1_2"
|
musllinux-s390x-image = "musllinux_1_2"
|
||||||
musllinux-armv7l-image = "musllinux_1_2"
|
musllinux-armv7l-image = "musllinux_1_2"
|
||||||
musllinux-riscv64-image = "ghcr.io/pypa/cibuildwheel/no_default_image:please_use_override"
|
musllinux-riscv64-image = "musllinux_1_2"
|
||||||
|
|
||||||
|
|
||||||
[tool.cibuildwheel.linux]
|
[tool.cibuildwheel.linux]
|
||||||
|
|||||||
@@ -48,4 +48,6 @@ manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l:2025.07.20-2
|
|||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.07.20-2
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.07.20-2
|
||||||
|
|
||||||
[riscv64]
|
[riscv64]
|
||||||
|
manylinux_2_39 = quay.io/pypa/manylinux_2_39_riscv64:2025.07.20-2
|
||||||
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_riscv64:2025.07.20-2
|
||||||
|
|
||||||
|
|||||||
+5
-3
@@ -1016,7 +1016,7 @@ The available options are:
|
|||||||
| `manylinux-ppc64le-image` | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_ppc64le) |
|
| `manylinux-ppc64le-image` | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_ppc64le) |
|
||||||
| `manylinux-s390x-image` | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_s390x) |
|
| `manylinux-s390x-image` | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_s390x) |
|
||||||
| `manylinux-armv7l-image` | [`manylinux_2_31`](https://quay.io/pypa/manylinux_2_31_armv7l) |
|
| `manylinux-armv7l-image` | [`manylinux_2_31`](https://quay.io/pypa/manylinux_2_31_armv7l) |
|
||||||
| `manylinux-riscv64-image` | No default |
|
| `manylinux-riscv64-image` | [`manylinux_2_39`](https://quay.io/pypa/manylinux_2_39_riscv64) |
|
||||||
| `manylinux-pypy_aarch64-image` | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_aarch64) |
|
| `manylinux-pypy_aarch64-image` | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_aarch64) |
|
||||||
| `manylinux-pypy_i686-image` | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_i686) |
|
| `manylinux-pypy_i686-image` | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_i686) |
|
||||||
| `musllinux_x86_64-image` | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_x86_64) |
|
| `musllinux_x86_64-image` | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_x86_64) |
|
||||||
@@ -1025,14 +1025,16 @@ The available options are:
|
|||||||
| `musllinux-ppc64le-image` | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_ppc64le) |
|
| `musllinux-ppc64le-image` | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_ppc64le) |
|
||||||
| `musllinux-s390x-image` | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_s390x) |
|
| `musllinux-s390x-image` | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_s390x) |
|
||||||
| `musllinux-armv7l-image` | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_armv7l) |
|
| `musllinux-armv7l-image` | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_armv7l) |
|
||||||
| `musllinux-riscv64-image` | No default |
|
| `musllinux-riscv64-image` | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_riscv64) |
|
||||||
|
|
||||||
Set the Docker image to be used for building [manylinux / musllinux](https://github.com/pypa/manylinux) wheels.
|
Set the Docker image to be used for building [manylinux / musllinux](https://github.com/pypa/manylinux) wheels.
|
||||||
|
|
||||||
For `manylinux-*-image`, except `manylinux-armv7l-image`, the value of this option can either be set to `manylinux2014`, `manylinux_2_28` or `manylinux_2_34` 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 `manylinux-*-image`, except `manylinux-armv7l-image` and `manylinux-riscv64-image`, the value of this option can either be set to `manylinux2014`, `manylinux_2_28` or `manylinux_2_34` 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 `manylinux-armv7l-image`, the value of this option can either be set to `manylinux_2_31` or a custom image. Support is experimental for now. The `manylinux_2_31` value is only available for `armv7`.
|
For `manylinux-armv7l-image`, the value of this option can either be set to `manylinux_2_31` or a custom image. Support is experimental for now. The `manylinux_2_31` value is only available for `armv7`.
|
||||||
|
|
||||||
|
For `manylinux-riscv64-image`, the value of this option can either be set to `manylinux_2_39` or a custom image. Support is experimental for now. The `manylinux_2_39` value is only available for `riscv64`.
|
||||||
|
|
||||||
For `musllinux-*-image`, the value of this option can either be set to `musllinux_1_2` or a custom image.
|
For `musllinux-*-image`, the value of this option can either be set to `musllinux_1_2` or a custom image.
|
||||||
|
|
||||||
If this option is blank, it will fall though to the next available definition (environment variable -> pyproject.toml -> default).
|
If this option is blank, it will fall though to the next available definition (environment variable -> pyproject.toml -> default).
|
||||||
|
|||||||
+3
-10
@@ -34,21 +34,14 @@ def test(tmp_path, request):
|
|||||||
"CIBW_TEST_REQUIRES": "pytest",
|
"CIBW_TEST_REQUIRES": "pytest",
|
||||||
"CIBW_TEST_COMMAND": "pytest {project}/test",
|
"CIBW_TEST_COMMAND": "pytest {project}/test",
|
||||||
"CIBW_ARCHS": archs,
|
"CIBW_ARCHS": archs,
|
||||||
# TODO remove me once proper support is added
|
|
||||||
"CIBW_MANYLINUX_RISCV64_IMAGE": "ghcr.io/mayeut/manylinux_2_35:2025.05.11-1",
|
|
||||||
"CIBW_SKIP": "*-musllinux_riscv64",
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
# also check that we got the right wheels
|
# also check that we got the right wheels
|
||||||
expected_wheels = list(
|
expected_wheels = itertools.chain.from_iterable(
|
||||||
itertools.chain.from_iterable(
|
utils.expected_wheels("spam", "0.1.0", machine_arch=arch, single_arch=True)
|
||||||
utils.expected_wheels("spam", "0.1.0", machine_arch=arch, single_arch=True)
|
for arch in archs.split(" ")
|
||||||
for arch in archs.split(" ")
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
# TODO remove me once proper support is added
|
|
||||||
expected_wheels = [wheel for wheel in expected_wheels if "musllinux_1_2_riscv64" not in wheel]
|
|
||||||
assert set(actual_wheels) == set(expected_wheels)
|
assert set(actual_wheels) == set(expected_wheels)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -254,7 +254,7 @@ def _expected_wheels(
|
|||||||
"armv7l": ["manylinux2014", "manylinux_2_17", "manylinux_2_31"],
|
"armv7l": ["manylinux2014", "manylinux_2_17", "manylinux_2_31"],
|
||||||
"i686": ["manylinux1", "manylinux_2_28", "manylinux_2_5"],
|
"i686": ["manylinux1", "manylinux_2_28", "manylinux_2_5"],
|
||||||
"x86_64": ["manylinux1", "manylinux_2_28", "manylinux_2_5"],
|
"x86_64": ["manylinux1", "manylinux_2_28", "manylinux_2_5"],
|
||||||
"riscv64": ["manylinux_2_31", "manylinux_2_35"],
|
"riscv64": ["manylinux_2_31", "manylinux_2_39"],
|
||||||
}.get(machine_arch, ["manylinux2014", "manylinux_2_17", "manylinux_2_28"])
|
}.get(machine_arch, ["manylinux2014", "manylinux_2_17", "manylinux_2_28"])
|
||||||
|
|
||||||
if musllinux_versions is None:
|
if musllinux_versions is None:
|
||||||
|
|||||||
Reference in New Issue
Block a user