Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc56a140d2 | ||
|
|
133197e81b | ||
|
|
2bc52972e3 | ||
|
|
c022fa33c0 | ||
|
|
6458604c99 | ||
|
|
9f4303ba2c | ||
|
|
e6513a9b28 | ||
|
|
f1c2d6c4f9 | ||
|
|
cd7ea913e6 | ||
|
|
de0a9b33e7 | ||
|
|
1d614c2b30 | ||
|
|
860b14fd70 | ||
|
|
4bffaccc7c | ||
|
|
526c5543e5 | ||
|
|
5d439c0f38 | ||
|
|
9ab89f92c0 |
@@ -1,7 +1,7 @@
|
||||
repos:
|
||||
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v4.2.0
|
||||
rev: v4.3.0
|
||||
hooks:
|
||||
- id: check-case-conflict
|
||||
- id: check-merge-conflict
|
||||
@@ -14,7 +14,7 @@ repos:
|
||||
- id: trailing-whitespace
|
||||
|
||||
- repo: https://github.com/asottile/pyupgrade
|
||||
rev: v2.32.1
|
||||
rev: v2.34.0
|
||||
hooks:
|
||||
- id: pyupgrade
|
||||
name: PyUpgrade 3.6+
|
||||
@@ -49,7 +49,7 @@ repos:
|
||||
- id: setup-cfg-fmt
|
||||
|
||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||
rev: v0.960
|
||||
rev: v0.961
|
||||
hooks:
|
||||
- id: mypy
|
||||
name: mypy 3.6 on cibuildwheel/
|
||||
|
||||
@@ -89,7 +89,7 @@ jobs:
|
||||
- uses: actions/setup-python@v2
|
||||
|
||||
- name: Install cibuildwheel
|
||||
run: python -m pip install cibuildwheel==2.6.1
|
||||
run: python -m pip install cibuildwheel==2.7.0
|
||||
|
||||
- name: Build wheels
|
||||
run: python -m cibuildwheel --output-dir wheelhouse
|
||||
@@ -203,6 +203,15 @@ Changelog
|
||||
|
||||
<!-- this section was generated by bin/update_readme_changelog.py -- do not edit manually -->
|
||||
|
||||
### v2.7.0
|
||||
|
||||
_17 June 2022_
|
||||
|
||||
- 🌟 Added support for the new `manylinux_2_28` images. These new images are based on AlmaLinux, the community-driven successor to CentOS, unlike manylinux_2_24, which was based on Debian. To build on these images, set your [`CIBW_MANYLINUX_*_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#linux-image) option to `manylinux_2_28`. (#1026)
|
||||
- 🐛 Fix a bug where tests were not being run on CPython 3.11 (when CIBW_PRERELEASE_PYTHONS was set) (#1138)
|
||||
- ✨ You can now build Linux wheels on Windows, as long as you have Docker installed and set to 'Linux containers' (#1117)
|
||||
- 🐛 Fix a bug on macOS that caused cibuildwheel to crash trying to overwrite a previously-built wheel of the same name. (#1129)
|
||||
|
||||
### v2.6.1
|
||||
|
||||
_7 June 2022_
|
||||
@@ -239,13 +248,6 @@ _2 April 2022_
|
||||
- 🛠 Many other dependency updates.
|
||||
- 📚 Minor docs improvements
|
||||
|
||||
### v2.3.1
|
||||
|
||||
_14 December 2021_
|
||||
|
||||
- 🐛 Setting pip options like `PIP_USE_DEPRECATED` in `CIBW_ENVIRONMENT` no longer adversely affects cibuildwheel's ability to set up a Python environment (#956)
|
||||
- 📚 Docs fixes and improvements
|
||||
|
||||
<!-- END bin/update_readme_changelog.py -->
|
||||
|
||||
---
|
||||
|
||||
@@ -45,6 +45,12 @@ images = [
|
||||
Image("manylinux_2_24", "pypy_x86_64", "quay.io/pypa/manylinux_2_24_x86_64", None),
|
||||
Image("manylinux_2_24", "pypy_i686", "quay.io/pypa/manylinux_2_24_i686", None),
|
||||
Image("manylinux_2_24", "pypy_aarch64", "quay.io/pypa/manylinux_2_24_aarch64", None),
|
||||
# manylinux_2_28 images
|
||||
Image("manylinux_2_28", "x86_64", "quay.io/pypa/manylinux_2_28_x86_64", None),
|
||||
Image("manylinux_2_28", "aarch64", "quay.io/pypa/manylinux_2_28_aarch64", None),
|
||||
Image("manylinux_2_28", "ppc64le", "quay.io/pypa/manylinux_2_28_ppc64le", None),
|
||||
Image("manylinux_2_28", "pypy_x86_64", "quay.io/pypa/manylinux_2_28_x86_64", None),
|
||||
Image("manylinux_2_28", "pypy_aarch64", "quay.io/pypa/manylinux_2_28_aarch64", None),
|
||||
# musllinux_1_1 images
|
||||
Image("musllinux_1_1", "x86_64", "quay.io/pypa/musllinux_1_1_x86_64", None),
|
||||
Image("musllinux_1_1", "i686", "quay.io/pypa/musllinux_1_1_i686", None),
|
||||
|
||||
@@ -1 +1 @@
|
||||
__version__ = "2.6.1"
|
||||
__version__ = "2.7.0"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import io
|
||||
import json
|
||||
import os
|
||||
import platform
|
||||
import shlex
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
import uuid
|
||||
from pathlib import Path, PurePath
|
||||
from pathlib import Path, PurePath, PurePosixPath
|
||||
from types import TracebackType
|
||||
from typing import IO, Dict, List, Optional, Sequence, Type, cast
|
||||
|
||||
@@ -128,11 +128,28 @@ class DockerContainer:
|
||||
cwd=from_path,
|
||||
)
|
||||
else:
|
||||
subprocess.run(
|
||||
f'cat {shell_quote(from_path)} | docker exec -i {self.name} sh -c "cat > {shell_quote(to_path)}"',
|
||||
shell=True,
|
||||
check=True,
|
||||
)
|
||||
with subprocess.Popen(
|
||||
[
|
||||
"docker",
|
||||
"exec",
|
||||
"-i",
|
||||
str(self.name),
|
||||
"sh",
|
||||
"-c",
|
||||
f"cat > {shell_quote(to_path)}",
|
||||
],
|
||||
stdin=subprocess.PIPE,
|
||||
) as docker:
|
||||
docker.stdin = cast(IO[bytes], docker.stdin)
|
||||
|
||||
with open(from_path, "rb") as from_file:
|
||||
shutil.copyfileobj(from_file, docker.stdin)
|
||||
|
||||
docker.stdin.close()
|
||||
docker.wait()
|
||||
|
||||
if docker.returncode:
|
||||
raise subprocess.CalledProcessError(docker.returncode, docker.args, None, None)
|
||||
|
||||
def copy_out(self, from_path: PurePath, to_path: Path) -> None:
|
||||
# note: we assume from_path is a dir
|
||||
@@ -145,21 +162,21 @@ class DockerContainer:
|
||||
cwd=to_path,
|
||||
)
|
||||
|
||||
def glob(self, path: PurePath, pattern: str) -> List[PurePath]:
|
||||
glob_pattern = os.path.join(str(path), pattern)
|
||||
def glob(self, path: PurePosixPath, pattern: str) -> List[PurePosixPath]:
|
||||
glob_pattern = path.joinpath(pattern)
|
||||
|
||||
path_strings = json.loads(
|
||||
self.call(
|
||||
[
|
||||
self.UTILITY_PYTHON,
|
||||
"-c",
|
||||
f"import sys, json, glob; json.dump(glob.glob({glob_pattern!r}), sys.stdout)",
|
||||
f"import sys, json, glob; json.dump(glob.glob({str(glob_pattern)!r}), sys.stdout)",
|
||||
],
|
||||
capture_output=True,
|
||||
)
|
||||
)
|
||||
|
||||
return [PurePath(p) for p in path_strings]
|
||||
return [PurePosixPath(p) for p in path_strings]
|
||||
|
||||
def call(
|
||||
self,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import subprocess
|
||||
import sys
|
||||
import textwrap
|
||||
from pathlib import Path, PurePath
|
||||
from pathlib import Path, PurePath, PurePosixPath
|
||||
from typing import Iterator, List, NamedTuple, Set, Tuple
|
||||
|
||||
from .architecture import Architecture
|
||||
@@ -25,8 +25,8 @@ class PythonConfiguration(NamedTuple):
|
||||
path_str: str
|
||||
|
||||
@property
|
||||
def path(self) -> PurePath:
|
||||
return PurePath(self.path_str)
|
||||
def path(self) -> PurePosixPath:
|
||||
return PurePosixPath(self.path_str)
|
||||
|
||||
|
||||
class BuildStep(NamedTuple):
|
||||
@@ -108,7 +108,7 @@ def build_on_docker(
|
||||
container_project_path: PurePath,
|
||||
container_package_dir: PurePath,
|
||||
) -> None:
|
||||
container_output_dir = PurePath("/output")
|
||||
container_output_dir = PurePosixPath("/output")
|
||||
|
||||
log.step("Copying project into Docker...")
|
||||
docker.copy_into(Path.cwd(), container_project_path)
|
||||
@@ -133,7 +133,7 @@ def build_on_docker(
|
||||
)
|
||||
docker.call(["sh", "-c", before_all_prepared], env=env)
|
||||
|
||||
built_wheels: List[PurePath] = []
|
||||
built_wheels: List[PurePosixPath] = []
|
||||
|
||||
for config in platform_configs:
|
||||
log.build_start(config.identifier)
|
||||
@@ -162,7 +162,7 @@ def build_on_docker(
|
||||
|
||||
# check config python is still on PATH
|
||||
which_python = docker.call(["which", "python"], env=env, capture_output=True).strip()
|
||||
if PurePath(which_python) != python_bin / "python":
|
||||
if PurePosixPath(which_python) != python_bin / "python":
|
||||
print(
|
||||
"cibuildwheel: python available on PATH doesn't match our installed instance. If you have modified PATH, ensure that you don't overwrite cibuildwheel's entry or insert python above it.",
|
||||
file=sys.stderr,
|
||||
@@ -170,7 +170,7 @@ def build_on_docker(
|
||||
sys.exit(1)
|
||||
|
||||
which_pip = docker.call(["which", "pip"], env=env, capture_output=True).strip()
|
||||
if PurePath(which_pip) != python_bin / "pip":
|
||||
if PurePosixPath(which_pip) != python_bin / "pip":
|
||||
print(
|
||||
"cibuildwheel: pip available on PATH doesn't match our installed instance. If you have modified PATH, ensure that you don't overwrite cibuildwheel's entry or insert pip above it.",
|
||||
file=sys.stderr,
|
||||
@@ -197,7 +197,7 @@ def build_on_docker(
|
||||
|
||||
log.step("Building wheel...")
|
||||
|
||||
temp_dir = PurePath("/tmp/cibuildwheel")
|
||||
temp_dir = PurePosixPath("/tmp/cibuildwheel")
|
||||
built_wheel_dir = temp_dir / "built_wheel"
|
||||
docker.call(["rm", "-rf", built_wheel_dir])
|
||||
docker.call(["mkdir", "-p", built_wheel_dir])
|
||||
@@ -341,7 +341,7 @@ def build(options: Options, tmp_path: Path) -> None: # pylint: disable=unused-a
|
||||
if cwd != abs_package_dir and cwd not in abs_package_dir.parents:
|
||||
raise Exception("package_dir must be inside the working directory")
|
||||
|
||||
container_project_path = PurePath("/project")
|
||||
container_project_path = PurePosixPath("/project")
|
||||
container_package_dir = container_project_path / abs_package_dir.relative_to(cwd)
|
||||
|
||||
for build_step in get_build_steps(options, python_configurations):
|
||||
|
||||
@@ -535,6 +535,11 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
|
||||
# we're all done here; move it to output (overwrite existing)
|
||||
if abi3_wheel is None:
|
||||
try:
|
||||
(build_options.output_dir / repaired_wheel.name).unlink()
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
shutil.move(str(repaired_wheel), build_options.output_dir)
|
||||
built_wheels.append(build_options.output_dir / repaired_wheel.name)
|
||||
|
||||
|
||||
@@ -81,9 +81,9 @@ python_configurations = [
|
||||
{ identifier = "cp39-macosx_x86_64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.13/python-3.9.13-macos11.pkg" },
|
||||
{ identifier = "cp39-macosx_arm64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.13/python-3.9.13-macos11.pkg" },
|
||||
{ identifier = "cp39-macosx_universal2", version = "3.9", url = "https://www.python.org/ftp/python/3.9.13/python-3.9.13-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_x86_64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.4/python-3.10.4-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_arm64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.4/python-3.10.4-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_universal2", version = "3.10", url = "https://www.python.org/ftp/python/3.10.4/python-3.10.4-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_x86_64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.5/python-3.10.5-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_arm64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.5/python-3.10.5-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_universal2", version = "3.10", url = "https://www.python.org/ftp/python/3.10.5/python-3.10.5-macos11.pkg" },
|
||||
{ identifier = "cp311-macosx_x86_64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0b3-macos11.pkg" },
|
||||
{ identifier = "cp311-macosx_arm64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0b3-macos11.pkg" },
|
||||
{ identifier = "cp311-macosx_universal2", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0b3-macos11.pkg" },
|
||||
@@ -102,12 +102,12 @@ python_configurations = [
|
||||
{ identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" },
|
||||
{ identifier = "cp39-win32", version = "3.9.13", arch = "32" },
|
||||
{ identifier = "cp39-win_amd64", version = "3.9.13", arch = "64" },
|
||||
{ identifier = "cp310-win32", version = "3.10.4", arch = "32" },
|
||||
{ identifier = "cp310-win_amd64", version = "3.10.4", arch = "64" },
|
||||
{ identifier = "cp310-win32", version = "3.10.5", arch = "32" },
|
||||
{ identifier = "cp310-win_amd64", version = "3.10.5", arch = "64" },
|
||||
{ identifier = "cp311-win32", version = "3.11.0-b3", arch = "32" },
|
||||
{ identifier = "cp311-win_amd64", version = "3.11.0-b3", arch = "64" },
|
||||
{ identifier = "cp39-win_arm64", version = "3.9.10", arch = "ARM64" },
|
||||
{ identifier = "cp310-win_arm64", version = "3.10.4", arch = "ARM64" },
|
||||
{ identifier = "cp310-win_arm64", version = "3.10.5", arch = "ARM64" },
|
||||
{ identifier = "cp311-win_arm64", version = "3.11.0-b3", arch = "ARM64" },
|
||||
{ identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-win64.zip" },
|
||||
{ identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.9-win64.zip" },
|
||||
|
||||
@@ -26,5 +26,5 @@ wheel==0.37.1
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==22.1.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==62.3.2
|
||||
setuptools==62.4.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -26,5 +26,5 @@ wheel==0.37.1
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==22.1.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==62.3.2
|
||||
setuptools==62.4.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -32,5 +32,5 @@ zipp==3.8.0
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==22.1.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==62.3.2
|
||||
setuptools==62.4.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -26,5 +26,5 @@ wheel==0.37.1
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==22.1.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==62.3.2
|
||||
setuptools==62.4.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -26,5 +26,5 @@ wheel==0.37.1
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==22.1.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==62.3.2
|
||||
setuptools==62.4.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -26,5 +26,5 @@ wheel==0.37.1
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==22.1.2
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==62.3.2
|
||||
setuptools==62.4.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -1,43 +1,48 @@
|
||||
[x86_64]
|
||||
manylinux1 = quay.io/pypa/manylinux1_x86_64:2022-06-05-89b8e6d
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-06-05-61145a4
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2022-06-05-61145a4
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-06-05-61145a4
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2022-06-05-61145a4
|
||||
manylinux1 = quay.io/pypa/manylinux1_x86_64:2022-06-12-a846b05
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-06-13-c365205
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2022-06-13-c365205
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-06-13-c365205
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2022-06-13-c365205
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2022-06-13-c365205
|
||||
|
||||
[i686]
|
||||
manylinux1 = quay.io/pypa/manylinux1_i686:2022-06-05-89b8e6d
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-06-05-61145a4
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2022-06-05-61145a4
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-06-05-61145a4
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2022-06-05-61145a4
|
||||
manylinux1 = quay.io/pypa/manylinux1_i686:2022-06-12-a846b05
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-06-13-c365205
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2022-06-13-c365205
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-06-13-c365205
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2022-06-13-c365205
|
||||
|
||||
[pypy_x86_64]
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-06-05-61145a4
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2022-06-05-61145a4
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-06-05-61145a4
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-06-13-c365205
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2022-06-13-c365205
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-06-13-c365205
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2022-06-13-c365205
|
||||
|
||||
[pypy_i686]
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-06-05-61145a4
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2022-06-05-61145a4
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-06-05-61145a4
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-06-13-c365205
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2022-06-13-c365205
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-06-13-c365205
|
||||
|
||||
[aarch64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2022-06-05-61145a4
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-06-05-61145a4
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2022-06-05-61145a4
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2022-06-13-c365205
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-06-13-c365205
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2022-06-13-c365205
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2022-06-13-c365205
|
||||
|
||||
[ppc64le]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2022-06-05-61145a4
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-06-05-61145a4
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2022-06-05-61145a4
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2022-06-13-c365205
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-06-13-c365205
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2022-06-13-c365205
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2022-06-13-c365205
|
||||
|
||||
[s390x]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2022-06-05-61145a4
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-06-05-61145a4
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2022-06-05-61145a4
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2022-06-13-c365205
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-06-13-c365205
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2022-06-13-c365205
|
||||
|
||||
[pypy_aarch64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2022-06-05-61145a4
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-06-05-61145a4
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2022-06-13-c365205
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-06-13-c365205
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2022-06-13-c365205
|
||||
|
||||
|
||||
+14
-14
@@ -234,21 +234,20 @@ def selector_matches(patterns: str, string: str) -> bool:
|
||||
|
||||
# Once we require Python 3.10+, we can add kw_only=True
|
||||
@dataclasses.dataclass
|
||||
class IdentifierSelector:
|
||||
class BuildSelector:
|
||||
"""
|
||||
This class holds a set of build/skip patterns. You call an instance with a
|
||||
build identifier, and it returns True if that identifier should be
|
||||
included. Only call this on valid identifiers, ones that have at least 2
|
||||
numeric digits before the first dash. If a pre-release version X.Y is present,
|
||||
you can filter it with prerelease="XY".
|
||||
numeric digits before the first dash.
|
||||
"""
|
||||
|
||||
build_config: str
|
||||
skip_config: str
|
||||
requires_python: Optional[SpecifierSet] = None
|
||||
|
||||
# a pattern that skips prerelease versions, when include_prereleases is False.
|
||||
PRERELEASE_SKIP: ClassVar[str] = "cp311-*"
|
||||
|
||||
skip_config: str
|
||||
build_config: str
|
||||
requires_python: Optional[SpecifierSet] = None
|
||||
prerelease_pythons: bool = False
|
||||
|
||||
def __call__(self, build_id: str) -> bool:
|
||||
@@ -272,15 +271,16 @@ class IdentifierSelector:
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
class BuildSelector(IdentifierSelector):
|
||||
pass
|
||||
class TestSelector:
|
||||
"""
|
||||
A build selector that can only skip tests according to a skip pattern.
|
||||
"""
|
||||
|
||||
skip_config: str
|
||||
|
||||
# Note that requires-python is not needed for TestSelector, as you can't test
|
||||
# what you can't build.
|
||||
@dataclasses.dataclass
|
||||
class TestSelector(IdentifierSelector):
|
||||
build_config: str = "*"
|
||||
def __call__(self, build_id: str) -> bool:
|
||||
should_skip = selector_matches(self.skip_config, build_id)
|
||||
return not should_skip
|
||||
|
||||
|
||||
# Taken from https://stackoverflow.com/a/107717
|
||||
|
||||
@@ -2,6 +2,15 @@
|
||||
title: Changelog
|
||||
---
|
||||
|
||||
### v2.7.0
|
||||
|
||||
_17 June 2022_
|
||||
|
||||
- 🌟 Added support for the new `manylinux_2_28` images. These new images are based on AlmaLinux, the community-driven successor to CentOS, unlike manylinux_2_24, which was based on Debian. To build on these images, set your [`CIBW_MANYLINUX_*_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#linux-image) option to `manylinux_2_28`. (#1026)
|
||||
- 🐛 Fix a bug where tests were not being run on CPython 3.11 (when CIBW_PRERELEASE_PYTHONS was set) (#1138)
|
||||
- ✨ You can now build Linux wheels on Windows, as long as you have Docker installed and set to 'Linux containers' (#1117)
|
||||
- 🐛 Fix a bug on macOS that caused cibuildwheel to crash trying to overwrite a previously-built wheel of the same name. (#1129)
|
||||
|
||||
### v2.6.1
|
||||
|
||||
_7 June 2022_
|
||||
|
||||
+2
-2
@@ -133,7 +133,7 @@ There are two suggested methods for keeping cibuildwheel up to date that instead
|
||||
If you use GitHub Actions for builds, you can use cibuildwheel as an action:
|
||||
|
||||
```yaml
|
||||
uses: pypa/cibuildwheel@v2.6.1
|
||||
uses: pypa/cibuildwheel@v2.7.0
|
||||
```
|
||||
|
||||
This is a composite step that just runs cibuildwheel using pipx. You can set command-line options as `with:` parameters, and use `env:` as normal.
|
||||
@@ -159,7 +159,7 @@ The second option, and the only one that supports other CI systems, is using a `
|
||||
|
||||
```bash
|
||||
# requirements-cibw.txt
|
||||
cibuildwheel==2.6.1
|
||||
cibuildwheel==2.7.0
|
||||
```
|
||||
|
||||
Then your install step would have `python -m pip install -r requirements-cibw.txt` in it. Your `.github/dependabot.yml` file could look like this:
|
||||
|
||||
+3
-3
@@ -886,14 +886,14 @@ The available options are (default value):
|
||||
|
||||
Set an alternative Docker image to be used for building [manylinux / musllinux](https://github.com/pypa/manylinux) wheels.
|
||||
|
||||
For `CIBW_MANYLINUX_*_IMAGE`, 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
|
||||
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`.
|
||||
For `CIBW_MANYLINUX_*_IMAGE`, the value of this option can either be set to `manylinux1`, `manylinux2010`, `manylinux2014`, `manylinux_2_24` or `manylinux_2_28` 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
|
||||
than x86 (x86\_64 and i686) `manylinux2014`, `manylinux_2_24` or `manylinux_2_28` must be used, because the first version of the manylinux specification that supports additional architectures is `manylinux2014`. `manylinux_2_28` is not supported for `i686` & `s390x` architectures.
|
||||
|
||||
For `CIBW_MUSLLINUX_*_IMAGE`, the value of this option can either be set to `musllinux_1_1` to use a pinned version of the [official musllinux images](https://github.com/pypa/musllinux). Alternatively, set these options to any other valid Docker image name.
|
||||
|
||||
If this option is blank, it will fall though to the next available definition (environment variable -> pyproject.toml -> default).
|
||||
|
||||
If setting a custom Docker image, you'll need to make sure it can be used in the same way as the official, default Docker images: all necessary Python and pip versions need to be present in `/opt/python/`, and the auditwheel tool needs to be present for cibuildwheel to work. Apart from that, the architecture and relevant shared system libraries need to be compatible to the relevant standard to produce valid manylinux1/manylinux2010/manylinux2014/manylinux_2_24/musllinux_1_1 wheels (see [pypa/manylinux on GitHub](https://github.com/pypa/manylinux), [PEP 513](https://www.python.org/dev/peps/pep-0513/), [PEP 571](https://www.python.org/dev/peps/pep-0571/), [PEP 599](https://www.python.org/dev/peps/pep-0599/), [PEP 600](https://www.python.org/dev/peps/pep-0600/) and [PEP 656](https://www.python.org/dev/peps/pep-0656/) for more details).
|
||||
If setting a custom Docker image, you'll need to make sure it can be used in the same way as the official, default Docker images: all necessary Python and pip versions need to be present in `/opt/python/`, and the auditwheel tool needs to be present for cibuildwheel to work. Apart from that, the architecture and relevant shared system libraries need to be compatible to the relevant standard to produce valid manylinux1/manylinux2010/manylinux2014/manylinux_2_24/manylinux_2_28/musllinux_1_1 wheels (see [pypa/manylinux on GitHub](https://github.com/pypa/manylinux), [PEP 513](https://www.python.org/dev/peps/pep-0513/), [PEP 571](https://www.python.org/dev/peps/pep-0571/), [PEP 599](https://www.python.org/dev/peps/pep-0599/), [PEP 600](https://www.python.org/dev/peps/pep-0600/) and [PEP 656](https://www.python.org/dev/peps/pep-0656/) for more details).
|
||||
|
||||
Auditwheel detects the version of the manylinux / musllinux standard in the Docker image through the `AUDITWHEEL_PLAT` environment variable, as cibuildwheel has no way of detecting the correct `--plat` command line argument to pass to auditwheel for a custom image. If a Docker image does not correctly set this `AUDITWHEEL_PLAT` environment variable, the `CIBW_ENVIRONMENT` option can be used to do so (e.g., `CIBW_ENVIRONMENT='AUDITWHEEL_PLAT="manylinux2010_$(uname -m)"'`).
|
||||
|
||||
|
||||
+2
-2
@@ -183,7 +183,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build wheels
|
||||
run: pipx run cibuildwheel==2.6.1
|
||||
run: pipx run cibuildwheel==2.7.0
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
@@ -218,7 +218,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/
|
||||
- uses: actions/setup-python@v2
|
||||
|
||||
- name: Install cibuildwheel
|
||||
run: python -m pip install cibuildwheel==2.6.1
|
||||
run: python -m pip install cibuildwheel==2.7.0
|
||||
|
||||
- name: Build wheels
|
||||
run: python -m cibuildwheel --output-dir wheelhouse
|
||||
|
||||
+104
-104
@@ -76,10 +76,10 @@ title: Working examples
|
||||
| [dd-trace-py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Uses custom alternate arch emulation on GitHub |
|
||||
| [sourmash][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Quickly search, compare, and analyze genomic and metagenomic data sets. |
|
||||
| [time-machine][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Time mocking library using only the CPython C API. |
|
||||
| [cyvcf2][] | ![github icon][] | ![apple icon][] ![linux icon][] | cython + htslib == fast VCF and BCF processing |
|
||||
| [CTranslate2][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes libraries from the [Intel oneAPI toolkit](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html) and CUDA kernels compiled for multiple GPU architectures. |
|
||||
| [abess][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A fast best-subset selection library. It uses cibuildwheel to build a large project with C++ extensions. |
|
||||
| [cyvcf2][] | ![github icon][] | ![apple icon][] ![linux icon][] | cython + htslib == fast VCF and BCF processing |
|
||||
| [matrixprofile][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python 3 library making time series data mining tasks, utilizing matrix profile algorithms, accessible to everyone. |
|
||||
| [abess][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A fast best-subset selection library. It uses cibuildwheel to build a large project with C++ extensions. |
|
||||
| [jq.py][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | Python bindings for jq |
|
||||
| [iminuit][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Jupyter-friendly Python interface for C++ MINUIT2 |
|
||||
| [Tokenizer][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast and customizable text tokenization library with BPE and SentencePiece support |
|
||||
@@ -96,11 +96,11 @@ title: Working examples
|
||||
| [Imagecodecs (fork)][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] | Over 20 external dependencies in compiled libraries, custom docker image, `libomp`, `openblas` and `install_name_tool` for macOS. |
|
||||
| [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. |
|
||||
| [clang-format][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Scikit-build wrapper around LLVM's CMake, all platforms, generic wheels. |
|
||||
| [numpythia][] | ![github icon][] | ![apple icon][] ![linux icon][] | The interface between PYTHIA and NumPy |
|
||||
| [power-grid-model][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python/C++ library for distribution power system analysis |
|
||||
| [pyjet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The interface between FastJet and NumPy |
|
||||
| [numpythia][] | ![github icon][] | ![apple icon][] ![linux icon][] | The interface between PYTHIA and NumPy |
|
||||
| [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 |
|
||||
| [pillow-heif][] | ![github icon][] | ![apple icon][] ![linux icon][] | Python CFFI binding to libheif library with third party dependencies like `libde265`, `x265`, `libaom` with test & publishing on PyPi. |
|
||||
| [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 |
|
||||
| [ninja][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Multitagged binary builds for all supported platforms, using cibw 2 config configuration. |
|
||||
| [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. |
|
||||
| [pyinstrument_cext][] | ![travisci icon][] ![appveyor icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A simple C extension, without external dependencies |
|
||||
@@ -176,10 +176,10 @@ title: Working examples
|
||||
[dd-trace-py]: https://github.com/DataDog/dd-trace-py
|
||||
[sourmash]: https://github.com/dib-lab/sourmash
|
||||
[time-machine]: https://github.com/adamchainz/time-machine
|
||||
[cyvcf2]: https://github.com/brentp/cyvcf2
|
||||
[CTranslate2]: https://github.com/OpenNMT/CTranslate2
|
||||
[abess]: https://github.com/abess-team/abess
|
||||
[cyvcf2]: https://github.com/brentp/cyvcf2
|
||||
[matrixprofile]: https://github.com/matrix-profile-foundation/matrixprofile
|
||||
[abess]: https://github.com/abess-team/abess
|
||||
[jq.py]: https://github.com/mwilliamson/jq.py
|
||||
[iminuit]: https://github.com/scikit-hep/iminuit
|
||||
[Tokenizer]: https://github.com/OpenNMT/Tokenizer
|
||||
@@ -196,11 +196,11 @@ title: Working examples
|
||||
[Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build
|
||||
[polaroid]: https://github.com/daggy1234/polaroid
|
||||
[clang-format]: https://github.com/ssciwr/clang-format-wheel
|
||||
[numpythia]: https://github.com/scikit-hep/numpythia
|
||||
[power-grid-model]: https://github.com/alliander-opensource/power-grid-model
|
||||
[pyjet]: https://github.com/scikit-hep/pyjet
|
||||
[numpythia]: https://github.com/scikit-hep/numpythia
|
||||
[pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example
|
||||
[pillow-heif]: https://github.com/bigcat88/pillow_heif
|
||||
[pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example
|
||||
[ninja]: https://github.com/scikit-build/ninja-python-distributions
|
||||
[GSD]: https://github.com/glotzerlab/gsd
|
||||
[pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext
|
||||
@@ -218,105 +218,105 @@ title: Working examples
|
||||
[apple icon]: data/readme_icons/apple.svg
|
||||
[linux icon]: data/readme_icons/linux.svg
|
||||
|
||||
<!-- scikit-learn: 50318, last pushed 0 days ago -->
|
||||
<!-- NumPy: 20611, last pushed 0 days ago -->
|
||||
<!-- Tornado: 20565, last pushed 1 days ago -->
|
||||
<!-- pytorch-fairseq: 17149, last pushed 0 days ago -->
|
||||
<!-- Matplotlib: 15597, last pushed 0 days ago -->
|
||||
<!-- NCNN: 14686, last pushed 0 days ago -->
|
||||
<!-- Kivy: 14676, last pushed 6 days ago -->
|
||||
<!-- Prophet: 14519, last pushed 0 days ago -->
|
||||
<!-- MyPy: 13207, last pushed 0 days ago -->
|
||||
<!-- pydantic: 10083, last pushed 4 days ago -->
|
||||
<!-- uvloop: 8643, last pushed 3 days ago -->
|
||||
<!-- MemRay: 8533, last pushed 1 days ago -->
|
||||
<!-- psutil: 8432, last pushed 1 days ago -->
|
||||
<!-- vaex: 7100, last pushed 1 days ago -->
|
||||
<!-- Google Benchmark: 6519, last pushed 4 days ago -->
|
||||
<!-- Apache Beam: 5557, last pushed 0 days ago -->
|
||||
<!-- asyncpg: 5502, last pushed 25 days ago -->
|
||||
<!-- duckdb: 5216, last pushed 0 days ago -->
|
||||
<!-- scikit-image: 4923, last pushed 1 days ago -->
|
||||
<!-- PyGame: 4848, last pushed 0 days ago -->
|
||||
<!-- cmake: 4803, last pushed 0 days ago -->
|
||||
<!-- twisted-iocpsupport: 4615, last pushed 0 days ago -->
|
||||
<!-- websockets: 3962, last pushed 21 days ago -->
|
||||
<!-- cvxpy: 3944, last pushed 0 days ago -->
|
||||
<!-- PyOxidizer: 3819, last pushed 0 days ago -->
|
||||
<!-- UltraJSON: 3721, last pushed 1 days ago -->
|
||||
<!-- Triton: 3654, last pushed 0 days ago -->
|
||||
<!-- River: 3399, last pushed 0 days ago -->
|
||||
<!-- OpenSpiel: 3202, last pushed 0 days ago -->
|
||||
<!-- pyzmq: 3094, last pushed 3 days ago -->
|
||||
<!-- aiortc: 2937, last pushed 10 days ago -->
|
||||
<!-- vispy: 2878, last pushed 0 days ago -->
|
||||
<!-- Implicit: 2798, last pushed 3 days ago -->
|
||||
<!-- Confluent client for Kafka: 2797, last pushed 2 days ago -->
|
||||
<!-- tinyobjloader: 2548, last pushed 160 days ago -->
|
||||
<!-- Dependency Injector: 2155, last pushed 49 days ago -->
|
||||
<!-- coverage.py: 2061, last pushed 0 days ago -->
|
||||
<!-- PyCryptodome: 2014, last pushed 0 days ago -->
|
||||
<!-- PyYAML: 1854, last pushed 25 days ago -->
|
||||
<!-- numexpr: 1759, last pushed 11 days ago -->
|
||||
<!-- h5py: 1740, last pushed 3 days ago -->
|
||||
<!-- Wrapt: 1685, last pushed 35 days ago -->
|
||||
<!-- PyAV: 1574, last pushed 17 days ago -->
|
||||
<!-- SimpleJSON: 1490, last pushed 44 days ago -->
|
||||
<!-- OpenColorIO: 1316, last pushed 0 days ago -->
|
||||
<!-- pikepdf: 1255, last pushed 7 days ago -->
|
||||
<!-- Line Profiler: 1232, last pushed 8 days ago -->
|
||||
<!-- PyTables: 1128, last pushed 47 days ago -->
|
||||
<!-- OpenTimelineIO: 1056, last pushed 0 days ago -->
|
||||
<!-- ruptures: 969, last pushed 19 days ago -->
|
||||
<!-- aioquic: 941, last pushed 27 days ago -->
|
||||
<!-- DeepForest: 762, last pushed 22 days ago -->
|
||||
<!-- google neuroglancer: 736, last pushed 6 days ago -->
|
||||
<!-- Psycopg 3: 690, last pushed 0 days ago -->
|
||||
<!-- Parselmouth: 661, last pushed 62 days ago -->
|
||||
<!-- AutoPy: 648, last pushed 162 days ago -->
|
||||
<!-- H3-py: 532, last pushed 0 days ago -->
|
||||
<!-- Rtree: 480, last pushed 47 days ago -->
|
||||
<!-- markupsafe: 473, last pushed 4 days ago -->
|
||||
<!-- python-rapidjson: 454, last pushed 11 days ago -->
|
||||
<!-- python-snappy: 437, last pushed 81 days ago -->
|
||||
<!-- pybind11 cmake_example: 403, last pushed 2 days ago -->
|
||||
<!-- KDEpy: 374, last pushed 115 days ago -->
|
||||
<!-- tgcalls: 359, last pushed 1 days ago -->
|
||||
<!-- pybind11 python_example: 328, last pushed 2 days ago -->
|
||||
<!-- scikit-learn: 50434, last pushed 0 days ago -->
|
||||
<!-- NumPy: 20694, last pushed 0 days ago -->
|
||||
<!-- Tornado: 20578, last pushed 0 days ago -->
|
||||
<!-- pytorch-fairseq: 17225, last pushed 0 days ago -->
|
||||
<!-- Matplotlib: 15650, last pushed 0 days ago -->
|
||||
<!-- NCNN: 14749, last pushed 0 days ago -->
|
||||
<!-- Kivy: 14695, last pushed 15 days ago -->
|
||||
<!-- Prophet: 14557, last pushed 10 days ago -->
|
||||
<!-- MyPy: 13244, last pushed 0 days ago -->
|
||||
<!-- pydantic: 10153, last pushed 0 days ago -->
|
||||
<!-- uvloop: 8665, last pushed 5 days ago -->
|
||||
<!-- MemRay: 8648, last pushed 0 days ago -->
|
||||
<!-- psutil: 8466, last pushed 10 days ago -->
|
||||
<!-- vaex: 7118, last pushed 1 days ago -->
|
||||
<!-- Google Benchmark: 6558, last pushed 0 days ago -->
|
||||
<!-- Apache Beam: 5592, last pushed 0 days ago -->
|
||||
<!-- asyncpg: 5511, last pushed 1 days ago -->
|
||||
<!-- duckdb: 5277, last pushed 0 days ago -->
|
||||
<!-- scikit-image: 4935, last pushed 0 days ago -->
|
||||
<!-- PyGame: 4875, last pushed 0 days ago -->
|
||||
<!-- cmake: 4832, last pushed 0 days ago -->
|
||||
<!-- twisted-iocpsupport: 4628, last pushed 0 days ago -->
|
||||
<!-- websockets: 3974, last pushed 31 days ago -->
|
||||
<!-- cvxpy: 3961, last pushed 1 days ago -->
|
||||
<!-- PyOxidizer: 3859, last pushed 1 days ago -->
|
||||
<!-- UltraJSON: 3730, last pushed 1 days ago -->
|
||||
<!-- Triton: 3657, last pushed 0 days ago -->
|
||||
<!-- River: 3439, last pushed 0 days ago -->
|
||||
<!-- OpenSpiel: 3214, last pushed 1 days ago -->
|
||||
<!-- pyzmq: 3099, last pushed 0 days ago -->
|
||||
<!-- aiortc: 2949, last pushed 8 days ago -->
|
||||
<!-- vispy: 2883, last pushed 2 days ago -->
|
||||
<!-- Implicit: 2808, last pushed 5 days ago -->
|
||||
<!-- Confluent client for Kafka: 2805, last pushed 0 days ago -->
|
||||
<!-- tinyobjloader: 2557, last pushed 170 days ago -->
|
||||
<!-- Dependency Injector: 2172, last pushed 59 days ago -->
|
||||
<!-- coverage.py: 2072, last pushed 0 days ago -->
|
||||
<!-- PyCryptodome: 2018, last pushed 7 days ago -->
|
||||
<!-- PyYAML: 1865, last pushed 5 days ago -->
|
||||
<!-- numexpr: 1758, last pushed 20 days ago -->
|
||||
<!-- h5py: 1747, last pushed 0 days ago -->
|
||||
<!-- Wrapt: 1686, last pushed 44 days ago -->
|
||||
<!-- PyAV: 1579, last pushed 27 days ago -->
|
||||
<!-- SimpleJSON: 1495, last pushed 54 days ago -->
|
||||
<!-- OpenColorIO: 1320, last pushed 4 days ago -->
|
||||
<!-- pikepdf: 1308, last pushed 5 days ago -->
|
||||
<!-- Line Profiler: 1244, last pushed 5 days ago -->
|
||||
<!-- PyTables: 1132, last pushed 57 days ago -->
|
||||
<!-- OpenTimelineIO: 1063, last pushed 6 days ago -->
|
||||
<!-- ruptures: 974, last pushed 29 days ago -->
|
||||
<!-- aioquic: 956, last pushed 0 days ago -->
|
||||
<!-- DeepForest: 763, last pushed 32 days ago -->
|
||||
<!-- google neuroglancer: 737, last pushed 0 days ago -->
|
||||
<!-- Psycopg 3: 696, last pushed 0 days ago -->
|
||||
<!-- Parselmouth: 662, last pushed 71 days ago -->
|
||||
<!-- AutoPy: 653, last pushed 172 days ago -->
|
||||
<!-- H3-py: 538, last pushed 6 days ago -->
|
||||
<!-- Rtree: 481, last pushed 57 days ago -->
|
||||
<!-- markupsafe: 472, last pushed 1 days ago -->
|
||||
<!-- python-rapidjson: 454, last pushed 20 days ago -->
|
||||
<!-- python-snappy: 438, last pushed 90 days ago -->
|
||||
<!-- pybind11 cmake_example: 411, last pushed 7 days ago -->
|
||||
<!-- KDEpy: 376, last pushed 125 days ago -->
|
||||
<!-- tgcalls: 364, last pushed 10 days ago -->
|
||||
<!-- pybind11 python_example: 331, last pushed 7 days ago -->
|
||||
<!-- dd-trace-py: 325, last pushed 0 days ago -->
|
||||
<!-- sourmash: 306, last pushed 4 days ago -->
|
||||
<!-- time-machine: 303, last pushed 1 days ago -->
|
||||
<!-- cyvcf2: 298, last pushed 16 days ago -->
|
||||
<!-- CTranslate2: 296, last pushed 2 days ago -->
|
||||
<!-- abess: 266, last pushed 5 days ago -->
|
||||
<!-- matrixprofile: 264, last pushed 345 days ago -->
|
||||
<!-- jq.py: 216, last pushed 119 days ago -->
|
||||
<!-- sourmash: 307, last pushed 0 days ago -->
|
||||
<!-- time-machine: 304, last pushed 1 days ago -->
|
||||
<!-- CTranslate2: 300, last pushed 1 days ago -->
|
||||
<!-- cyvcf2: 299, last pushed 25 days ago -->
|
||||
<!-- matrixprofile: 269, last pushed 1 days ago -->
|
||||
<!-- abess: 266, last pushed 0 days ago -->
|
||||
<!-- jq.py: 218, last pushed 129 days ago -->
|
||||
<!-- iminuit: 206, last pushed 2 days ago -->
|
||||
<!-- Tokenizer: 183, last pushed 90 days ago -->
|
||||
<!-- PyGLM: 142, last pushed 69 days ago -->
|
||||
<!-- boost-histogram: 114, last pushed 6 days ago -->
|
||||
<!-- bx-python: 113, last pushed 151 days ago -->
|
||||
<!-- Tokenizer: 184, last pushed 100 days ago -->
|
||||
<!-- PyGLM: 142, last pushed 78 days ago -->
|
||||
<!-- boost-histogram: 114, last pushed 1 days ago -->
|
||||
<!-- bx-python: 113, last pushed 161 days ago -->
|
||||
<!-- iDynTree: 105, last pushed 4 days ago -->
|
||||
<!-- TgCrypto: 104, last pushed 93 days ago -->
|
||||
<!-- Python-WebRTC: 89, last pushed 87 days ago -->
|
||||
<!-- pybase64: 84, last pushed 0 days ago -->
|
||||
<!-- Arbor: 72, last pushed 2 days ago -->
|
||||
<!-- fathon: 61, last pushed 3 days ago -->
|
||||
<!-- etebase-py: 57, last pushed 160 days ago -->
|
||||
<!-- Imagecodecs (fork): 44, last pushed 19 days ago -->
|
||||
<!-- polaroid: 40, last pushed 25 days ago -->
|
||||
<!-- clang-format: 37, last pushed 2 days ago -->
|
||||
<!-- power-grid-model: 34, last pushed 2 days ago -->
|
||||
<!-- pyjet: 33, last pushed 11 days ago -->
|
||||
<!-- numpythia: 33, last pushed 10 days ago -->
|
||||
<!-- pybind11 scikit_build_example: 26, last pushed 2 days ago -->
|
||||
<!-- pillow-heif: 26, last pushed 3 days ago -->
|
||||
<!-- ninja: 24, last pushed 0 days ago -->
|
||||
<!-- GSD: 19, last pushed 4 days ago -->
|
||||
<!-- pyinstrument_cext: 10, last pushed 240 days ago -->
|
||||
<!-- xmlstarlet: 9, last pushed 6 days ago -->
|
||||
<!-- CorrectionLib: 9, last pushed 11 days ago -->
|
||||
<!-- SiPM: 6, last pushed 4 days ago -->
|
||||
<!-- TgCrypto: 104, last pushed 103 days ago -->
|
||||
<!-- Python-WebRTC: 89, last pushed 96 days ago -->
|
||||
<!-- pybase64: 83, last pushed 1 days ago -->
|
||||
<!-- Arbor: 73, last pushed 0 days ago -->
|
||||
<!-- fathon: 61, last pushed 12 days ago -->
|
||||
<!-- etebase-py: 57, last pushed 0 days ago -->
|
||||
<!-- Imagecodecs (fork): 45, last pushed 0 days ago -->
|
||||
<!-- polaroid: 41, last pushed 34 days ago -->
|
||||
<!-- clang-format: 39, last pushed 2 days ago -->
|
||||
<!-- numpythia: 34, last pushed 7 days ago -->
|
||||
<!-- power-grid-model: 34, last pushed 0 days ago -->
|
||||
<!-- pyjet: 33, last pushed 7 days ago -->
|
||||
<!-- pillow-heif: 28, last pushed 1 days ago -->
|
||||
<!-- pybind11 scikit_build_example: 27, last pushed 7 days ago -->
|
||||
<!-- ninja: 24, last pushed 1 days ago -->
|
||||
<!-- GSD: 19, last pushed 14 days ago -->
|
||||
<!-- pyinstrument_cext: 10, last pushed 249 days ago -->
|
||||
<!-- xmlstarlet: 9, last pushed 1 days ago -->
|
||||
<!-- CorrectionLib: 9, last pushed 7 days ago -->
|
||||
<!-- SiPM: 6, last pushed 14 days ago -->
|
||||
|
||||
<!-- END bin/projects.py -->
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ stack: python 3.7
|
||||
init:
|
||||
- cmd: set PATH=C:\Python37;C:\Python37\Scripts;%PATH%
|
||||
|
||||
install: python -m pip install cibuildwheel==2.6.1
|
||||
install: python -m pip install cibuildwheel==2.7.0
|
||||
|
||||
build_script: python -m cibuildwheel --output-dir wheelhouse
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ jobs:
|
||||
- bash: |
|
||||
set -o errexit
|
||||
python3 -m pip install --upgrade pip
|
||||
pip3 install cibuildwheel==2.6.1
|
||||
pip3 install cibuildwheel==2.7.0
|
||||
displayName: Install dependencies
|
||||
- bash: cibuildwheel --output-dir wheelhouse .
|
||||
displayName: Build wheels
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
- bash: |
|
||||
set -o errexit
|
||||
python3 -m pip install --upgrade pip
|
||||
python3 -m pip install cibuildwheel==2.6.1
|
||||
python3 -m pip install cibuildwheel==2.7.0
|
||||
displayName: Install dependencies
|
||||
- bash: cibuildwheel --output-dir wheelhouse .
|
||||
displayName: Build wheels
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
- bash: |
|
||||
set -o errexit
|
||||
python -m pip install --upgrade pip
|
||||
pip install cibuildwheel==2.6.1
|
||||
pip install cibuildwheel==2.7.0
|
||||
displayName: Install dependencies
|
||||
- bash: cibuildwheel --output-dir wheelhouse .
|
||||
displayName: Build wheels
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
- run:
|
||||
name: Build the Linux wheels.
|
||||
command: |
|
||||
pip3 install --user cibuildwheel==2.6.1
|
||||
pip3 install --user cibuildwheel==2.7.0
|
||||
cibuildwheel --output-dir wheelhouse
|
||||
- store_artifacts:
|
||||
path: wheelhouse/
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
- run:
|
||||
name: Build the OS X wheels.
|
||||
command: |
|
||||
pip3 install cibuildwheel==2.6.1
|
||||
pip3 install cibuildwheel==2.7.0
|
||||
cibuildwheel --output-dir wheelhouse
|
||||
- store_artifacts:
|
||||
path: wheelhouse/
|
||||
|
||||
@@ -10,7 +10,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.6.1
|
||||
uses: pypa/cibuildwheel@v2.7.0
|
||||
env:
|
||||
CIBW_ARCHS_MACOS: x86_64 universal2
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.6.1
|
||||
uses: pypa/cibuildwheel@v2.7.0
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.6.1
|
||||
uses: pypa/cibuildwheel@v2.7.0
|
||||
# to supply options, put them in 'env', like:
|
||||
# env:
|
||||
# CIBW_SOME_OPTION: value
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
platforms: all
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.6.1
|
||||
uses: pypa/cibuildwheel@v2.7.0
|
||||
env:
|
||||
# configure cibuildwheel to build native archs ('auto'), and some
|
||||
# emulated ones
|
||||
|
||||
@@ -12,7 +12,7 @@ linux:
|
||||
DOCKER_TLS_CERTDIR: ""
|
||||
script:
|
||||
- curl -sSL https://get.docker.com/ | sh
|
||||
- python -m pip install cibuildwheel==2.6.1
|
||||
- python -m pip install cibuildwheel==2.7.0
|
||||
- cibuildwheel --output-dir wheelhouse
|
||||
artifacts:
|
||||
paths:
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
||||
|
||||
install:
|
||||
- python3 -m pip install cibuildwheel==2.6.1
|
||||
- python3 -m pip install cibuildwheel==2.7.0
|
||||
|
||||
script:
|
||||
# build the wheels, put them into './dist'
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
||||
|
||||
install:
|
||||
- python3 -m pip install cibuildwheel==2.6.1
|
||||
- python3 -m pip install cibuildwheel==2.7.0
|
||||
|
||||
script:
|
||||
# build the wheels, put them into './wheelhouse'
|
||||
|
||||
@@ -55,7 +55,7 @@ jobs:
|
||||
- stage: deploy
|
||||
name: Build and deploy Linux wheels
|
||||
services: docker
|
||||
install: python3 -m pip install cibuildwheel==2.6.1 twine
|
||||
install: python3 -m pip install cibuildwheel==2.7.0 twine
|
||||
script: python3 -m cibuildwheel --output-dir wheelhouse
|
||||
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||
# Deploy on windows
|
||||
@@ -63,7 +63,7 @@ jobs:
|
||||
name: Build and deploy Windows wheels
|
||||
os: windows
|
||||
language: shell
|
||||
install: python3 -m pip install cibuildwheel==2.6.1 twine
|
||||
install: python3 -m pip install cibuildwheel==2.7.0 twine
|
||||
script: python3 -m cibuildwheel --output-dir wheelhouse
|
||||
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[metadata]
|
||||
name = cibuildwheel
|
||||
version = 2.6.1
|
||||
version = 2.7.0
|
||||
description = Build Python wheels on CI with minimal configuration.
|
||||
long_description = file: README.md
|
||||
long_description_content_type = text/markdown
|
||||
|
||||
@@ -21,17 +21,24 @@ project_with_manylinux_symbols = test_projects.new_c_project(
|
||||
#if !__GLIBC_PREREQ(2, 5) /* manylinux1 is glibc 2.5 */
|
||||
#error "Must run on a glibc >= 2.5 linux environment"
|
||||
#endif
|
||||
|
||||
#if __GLIBC_PREREQ(2, 28)
|
||||
#include <threads.h>
|
||||
#endif
|
||||
"""
|
||||
),
|
||||
spam_c_function_add=textwrap.dedent(
|
||||
r"""
|
||||
#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 24)
|
||||
#if __GLIBC_PREREQ(2, 28)
|
||||
// thrd_equal & thrd_current are only available in manylinux_2_28+
|
||||
sts = thrd_equal(thrd_current(), thrd_current()) ? 0 : 1;;
|
||||
#elif __GLIBC_PREREQ(2, 24)
|
||||
// nextupf is only available in manylinux_2_24+
|
||||
sts = (int)nextupf(0.0F);
|
||||
#elif defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 17) /* manylinux2014 is glibc 2.17 */
|
||||
#elif __GLIBC_PREREQ(2, 17) /* manylinux2014 is glibc 2.17 */
|
||||
// secure_getenv is only available in manylinux2014+
|
||||
sts = (int)(intptr_t)secure_getenv("NON_EXISTING_ENV_VARIABLE");
|
||||
#elif defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10) /* manylinux2010 is glibc 2.12 */
|
||||
#elif __GLIBC_PREREQ(2, 10) /* manylinux2010 is glibc 2.12 */
|
||||
// malloc_info is only available on manylinux2010+
|
||||
sts = malloc_info(0, stdout);
|
||||
#endif
|
||||
@@ -41,7 +48,8 @@ project_with_manylinux_symbols = test_projects.new_c_project(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"manylinux_image", ["manylinux1", "manylinux2010", "manylinux2014", "manylinux_2_24"]
|
||||
"manylinux_image",
|
||||
["manylinux1", "manylinux2010", "manylinux2014", "manylinux_2_24", "manylinux_2_28"],
|
||||
)
|
||||
def test(manylinux_image, tmp_path):
|
||||
if utils.platform != "linux":
|
||||
@@ -49,6 +57,10 @@ def test(manylinux_image, tmp_path):
|
||||
elif platform.machine() not in ["x86_64", "i686"]:
|
||||
if manylinux_image in ["manylinux1", "manylinux2010"]:
|
||||
pytest.skip("manylinux1 and 2010 doesn't exist for non-x86 architectures")
|
||||
elif manylinux_image == "manylinux_2_28" and platform.machine() == "s390x":
|
||||
pytest.skip("manylinux_2_28 doesn't exist for s390x architecture")
|
||||
elif manylinux_image == "manylinux_2_28" and platform.machine() == "i686":
|
||||
pytest.skip("manylinux_2_28 doesn't exist for i686 architecture")
|
||||
|
||||
project_dir = tmp_path / "project"
|
||||
project_with_manylinux_symbols.generate(project_dir)
|
||||
@@ -74,6 +86,9 @@ def test(manylinux_image, tmp_path):
|
||||
if manylinux_image in {"manylinux2010"}:
|
||||
# We don't have a manylinux2010 image for PyPy 3.9, CPython 3.11
|
||||
add_env["CIBW_SKIP"] = "pp39* cp311*"
|
||||
if manylinux_image == "manylinux_2_28" and platform.machine() == "x86_64":
|
||||
# We don't have a manylinux_2_28 image for i686
|
||||
add_env["CIBW_ARCHS"] = "x86_64"
|
||||
|
||||
actual_wheels = utils.cibuildwheel_run(project_dir, add_env=add_env)
|
||||
|
||||
@@ -91,7 +106,13 @@ def test(manylinux_image, tmp_path):
|
||||
if manylinux_image in {"manylinux1"}:
|
||||
# remove PyPy & CPython 3.10 and above
|
||||
expected_wheels = [w for w in expected_wheels if "-pp" not in w and "-cp31" not in w]
|
||||
|
||||
if manylinux_image in {"manylinux2010"}:
|
||||
# remove PyPy 3.9 & CPython 3.11
|
||||
expected_wheels = [w for w in expected_wheels if "-pp39" not in w and "-cp311" not in w]
|
||||
|
||||
if manylinux_image == "manylinux_2_28" and platform.machine() == "x86_64":
|
||||
# We don't have a manylinux_2_28 image for i686
|
||||
expected_wheels = [w for w in expected_wheels if "i686" not in w]
|
||||
|
||||
assert set(actual_wheels) == set(expected_wheels)
|
||||
|
||||
@@ -136,3 +136,14 @@ def test_build_limited_python_patch():
|
||||
|
||||
assert build_selector("cp36-manylinux_x86_64")
|
||||
assert build_selector("cp37-manylinux_x86_64")
|
||||
|
||||
|
||||
def test_testing_selector():
|
||||
# local import to avoid pytest trying to collect this as a test class!
|
||||
from cibuildwheel.util import TestSelector
|
||||
|
||||
test_selector = TestSelector(skip_config="cp36-*")
|
||||
|
||||
assert not test_selector("cp36-win_amd64")
|
||||
assert test_selector("cp37-manylinux_x86_64")
|
||||
assert test_selector("cp311-manylinux_x86_64")
|
||||
|
||||
@@ -3,7 +3,7 @@ import random
|
||||
import shutil
|
||||
import subprocess
|
||||
import textwrap
|
||||
from pathlib import Path, PurePath
|
||||
from pathlib import Path, PurePath, PurePosixPath
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -178,7 +178,7 @@ def test_dir_operations(tmp_path: Path):
|
||||
test_file = test_dir / "test.dat"
|
||||
shutil.copyfile(original_test_file, test_file)
|
||||
|
||||
dst_dir = PurePath("/tmp/test_dir")
|
||||
dst_dir = PurePosixPath("/tmp/test_dir")
|
||||
dst_file = dst_dir / "test.dat"
|
||||
container.copy_into(test_dir, dst_dir)
|
||||
|
||||
|
||||
@@ -80,6 +80,7 @@ def test_empty_selector(platform, intercepted_build_args, monkeypatch):
|
||||
("x86_64", "manylinux2010", "quay.io/pypa/manylinux2010_x86_64:*"),
|
||||
("x86_64", "manylinux2014", "quay.io/pypa/manylinux2014_x86_64:*"),
|
||||
("x86_64", "manylinux_2_24", "quay.io/pypa/manylinux_2_24_x86_64:*"),
|
||||
("x86_64", "manylinux_2_28", "quay.io/pypa/manylinux_2_28_x86_64:*"),
|
||||
("x86_64", "custom_image", "custom_image"),
|
||||
("i686", None, "quay.io/pypa/manylinux2014_i686:*"),
|
||||
("i686", "manylinux1", "quay.io/pypa/manylinux1_i686:*"),
|
||||
@@ -92,6 +93,7 @@ def test_empty_selector(platform, intercepted_build_args, monkeypatch):
|
||||
("pypy_x86_64", "manylinux2010", "quay.io/pypa/manylinux2010_x86_64:*"),
|
||||
("pypy_x86_64", "manylinux2014", "quay.io/pypa/manylinux2014_x86_64:*"),
|
||||
("pypy_x86_64", "manylinux_2_24", "quay.io/pypa/manylinux_2_24_x86_64:*"),
|
||||
("pypy_x86_64", "manylinux_2_28", "quay.io/pypa/manylinux_2_28_x86_64:*"),
|
||||
("pypy_x86_64", "custom_image", "custom_image"),
|
||||
],
|
||||
)
|
||||
|
||||
@@ -2,7 +2,7 @@ import platform as platform_module
|
||||
import subprocess
|
||||
import sys
|
||||
from contextlib import contextmanager
|
||||
from pathlib import Path
|
||||
from pathlib import PurePosixPath
|
||||
from typing import cast
|
||||
from unittest import mock
|
||||
|
||||
@@ -53,7 +53,7 @@ def test_build_default_launches(mock_build_docker, fake_package_dir, monkeypatch
|
||||
# In Python 3.8+, this can be simplified to [0].kwargs
|
||||
kwargs = build_on_docker.call_args_list[0][1]
|
||||
assert "quay.io/pypa/manylinux2014_x86_64" in kwargs["docker"]["docker_image"]
|
||||
assert kwargs["docker"]["cwd"] == Path("/project")
|
||||
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
|
||||
assert not kwargs["docker"]["simulate_32_bit"]
|
||||
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
@@ -61,7 +61,7 @@ def test_build_default_launches(mock_build_docker, fake_package_dir, monkeypatch
|
||||
|
||||
kwargs = build_on_docker.call_args_list[1][1]
|
||||
assert "quay.io/pypa/manylinux2014_i686" in kwargs["docker"]["docker_image"]
|
||||
assert kwargs["docker"]["cwd"] == Path("/project")
|
||||
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
|
||||
assert kwargs["docker"]["simulate_32_bit"]
|
||||
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
@@ -69,7 +69,7 @@ def test_build_default_launches(mock_build_docker, fake_package_dir, monkeypatch
|
||||
|
||||
kwargs = build_on_docker.call_args_list[2][1]
|
||||
assert "quay.io/pypa/musllinux_1_1_x86_64" in kwargs["docker"]["docker_image"]
|
||||
assert kwargs["docker"]["cwd"] == Path("/project")
|
||||
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
|
||||
assert not kwargs["docker"]["simulate_32_bit"]
|
||||
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
@@ -79,7 +79,7 @@ def test_build_default_launches(mock_build_docker, fake_package_dir, monkeypatch
|
||||
|
||||
kwargs = build_on_docker.call_args_list[3][1]
|
||||
assert "quay.io/pypa/musllinux_1_1_i686" in kwargs["docker"]["docker_image"]
|
||||
assert kwargs["docker"]["cwd"] == Path("/project")
|
||||
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
|
||||
assert kwargs["docker"]["simulate_32_bit"]
|
||||
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
@@ -119,7 +119,7 @@ before-all = "true"
|
||||
|
||||
kwargs = build_on_docker.call_args_list[0][1]
|
||||
assert "quay.io/pypa/manylinux2014_x86_64" in kwargs["docker"]["docker_image"]
|
||||
assert kwargs["docker"]["cwd"] == Path("/project")
|
||||
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
|
||||
assert not kwargs["docker"]["simulate_32_bit"]
|
||||
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
@@ -128,7 +128,7 @@ before-all = "true"
|
||||
|
||||
kwargs = build_on_docker.call_args_list[1][1]
|
||||
assert "quay.io/pypa/manylinux2014_x86_64" in kwargs["docker"]["docker_image"]
|
||||
assert kwargs["docker"]["cwd"] == Path("/project")
|
||||
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
|
||||
assert not kwargs["docker"]["simulate_32_bit"]
|
||||
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
@@ -139,7 +139,7 @@ before-all = "true"
|
||||
|
||||
kwargs = build_on_docker.call_args_list[2][1]
|
||||
assert "quay.io/pypa/manylinux_2_24_x86_64" in kwargs["docker"]["docker_image"]
|
||||
assert kwargs["docker"]["cwd"] == Path("/project")
|
||||
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
|
||||
assert not kwargs["docker"]["simulate_32_bit"]
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
assert identifiers == {
|
||||
@@ -151,7 +151,7 @@ before-all = "true"
|
||||
|
||||
kwargs = build_on_docker.call_args_list[3][1]
|
||||
assert "quay.io/pypa/manylinux2014_i686" in kwargs["docker"]["docker_image"]
|
||||
assert kwargs["docker"]["cwd"] == Path("/project")
|
||||
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
|
||||
assert kwargs["docker"]["simulate_32_bit"]
|
||||
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
@@ -159,7 +159,7 @@ before-all = "true"
|
||||
|
||||
kwargs = build_on_docker.call_args_list[4][1]
|
||||
assert "quay.io/pypa/musllinux_1_1_x86_64" in kwargs["docker"]["docker_image"]
|
||||
assert kwargs["docker"]["cwd"] == Path("/project")
|
||||
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
|
||||
assert not kwargs["docker"]["simulate_32_bit"]
|
||||
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
@@ -169,7 +169,7 @@ before-all = "true"
|
||||
|
||||
kwargs = build_on_docker.call_args_list[5][1]
|
||||
assert "quay.io/pypa/musllinux_1_1_i686" in kwargs["docker"]["docker_image"]
|
||||
assert kwargs["docker"]["cwd"] == Path("/project")
|
||||
assert kwargs["docker"]["cwd"] == PurePosixPath("/project")
|
||||
assert kwargs["docker"]["simulate_32_bit"]
|
||||
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
|
||||
Reference in New Issue
Block a user