Merge branch 'main' into arm64

This commit is contained in:
Steve Dower
2022-08-15 17:11:37 +01:00
committed by GitHub
45 changed files with 370 additions and 352 deletions
+1 -1
View File
@@ -34,7 +34,7 @@ jobs:
name: artifact
path: dist
- uses: pypa/gh-action-pypi-publish@v1.5.0
- uses: pypa/gh-action-pypi-publish@v1.5.1
with:
user: __token__
password: ${{ secrets.pypi_password }}
+12 -3
View File
@@ -1,6 +1,15 @@
name: Update dependencies
on:
pull_request:
paths:
- '.github/workflows/update-dependencies.yml'
- 'bin/update_pythons.py'
- 'bin/update_docker.py'
- 'bin/update_virtualenv.py'
- 'bin/projects.py'
- 'docs/data/projects.yml'
- 'noxfile.py'
workflow_dispatch:
schedule:
- cron: '0 6 * * 1' # "At 06:00 on Monday."
@@ -12,10 +21,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
- uses: wntrblm/nox@2022.8.7
with:
python-version: "3.11-dev"
- uses: excitedleigh/setup-nox@v2.1.0
python-versions: "3.6, 3.7, 3.8, 3.9, 3.10, 3.11-dev"
- name: "Run update: dependencies"
run: nox --force-color -s update_constraints
+6 -5
View File
@@ -14,7 +14,7 @@ repos:
- id: trailing-whitespace
- repo: https://github.com/asottile/pyupgrade
rev: v2.37.2
rev: v2.37.3
hooks:
- id: pyupgrade
args: ["--py37-plus"]
@@ -22,7 +22,7 @@ repos:
# Autoremoves unused imports
- repo: https://github.com/hadialqattan/pycln
rev: v2.0.4
rev: v2.1.1
hooks:
- id: pycln
args: [--all]
@@ -41,9 +41,10 @@ repos:
- id: black
- repo: https://github.com/asottile/setup-cfg-fmt
rev: v1.20.2
rev: v2.0.0
hooks:
- id: setup-cfg-fmt
args: [--include-version-classifiers, --max-py-version=3.10]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.971
@@ -73,14 +74,14 @@ repos:
additional_dependencies: *mypy-dependencies
- repo: https://github.com/asottile/yesqa
rev: v1.3.0
rev: v1.4.0
hooks:
- id: yesqa
additional_dependencies: &flake8-dependencies
- flake8-bugbear
- repo: https://github.com/PyCQA/flake8
rev: 4.0.1
rev: 5.0.4
hooks:
- id: flake8
exclude: cibuildwheel/resources/
+12 -10
View File
@@ -29,7 +29,7 @@ What does it do?
| CPython 3.8 | ✅ | ✅ | ✅ | ✅ | N/A | ✅ | ✅ | ✅ | ✅ | ✅ |
| CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅² | ✅³ | ✅ | ✅ | ✅ | ✅ |
| CPython 3.10 | ✅ | ✅ | ✅ | ✅ | ✅² | ✅ | ✅ | ✅ | ✅ | ✅ |
| CPython 3.11 | ✅ | ✅ | ✅ | ✅ | ✅² | ✅ | ✅ | ✅ | ✅ | ✅ |
| CPython 3.11 | ✅ | ✅ | ✅ | ✅ | ✅² | ✅ | ✅ | ✅ | ✅ | ✅ |
| PyPy 3.7 v7.3 | ✅ | N/A | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A |
| PyPy 3.8 v7.3 | ✅ | N/A | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A |
| PyPy 3.9 v7.3 | ✅ | N/A | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A |
@@ -37,7 +37,6 @@ What does it do?
<sup>¹ PyPy is only supported for manylinux wheels.</sup><br>
<sup>² Windows arm64 support is experimental.</sup><br>
<sup>³ Alpine 3.14 and very briefly 3.15's default python3 [was not able to load](https://github.com/pypa/cibuildwheel/issues/934) musllinux wheels. This has been fixed; please upgrade the python package if using Alpine from before the fix.</sup><br>
<sup>⁴ CPython 3.11 is available using the [CIBW_PRERELEASE_PYTHONS](https://cibuildwheel.readthedocs.io/en/stable/options/#prerelease-pythons) option.</sup><br>
- Builds manylinux, musllinux, macOS 10.9+, and Windows wheels for CPython and PyPy
- Works on GitHub Actions, Azure Pipelines, Travis CI, AppVeyor, CircleCI, and GitLab CI
@@ -89,7 +88,7 @@ jobs:
- uses: actions/setup-python@v3
- name: Install cibuildwheel
run: python -m pip install cibuildwheel==2.8.1
run: python -m pip install cibuildwheel==2.9.0
- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
@@ -204,6 +203,15 @@ Changelog
<!-- this section was generated by bin/update_readme_changelog.py -- do not edit manually -->
### v2.9.0
_11 August 2022_
- 🌟 CPython 3.11 wheels are now built by default - without the CIBW_PRERELEASE_PYTHONS flag. It's time to build and upload these wheels to PyPI! This release includes CPython 3.11.0rc1, which is guaranteed to be ABI compatible with the final release. (#1226)
- ⚠️ Removed support for running cibuildwheel in Python 3.6. Python 3.6 is EOL. However, cibuildwheel continues to build CPython 3.6 wheels for the moment. (#1175)
- ✨ Improved error messages when misspelling TOML options, suggesting close matches (#1205)
- 🛠 When running on Apple Silicon (so far, an unsupported mode of operation), cibuildwheel no longer builds universal2 wheels by default - just arm64. See [#1204](https://github.com/pypa/cibuildwheel/issues/1204) for discussion. We hope to release official support for native builds on Apple Silicon soon! (#1217)
### v2.8.1
_18 July 2022_
@@ -241,13 +249,6 @@ _7 June 2022_
- 🛠 Update the prerelease CPython 3.11 to 3.11.0b3
### v2.6.0
_25 May 2022_
- 🌟 Added the ability to test building wheels on CPython 3.11! Because CPython 3.11 is in beta, these wheels should not be distributed, because they might not be compatible with the final release, but it's available to build for testing purposes. Use the flag [`--prerelease-pythons` or `CIBW_PRERELEASE_PYTHONS`](https://cibuildwheel.readthedocs.io/en/stable/options/#prerelease-pythons) to test. This version of cibuildwheel includes CPython 3.11.0b1. (#1109)
- 📚 Added an interactive diagram showing how cibuildwheel works to the [docs](https://cibuildwheel.readthedocs.io/en/stable/#how-it-works) (#1100)
<!-- END bin/update_readme_changelog.py -->
---
@@ -272,6 +273,7 @@ Maintainers
- Yannick Jadoul [@YannickJadoul](https://github.com/YannickJadoul)
- Matthieu Darbois [@mayeut](https://github.com/mayeut)
- Henry Schreiner [@henryiii](https://github.com/henryiii)
- Grzegorz Bokota [@Czaki](https://github.com/Czaki)
Credits
-------
+3 -3
View File
@@ -7,7 +7,7 @@ jobs:
inputs:
versionSpec: '3.8'
- bash: |
python -m pip install -e ".[dev]" pytest-azurepipelines
python -m pip install -e ".[dev]"
python ./bin/run_tests.py
- job: macos_38
@@ -17,7 +17,7 @@ jobs:
inputs:
versionSpec: '3.8'
- bash: |
python -m pip install -e ".[dev]" pytest-azurepipelines
python -m pip install -e ".[dev]"
python ./bin/run_tests.py
- job: windows_38
@@ -28,5 +28,5 @@ jobs:
inputs:
versionSpec: '3.8'
- bash: |
python -m pip install -e ".[dev]" pytest-azurepipelines
python -m pip install -e ".[dev]"
python ./bin/run_tests.py
-41
View File
@@ -1,41 +0,0 @@
#!/usr/bin/env python3
from __future__ import annotations
import os
import shutil
import subprocess
import sys
from pathlib import Path
DIR = Path(__file__).parent.resolve()
RESOURCES = DIR.parent / "cibuildwheel/resources"
python_version = "".join(str(v) for v in sys.version_info[:2])
env = os.environ.copy()
# CUSTOM_COMPILE_COMMAND is a pip-compile option that tells users how to
# regenerate the constraints files
env["CUSTOM_COMPILE_COMMAND"] = "bin/update_dependencies.py"
os.chdir(DIR.parent)
subprocess.run(
[
"pip-compile",
"--allow-unsafe",
"--upgrade",
"cibuildwheel/resources/constraints.in",
f"--output-file=cibuildwheel/resources/constraints-python{python_version}.txt",
],
check=True,
env=env,
)
# default constraints.txt
if python_version == "39":
shutil.copyfile(
RESOURCES / f"constraints-python{python_version}.txt",
RESOURCES / "constraints.txt",
)
+1 -1
View File
@@ -1,3 +1,3 @@
from __future__ import annotations
__version__ = "2.8.1"
__version__ = "2.9.0"
-4
View File
@@ -66,10 +66,6 @@ class Architecture(Enum):
if platform == "windows" and native_architecture == Architecture.AMD64:
result.add(Architecture.x86)
if platform == "macos" and native_architecture == Architecture.arm64:
# arm64 can build and test both archs of a universal2 wheel.
result.add(Architecture.universal2)
return result
@staticmethod
+30 -21
View File
@@ -1,5 +1,6 @@
from __future__ import annotations
import difflib
import functools
import os
import sys
@@ -188,14 +189,10 @@ class OptionsReader:
# Validate project config
for option_name in config_options:
if not self._is_valid_global_option(option_name):
raise ConfigOptionError(f'Option "{option_name}" not supported in a config file')
self._validate_global_option(option_name)
for option_name in config_platform_options:
if not self._is_valid_platform_option(option_name):
raise ConfigOptionError(
f'Option "{option_name}" not supported in the "{self.platform}" section'
)
self._validate_platform_option(option_name)
self.config_options = config_options
self.config_platform_options = config_platform_options
@@ -207,40 +204,51 @@ class OptionsReader:
if config_overrides is not None:
if not isinstance(config_overrides, list):
raise ConfigOptionError('"tool.cibuildwheel.overrides" must be a list')
raise ConfigOptionError("'tool.cibuildwheel.overrides' must be a list")
for config_override in config_overrides:
select = config_override.pop("select", None)
if not select:
raise ConfigOptionError('"select" must be set in an override')
raise ConfigOptionError("'select' must be set in an override")
if isinstance(select, list):
select = " ".join(select)
self.overrides.append(Override(select, config_override))
def _is_valid_global_option(self, name: str) -> bool:
def _validate_global_option(self, name: str) -> None:
"""
Returns True if an option with this name is allowed in the
Raises an error if an option with this name is not allowed in the
[tool.cibuildwheel] section of a config file.
"""
allowed_option_names = self.default_options.keys() | PLATFORMS | {"overrides"}
return name in allowed_option_names
if name not in allowed_option_names:
msg = f"Option {name!r} not supported in a config file."
matches = difflib.get_close_matches(name, allowed_option_names, 1, 0.7)
if matches:
msg += f" Perhaps you meant {matches[0]!r}?"
raise ConfigOptionError(msg)
def _is_valid_platform_option(self, name: str) -> bool:
def _validate_platform_option(self, name: str) -> None:
"""
Returns True if an option with this name is allowed in the
Raises an error if an option with this name is not allowed in the
[tool.cibuildwheel.<current-platform>] section of a config file.
"""
disallowed_platform_options = self.disallow.get(self.platform, set())
if name in disallowed_platform_options:
return False
msg = f"{name!r} is not allowed in {disallowed_platform_options}"
raise ConfigOptionError(msg)
allowed_option_names = self.default_options.keys() | self.default_platform_options.keys()
return name in allowed_option_names
if name not in allowed_option_names:
msg = f"Option {name!r} not supported in the {self.platform!r} section"
matches = difflib.get_close_matches(name, allowed_option_names, 1, 0.7)
if matches:
msg += f" Perhaps you meant {matches[0]!r}?"
raise ConfigOptionError(msg)
def _load_file(self, filename: Path) -> tuple[dict[str, Any], dict[str, Any]]:
"""
@@ -290,7 +298,8 @@ class OptionsReader:
"""
if name not in self.default_options and name not in self.default_platform_options:
raise ConfigOptionError(f"{name} must be in cibuildwheel/resources/defaults.toml file")
msg = f"{name!r} must be in cibuildwheel/resources/defaults.toml file to be accessed."
raise ConfigOptionError(msg)
# Environment variable form
envvar = f"CIBW_{name.upper().replace('-', '_')}"
@@ -314,12 +323,12 @@ class OptionsReader:
if isinstance(result, dict):
if table is None:
raise ConfigOptionError(f"{name} does not accept a table")
raise ConfigOptionError(f"{name!r} does not accept a table")
return table["sep"].join(table["item"].format(k=k, v=v) for k, v in result.items())
if isinstance(result, list):
if sep is None:
raise ConfigOptionError(f"{name} does not accept a list")
raise ConfigOptionError(f"{name!r} does not accept a list")
return sep.join(result)
if isinstance(result, int):
@@ -393,7 +402,7 @@ class Options:
container_engine_str = self.reader.get("container-engine")
if container_engine_str not in ["docker", "podman"]:
msg = f"cibuildwheel: Unrecognised container_engine '{container_engine_str}', only 'docker' and 'podman' are supported"
msg = f"cibuildwheel: Unrecognised container_engine {container_engine_str!r}, only 'docker' and 'podman' are supported"
print(msg, file=sys.stderr)
sys.exit(2)
@@ -437,7 +446,7 @@ class Options:
elif build_frontend_str == "pip":
build_frontend = "pip"
else:
msg = f"cibuildwheel: Unrecognised build frontend '{build_frontend_str}', only 'pip' and 'build' are supported"
msg = f"cibuildwheel: Unrecognised build frontend {build_frontend_str!r}, only 'pip' and 'build' are supported"
print(msg, file=sys.stderr)
sys.exit(2)
@@ -445,7 +454,7 @@ class Options:
environment = parse_environment(environment_config)
except (EnvironmentParseError, ValueError):
print(
f'cibuildwheel: Malformed environment option "{environment_config}"',
f"cibuildwheel: Malformed environment option {environment_config!r}",
file=sys.stderr,
)
traceback.print_exc(None, sys.stderr)
+12 -12
View File
@@ -81,12 +81,12 @@ 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.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.0b4-macos11.pkg" },
{ identifier = "cp311-macosx_arm64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0b4-macos11.pkg" },
{ identifier = "cp311-macosx_universal2", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0b4-macos11.pkg" },
{ identifier = "cp310-macosx_x86_64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.6/python-3.10.6-macos11.pkg" },
{ identifier = "cp310-macosx_arm64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.6/python-3.10.6-macos11.pkg" },
{ identifier = "cp310-macosx_universal2", version = "3.10", url = "https://www.python.org/ftp/python/3.10.6/python-3.10.6-macos11.pkg" },
{ identifier = "cp311-macosx_x86_64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0rc1-macos11.pkg" },
{ identifier = "cp311-macosx_arm64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0rc1-macos11.pkg" },
{ identifier = "cp311-macosx_universal2", version = "3.11", url = "https://www.python.org/ftp/python/3.11.0/python-3.11.0rc1-macos11.pkg" },
{ identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-osx64.tar.bz2" },
{ identifier = "pp38-macosx_x86_64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.9-osx64.tar.bz2" },
{ identifier = "pp39-macosx_x86_64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.9-osx64.tar.bz2" },
@@ -102,13 +102,13 @@ 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.5", arch = "32" },
{ identifier = "cp310-win_amd64", version = "3.10.5", arch = "64" },
{ identifier = "cp311-win32", version = "3.11.0-b4", arch = "32" },
{ identifier = "cp311-win_amd64", version = "3.11.0-b4", arch = "64" },
{ identifier = "cp310-win32", version = "3.10.6", arch = "32" },
{ identifier = "cp310-win_amd64", version = "3.10.6", arch = "64" },
{ identifier = "cp311-win32", version = "3.11.0-rc1", arch = "32" },
{ identifier = "cp311-win_amd64", version = "3.11.0-rc1", arch = "64" },
{ identifier = "cp39-win_arm64", version = "3.9.10", arch = "ARM64" },
{ identifier = "cp310-win_arm64", version = "3.10.5", arch = "ARM64" },
{ identifier = "cp311-win_arm64", version = "3.11.0-b4", arch = "ARM64" },
{ identifier = "cp310-win_arm64", version = "3.10.6", arch = "ARM64" },
{ identifier = "cp311-win_arm64", version = "3.11.0-rc1", 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" },
{ identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.9-win64.zip" },
@@ -2,21 +2,19 @@
# This file is autogenerated by pip-compile with python 3.10
# To update, run:
#
# bin/update_dependencies.py
# nox -s update_constraints-3.10
#
delocate==0.10.2
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.5
# via virtualenv
filelock==3.7.1
filelock==3.8.0
# via virtualenv
platformdirs==2.5.2
# via virtualenv
six==1.16.0
# via virtualenv
typing-extensions==4.3.0
# via delocate
virtualenv==20.15.1
virtualenv==20.16.3
# via -r cibuildwheel/resources/constraints.in
wheel==0.37.1
# via
@@ -24,7 +22,7 @@ wheel==0.37.1
# delocate
# The following packages are considered to be unsafe in a requirements file:
pip==22.2
pip==22.2.2
# via -r cibuildwheel/resources/constraints.in
setuptools==63.2.0
setuptools==63.4.2
# via -r cibuildwheel/resources/constraints.in
@@ -2,21 +2,19 @@
# This file is autogenerated by pip-compile with python 3.11
# To update, run:
#
# bin/update_dependencies.py
# nox -s update_constraints-3.11
#
delocate==0.10.2
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.5
# via virtualenv
filelock==3.7.1
filelock==3.8.0
# via virtualenv
platformdirs==2.5.2
# via virtualenv
six==1.16.0
# via virtualenv
typing-extensions==4.3.0
# via delocate
virtualenv==20.15.1
virtualenv==20.16.3
# via -r cibuildwheel/resources/constraints.in
wheel==0.37.1
# via
@@ -24,7 +22,7 @@ wheel==0.37.1
# delocate
# The following packages are considered to be unsafe in a requirements file:
pip==22.2
pip==22.2.2
# via -r cibuildwheel/resources/constraints.in
setuptools==63.2.0
setuptools==63.4.2
# via -r cibuildwheel/resources/constraints.in
@@ -2,7 +2,7 @@
# This file is autogenerated by pip-compile with python 3.6
# To update, run:
#
# bin/update_dependencies.py
# nox -s update_constraints-3.6
#
delocate==0.10.2
# via -r cibuildwheel/resources/constraints.in
@@ -16,13 +16,11 @@ importlib-resources==5.4.0
# via virtualenv
platformdirs==2.4.0
# via virtualenv
six==1.16.0
# via virtualenv
typing-extensions==4.1.1
# via
# delocate
# importlib-metadata
virtualenv==20.15.1
virtualenv==20.16.3
# via -r cibuildwheel/resources/constraints.in
wheel==0.37.1
# via
@@ -2,25 +2,23 @@
# This file is autogenerated by pip-compile with python 3.7
# To update, run:
#
# bin/update_dependencies.py
# nox -s update_constraints-3.7
#
delocate==0.10.2
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.5
# via virtualenv
filelock==3.7.1
filelock==3.8.0
# via virtualenv
importlib-metadata==4.12.0
# via virtualenv
platformdirs==2.5.2
# via virtualenv
six==1.16.0
# via virtualenv
typing-extensions==4.3.0
# via
# delocate
# importlib-metadata
virtualenv==20.15.1
virtualenv==20.16.3
# via -r cibuildwheel/resources/constraints.in
wheel==0.37.1
# via
@@ -30,7 +28,7 @@ zipp==3.8.1
# via importlib-metadata
# The following packages are considered to be unsafe in a requirements file:
pip==22.2
pip==22.2.2
# via -r cibuildwheel/resources/constraints.in
setuptools==63.2.0
setuptools==63.4.2
# via -r cibuildwheel/resources/constraints.in
@@ -2,21 +2,19 @@
# This file is autogenerated by pip-compile with python 3.8
# To update, run:
#
# bin/update_dependencies.py
# nox -s update_constraints-3.8
#
delocate==0.10.2
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.5
# via virtualenv
filelock==3.7.1
filelock==3.8.0
# via virtualenv
platformdirs==2.5.2
# via virtualenv
six==1.16.0
# via virtualenv
typing-extensions==4.3.0
# via delocate
virtualenv==20.15.1
virtualenv==20.16.3
# via -r cibuildwheel/resources/constraints.in
wheel==0.37.1
# via
@@ -24,7 +22,7 @@ wheel==0.37.1
# delocate
# The following packages are considered to be unsafe in a requirements file:
pip==22.2
pip==22.2.2
# via -r cibuildwheel/resources/constraints.in
setuptools==63.2.0
setuptools==63.4.2
# via -r cibuildwheel/resources/constraints.in
@@ -2,21 +2,19 @@
# This file is autogenerated by pip-compile with python 3.9
# To update, run:
#
# bin/update_dependencies.py
# nox -s update_constraints-3.9
#
delocate==0.10.2
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.5
# via virtualenv
filelock==3.7.1
filelock==3.8.0
# via virtualenv
platformdirs==2.5.2
# via virtualenv
six==1.16.0
# via virtualenv
typing-extensions==4.3.0
# via delocate
virtualenv==20.15.1
virtualenv==20.16.3
# via -r cibuildwheel/resources/constraints.in
wheel==0.37.1
# via
@@ -24,7 +22,7 @@ wheel==0.37.1
# delocate
# The following packages are considered to be unsafe in a requirements file:
pip==22.2
pip==22.2.2
# via -r cibuildwheel/resources/constraints.in
setuptools==63.2.0
setuptools==63.4.2
# via -r cibuildwheel/resources/constraints.in
+6 -8
View File
@@ -1,22 +1,20 @@
#
# This file is autogenerated by pip-compile with python 3.9
# This file is autogenerated by pip-compile with python 3.11
# To update, run:
#
# bin/update_dependencies.py
# nox -s update_constraints-3.11
#
delocate==0.10.2
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.5
# via virtualenv
filelock==3.7.1
filelock==3.8.0
# via virtualenv
platformdirs==2.5.2
# via virtualenv
six==1.16.0
# via virtualenv
typing-extensions==4.3.0
# via delocate
virtualenv==20.15.1
virtualenv==20.16.3
# via -r cibuildwheel/resources/constraints.in
wheel==0.37.1
# via
@@ -24,7 +22,7 @@ wheel==0.37.1
# delocate
# The following packages are considered to be unsafe in a requirements file:
pip==22.2
pip==22.2.2
# via -r cibuildwheel/resources/constraints.in
setuptools==63.2.0
setuptools==63.4.2
# via -r cibuildwheel/resources/constraints.in
+32 -32
View File
@@ -1,48 +1,48 @@
[x86_64]
manylinux1 = quay.io/pypa/manylinux1_x86_64:2022-07-17-f8ddacc
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-07-21-947f13c
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2022-07-21-947f13c
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-07-21-947f13c
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2022-07-21-947f13c
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2022-07-21-947f13c
manylinux1 = quay.io/pypa/manylinux1_x86_64:2022-08-08-7292f33
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2022-08-09-51a01be
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-08-09-51a01be
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2022-08-09-51a01be
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2022-08-09-51a01be
[i686]
manylinux1 = quay.io/pypa/manylinux1_i686:2022-07-17-f8ddacc
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-07-21-947f13c
manylinux2014 = quay.io/pypa/manylinux2014_i686:2022-07-21-947f13c
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-07-21-947f13c
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2022-07-21-947f13c
manylinux1 = quay.io/pypa/manylinux1_i686:2022-08-08-7292f33
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
manylinux2014 = quay.io/pypa/manylinux2014_i686:2022-08-09-51a01be
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-08-09-51a01be
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2022-08-09-51a01be
[pypy_x86_64]
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-07-21-947f13c
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2022-07-21-947f13c
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-07-21-947f13c
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2022-07-21-947f13c
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2022-08-09-51a01be
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-08-09-51a01be
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2022-08-09-51a01be
[pypy_i686]
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-07-21-947f13c
manylinux2014 = quay.io/pypa/manylinux2014_i686:2022-07-21-947f13c
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-07-21-947f13c
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
manylinux2014 = quay.io/pypa/manylinux2014_i686:2022-08-09-51a01be
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-08-09-51a01be
[aarch64]
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2022-07-21-947f13c
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-07-21-947f13c
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2022-07-21-947f13c
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2022-07-21-947f13c
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2022-08-09-51a01be
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-08-09-51a01be
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2022-08-09-51a01be
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2022-08-09-51a01be
[ppc64le]
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2022-07-21-947f13c
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-07-21-947f13c
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2022-07-21-947f13c
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2022-07-21-947f13c
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2022-08-09-51a01be
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-08-09-51a01be
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2022-08-09-51a01be
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2022-08-09-51a01be
[s390x]
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2022-07-21-947f13c
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-07-21-947f13c
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2022-07-21-947f13c
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2022-08-09-51a01be
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-08-09-51a01be
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2022-08-09-51a01be
[pypy_aarch64]
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2022-07-21-947f13c
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-07-21-947f13c
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2022-07-21-947f13c
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2022-08-09-51a01be
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-08-09-51a01be
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2022-08-09-51a01be
+2 -2
View File
@@ -1,2 +1,2 @@
version = "20.15.1"
url = "https://github.com/pypa/get-virtualenv/blob/20.15.1/public/virtualenv.pyz?raw=true"
version = "20.16.3"
url = "https://github.com/pypa/get-virtualenv/blob/20.16.3/public/virtualenv.pyz?raw=true"
+1 -1
View File
@@ -242,7 +242,7 @@ class BuildSelector:
requires_python: SpecifierSet | None = None
# a pattern that skips prerelease versions, when include_prereleases is False.
PRERELEASE_SKIP: ClassVar[str] = "cp311-*"
PRERELEASE_SKIP: ClassVar[str] = ""
prerelease_pythons: bool = False
def __call__(self, build_id: str) -> bool:
+9
View File
@@ -2,6 +2,15 @@
title: Changelog
---
### v2.9.0
_11 August 2022_
- 🌟 CPython 3.11 wheels are now built by default - without the CIBW_PRERELEASE_PYTHONS flag. It's time to build and upload these wheels to PyPI! This release includes CPython 3.11.0rc1, which is guaranteed to be ABI compatible with the final release. (#1226)
- ⚠️ Removed support for running cibuildwheel in Python 3.6. Python 3.6 is EOL. However, cibuildwheel continues to build CPython 3.6 wheels for the moment. (#1175)
- ✨ Improved error messages when misspelling TOML options, suggesting close matches (#1205)
- 🛠 When running on Apple Silicon (so far, an unsupported mode of operation), cibuildwheel no longer builds universal2 wheels by default - just arm64. See [#1204](https://github.com/pypa/cibuildwheel/issues/1204) for discussion. We hope to release official support for native builds on Apple Silicon soon! (#1217)
### v2.8.1
_18 July 2022_
+12
View File
@@ -594,3 +594,15 @@
gh: SciTools/cf-units
ci: [github]
os: [apple, linux]
- name: envd
gh: tensorchord/envd
ci: [github]
os: [apple, linux, windows]
note: A machine learning development environment build toool
- name: mosec
gh: mosecorg/mosec
ci: [github]
os: [linux, apple]
note: A machine learning model serving framework powered by Rust
+7 -8
View File
@@ -53,11 +53,11 @@ to load on Apple Silicon.
available.
Generally speaking, because Pip 20.3 is required for the `universal2` wheel,
most packages should provide both `x86_64` and `universal2` wheels for now.
Once Pip 20.3+ is common on macOS, then it should be possible to ship only the
`universal2` wheel.
most packages should provide both `x86_64` and one of `universal2`/`arm64`
wheels for now. When Pip 20.3+ is common on macOS, then it might be possible
to ship only the `universal2` wheel.
**Apple Silicon wheels are not built by default**, but can be enabled by adding extra archs to the [`CIBW_ARCHS_MACOS` option](options.md#archs) - e.g. `x86_64 arm64 universal2`. Cross-compilation is provided by the Xcode toolchain.
**Apple Silicon wheels are not built by default on Intel runners**, but can be enabled by adding extra archs to the [`CIBW_ARCHS_MACOS` option](options.md#archs) - e.g. `x86_64 arm64`. Cross-compilation is provided by the Xcode toolchain.
!!! important
When cross-compiling on Intel, it is not possible to test `arm64` and the `arm64` part of a `universal2` wheel.
@@ -66,8 +66,7 @@ Once Pip 20.3+ is common on macOS, then it should be possible to ship only the
Hopefully, cross-compilation is a temporary situation. Once we have widely
available Apple Silicon CI runners, we can build and test `arm64` and
`universal2` wheels natively. That's why `universal2` wheels are not yet built
by default, and require opt-in by setting `CIBW_ARCHS_MACOS`.
`universal2` wheels natively. That's why `universal2`/`arm64` wheels require opt-in by setting `CIBW_ARCHS_MACOS`.
!!! note
Your runner needs Xcode Command Line Tools 12.2 or later to build `universal2` or `arm64`.
@@ -133,7 +132,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.8.1
uses: pypa/cibuildwheel@v2.9.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.
@@ -155,7 +154,7 @@ The second option, and the only one that supports other CI systems, is using a `
```bash
# requirements-cibw.txt
cibuildwheel==2.8.1
cibuildwheel==2.9.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:
+1 -1
View File
@@ -351,7 +351,7 @@ Default: `auto`
| Linux / Intel | `x86_64` | `x86_64` `i686` | `x86_64` | `i686` |
| Windows / Intel | `AMD64` | `AMD64` `x86` | `AMD64` | `x86` |
| macOS / Intel | `x86_64` | `x86_64` | `x86_64` | |
| macOS / Apple Silicon | `arm64` | `arm64` `universal2` | `arm64` `universal2`| |
| macOS / Apple Silicon | `arm64` | `arm64` | `arm64` | |
If not listed above, `auto` is the same as `native`.
+2 -2
View File
@@ -182,7 +182,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/
- uses: actions/checkout@v3
- name: Build wheels
run: pipx run cibuildwheel==2.8.1
run: pipx run cibuildwheel==2.9.0
- uses: actions/upload-artifact@v3
with:
@@ -217,7 +217,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/
- uses: actions/setup-python@v3
- name: Install cibuildwheel
run: python -m pip install cibuildwheel==2.8.1
run: python -m pip install cibuildwheel==2.9.0
- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
+114 -114
View File
@@ -23,16 +23,16 @@ title: Working examples
| [psutil][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Cross-platform lib for process and system monitoring in Python |
| [vaex][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization and exploration of big tabular data at a billion rows per second 🚀 |
| [Google Benchmark][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A microbenchmark support library |
| [Apache Beam][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Apache Beam is a unified programming model for Batch and Streaming data processing. |
| [duckdb][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | DuckDB is an in-process SQL OLAP Database Management System |
| [Apache Beam][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Apache Beam is a unified programming model for Batch and Streaming data processing. |
| [asyncpg][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A fast PostgreSQL Database Client Library for Python/asyncio. |
| [PyGame][] | ![github icon][] | ![apple icon][] ![linux icon][] | pygame (the library) is a Free and Open Source python programming language library for making multimedia applications like games built on top of the excellent SDL library. C, Python, Native, OpenGL. |
| [scikit-image][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Image processing library. Uses cibuildwheel to build and test a project that uses Cython with platform-native code. |
| [cmake][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Multitagged binary builds for all supported platforms, using cibw 2 config configuration. |
| [twisted-iocpsupport][] | ![github icon][] | ![windows icon][] | A submodule of Twisted that hooks into native C APIs using Cython. |
| [websockets][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | Library for building WebSocket servers and clients. Mostly written in Python, with a small C 'speedups' extension module. |
| [cvxpy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A Python-embedded modeling language for convex optimization problems. |
| [PyOxidizer][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A modern Python application packaging and distribution tool |
| [cvxpy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A Python-embedded modeling language for convex optimization problems. |
| [Triton][] | ![github icon][] | ![linux icon][] | Self hosted runners |
| [UltraJSON][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Ultra fast JSON decoder and encoder written in C with Python bindings |
| [River][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | 🌊 Online machine learning in Python |
@@ -40,8 +40,8 @@ title: Working examples
| [pyzmq][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python bindings for zeromq, the networking library. Uses Cython and CFFI. |
| [aiortc][] | ![github icon][] | ![apple icon][] ![linux icon][] | WebRTC and ORTC implementation for Python using asyncio. |
| [vispy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Main repository for Vispy |
| [Confluent client for Kafka][] | ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | setup in `tools/wheels/build-wheels.bat` |
| [Implicit][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes GPU support for linux wheels |
| [Confluent client for Kafka][] | ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | setup in `tools/wheels/build-wheels.bat` |
| [tinyobjloader][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Tiny but powerful single file wavefront obj loader |
| [Dependency Injector][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Dependency injection framework for Python, uses Windows TravisCI |
| [coverage.py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The coverage tool for Python |
@@ -60,8 +60,8 @@ title: Working examples
| [aioquic][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | QUIC and HTTP/3 implementation in Python |
| [ruptures][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Extensive Cython + NumPy [pyproject.toml](https://github.com/deepcharles/ruptures/blob/master/pyproject.toml) example. |
| [DeepForest][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | An Efficient, Scalable and Optimized Python Framework for Deep Forest (2021.2.1) |
| [google neuroglancer][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | WebGL-based viewer for volumetric data |
| [Psycopg 3][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A modern implementation of a PostgreSQL adapter for Python |
| [google neuroglancer][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | WebGL-based viewer for volumetric data |
| [Parselmouth][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python interface to the Praat software package, using pybind11, C++17 and CMake, with the core Praat static library built only once and shared between wheels. |
| [AutoPy][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. |
| [H3-py][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for H3, a hierarchical hexagonal geospatial indexing system |
@@ -74,12 +74,12 @@ title: Working examples
| [tgcalls][] | ![github icon][] | ![apple icon][] ![windows icon][] | Python `pybind11` binding to Telegram's WebRTC library with third party dependencies like `OpenSSL`, `MozJPEG`, `FFmpeg`, etc. |
| [dd-trace-py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Uses custom alternate arch emulation on GitHub |
| [pybind11 python_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a Python-based build system |
| [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. |
| [sourmash][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Quickly search, compare, and analyze genomic and metagenomic data sets. |
| [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. |
| [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. |
| [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. |
| [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,9 +96,9 @@ title: Working examples
| [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. |
| [cf-units][] | ![github icon][] | ![apple icon][] ![linux icon][] | Units of measure as required by the Climate and Forecast (CF) Metadata Conventions |
| [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. |
| [clang-format][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Scikit-build wrapper around LLVM's CMake, all platforms, generic wheels. |
| [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. |
| [power-grid-model][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python/C++ library for distribution power system analysis |
| [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 |
| [pyjet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The interface between FastJet and NumPy |
| [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 |
@@ -124,16 +124,16 @@ title: Working examples
[psutil]: https://github.com/giampaolo/psutil
[vaex]: https://github.com/vaexio/vaex
[Google Benchmark]: https://github.com/google/benchmark
[Apache Beam]: https://github.com/apache/beam
[duckdb]: https://github.com/duckdb/duckdb
[Apache Beam]: https://github.com/apache/beam
[asyncpg]: https://github.com/MagicStack/asyncpg
[PyGame]: https://github.com/pygame/pygame
[scikit-image]: https://github.com/scikit-image/scikit-image
[cmake]: https://github.com/scikit-build/cmake-python-distributions
[twisted-iocpsupport]: https://github.com/twisted/twisted-iocpsupport
[websockets]: https://github.com/aaugustin/websockets
[cvxpy]: https://github.com/cvxpy/cvxpy
[PyOxidizer]: https://github.com/indygreg/PyOxidizer
[cvxpy]: https://github.com/cvxpy/cvxpy
[Triton]: https://github.com/openai/triton
[UltraJSON]: https://github.com/ultrajson/ultrajson
[River]: https://github.com/online-ml/river
@@ -141,8 +141,8 @@ title: Working examples
[pyzmq]: https://github.com/zeromq/pyzmq
[aiortc]: https://github.com/aiortc/aiortc
[vispy]: https://github.com/vispy/vispy
[Confluent client for Kafka]: https://github.com/confluentinc/confluent-kafka-python
[Implicit]: https://github.com/benfred/implicit
[Confluent client for Kafka]: https://github.com/confluentinc/confluent-kafka-python
[tinyobjloader]: https://github.com/tinyobjloader/tinyobjloader
[Dependency Injector]: https://github.com/ets-labs/python-dependency-injector
[coverage.py]: https://github.com/nedbat/coveragepy
@@ -161,8 +161,8 @@ title: Working examples
[aioquic]: https://github.com/aiortc/aioquic
[ruptures]: https://github.com/deepcharles/ruptures
[DeepForest]: https://github.com/LAMDA-NJU/Deep-Forest
[google neuroglancer]: https://github.com/google/neuroglancer
[Psycopg 3]: https://github.com/psycopg/psycopg
[google neuroglancer]: https://github.com/google/neuroglancer
[Parselmouth]: https://github.com/YannickJadoul/Parselmouth
[AutoPy]: https://github.com/autopilot-rs/autopy
[H3-py]: https://github.com/uber/h3-py
@@ -175,12 +175,12 @@ title: Working examples
[tgcalls]: https://github.com/MarshalX/tgcalls
[dd-trace-py]: https://github.com/DataDog/dd-trace-py
[pybind11 python_example]: https://github.com/pybind/python_example
[sourmash]: https://github.com/dib-lab/sourmash
[time-machine]: https://github.com/adamchainz/time-machine
[sourmash]: https://github.com/dib-lab/sourmash
[CTranslate2]: https://github.com/OpenNMT/CTranslate2
[cyvcf2]: https://github.com/brentp/cyvcf2
[matrixprofile]: https://github.com/matrix-profile-foundation/matrixprofile
[abess]: https://github.com/abess-team/abess
[matrixprofile]: https://github.com/matrix-profile-foundation/matrixprofile
[jq.py]: https://github.com/mwilliamson/jq.py
[iminuit]: https://github.com/scikit-hep/iminuit
[Tokenizer]: https://github.com/OpenNMT/Tokenizer
@@ -197,9 +197,9 @@ title: Working examples
[polaroid]: https://github.com/daggy1234/polaroid
[cf-units]: https://github.com/SciTools/cf-units
[Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build
[clang-format]: https://github.com/ssciwr/clang-format-wheel
[pillow-heif]: https://github.com/bigcat88/pillow_heif
[power-grid-model]: https://github.com/alliander-opensource/power-grid-model
[clang-format]: https://github.com/ssciwr/clang-format-wheel
[numpythia]: https://github.com/scikit-hep/numpythia
[pyjet]: https://github.com/scikit-hep/pyjet
[pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example
@@ -220,106 +220,106 @@ title: Working examples
[apple icon]: data/readme_icons/apple.svg
[linux icon]: data/readme_icons/linux.svg
<!-- scikit-learn: 50835, last pushed 0 days ago -->
<!-- NumPy: 21019, last pushed 0 days ago -->
<!-- Tornado: 20645, last pushed 2 days ago -->
<!-- pytorch-fairseq: 18637, last pushed 0 days ago -->
<!-- Matplotlib: 15862, last pushed 0 days ago -->
<!-- NCNN: 15025, last pushed 0 days ago -->
<!-- Kivy: 14810, last pushed 0 days ago -->
<!-- Prophet: 14707, last pushed 2 days ago -->
<!-- MyPy: 13492, last pushed 1 days ago -->
<!-- pydantic: 10511, last pushed 0 days ago -->
<!-- MemRay: 8889, last pushed 2 days ago -->
<!-- uvloop: 8735, last pushed 4 days ago -->
<!-- psutil: 8545, last pushed 10 days ago -->
<!-- vaex: 7189, last pushed 0 days ago -->
<!-- Google Benchmark: 6678, last pushed 0 days ago -->
<!-- Apache Beam: 5721, last pushed 0 days ago -->
<!-- duckdb: 5584, last pushed 0 days ago -->
<!-- asyncpg: 5563, last pushed 5 days ago -->
<!-- PyGame: 4996, last pushed 0 days ago -->
<!-- scikit-image: 4992, last pushed 1 days ago -->
<!-- cmake: 4935, last pushed 0 days ago -->
<!-- twisted-iocpsupport: 4673, last pushed 2 days ago -->
<!-- websockets: 4075, last pushed 7 days ago -->
<!-- cvxpy: 4015, last pushed 0 days ago -->
<!-- PyOxidizer: 3924, last pushed 8 days ago -->
<!-- Triton: 3812, last pushed 0 days ago -->
<!-- UltraJSON: 3755, last pushed 4 days ago -->
<!-- River: 3497, last pushed 0 days ago -->
<!-- OpenSpiel: 3258, last pushed 1 days ago -->
<!-- pyzmq: 3131, last pushed 11 days ago -->
<!-- aiortc: 3005, last pushed 29 days ago -->
<!-- vispy: 2905, last pushed 3 days ago -->
<!-- Confluent client for Kafka: 2862, last pushed 3 days ago -->
<!-- Implicit: 2856, last pushed 4 days ago -->
<!-- tinyobjloader: 2599, last pushed 19 days ago -->
<!-- Dependency Injector: 2250, last pushed 1 days ago -->
<!-- coverage.py: 2111, last pushed 7 days ago -->
<!-- PyCryptodome: 2062, last pushed 14 days ago -->
<!-- PyYAML: 1888, last pushed 8 days ago -->
<!-- numexpr: 1780, last pushed 5 days ago -->
<!-- h5py: 1758, last pushed 19 days ago -->
<!-- Wrapt: 1711, last pushed 84 days ago -->
<!-- PyAV: 1609, last pushed 3 days ago -->
<!-- SimpleJSON: 1500, last pushed 23 days ago -->
<!-- pikepdf: 1411, last pushed 1 days ago -->
<!-- OpenColorIO: 1344, last pushed 12 days ago -->
<!-- Line Profiler: 1290, last pushed 2 days ago -->
<!-- PyTables: 1139, last pushed 96 days ago -->
<!-- OpenTimelineIO: 1074, last pushed 0 days ago -->
<!-- aioquic: 995, last pushed 6 days ago -->
<!-- ruptures: 994, last pushed 17 days ago -->
<!-- DeepForest: 770, last pushed 71 days ago -->
<!-- google neuroglancer: 741, last pushed 2 days ago -->
<!-- Psycopg 3: 734, last pushed 0 days ago -->
<!-- Parselmouth: 671, last pushed 14 days ago -->
<!-- AutoPy: 662, last pushed 211 days ago -->
<!-- H3-py: 549, last pushed 1 days ago -->
<!-- Rtree: 490, last pushed 96 days ago -->
<!-- markupsafe: 483, last pushed 20 days ago -->
<!-- python-rapidjson: 456, last pushed 4 days ago -->
<!-- python-snappy: 443, last pushed 130 days ago -->
<!-- pybind11 cmake_example: 423, last pushed 1 days ago -->
<!-- KDEpy: 388, last pushed 164 days ago -->
<!-- tgcalls: 375, last pushed 23 days ago -->
<!-- dd-trace-py: 344, last pushed 0 days ago -->
<!-- pybind11 python_example: 339, last pushed 2 days ago -->
<!-- sourmash: 313, last pushed 0 days ago -->
<!-- time-machine: 312, last pushed 5 days ago -->
<!-- CTranslate2: 310, last pushed 3 days ago -->
<!-- cyvcf2: 301, last pushed 65 days ago -->
<!-- matrixprofile: 273, last pushed 20 days ago -->
<!-- abess: 272, last pushed 9 days ago -->
<!-- jq.py: 221, last pushed 168 days ago -->
<!-- iminuit: 206, last pushed 0 days ago -->
<!-- Tokenizer: 188, last pushed 3 days ago -->
<!-- PyGLM: 146, last pushed 118 days ago -->
<!-- boost-histogram: 116, last pushed 5 days ago -->
<!-- bx-python: 114, last pushed 200 days ago -->
<!-- TgCrypto: 108, last pushed 142 days ago -->
<!-- iDynTree: 107, last pushed 4 days ago -->
<!-- Python-WebRTC: 92, last pushed 136 days ago -->
<!-- pybase64: 86, last pushed 5 days ago -->
<!-- Arbor: 76, last pushed 3 days ago -->
<!-- fathon: 63, last pushed 52 days ago -->
<!-- etebase-py: 58, last pushed 18 days ago -->
<!-- polaroid: 51, last pushed 74 days ago -->
<!-- cf-units: 49, last pushed 0 days ago -->
<!-- Imagecodecs (fork): 46, last pushed 39 days ago -->
<!-- clang-format: 41, last pushed 19 days ago -->
<!-- pillow-heif: 38, last pushed 2 days ago -->
<!-- power-grid-model: 37, last pushed 3 days ago -->
<!-- numpythia: 34, last pushed 18 days ago -->
<!-- pyjet: 33, last pushed 23 days ago -->
<!-- pybind11 scikit_build_example: 29, last pushed 6 days ago -->
<!-- ninja: 24, last pushed 6 days ago -->
<!-- GSD: 19, last pushed 19 days ago -->
<!-- pyinstrument_cext: 10, last pushed 289 days ago -->
<!-- CorrectionLib: 10, last pushed 5 days ago -->
<!-- xmlstarlet: 9, last pushed 13 days ago -->
<!-- SiPM: 6, last pushed 53 days ago -->
<!-- scikit-learn: 51026, last pushed 0 days ago -->
<!-- NumPy: 21131, last pushed 0 days ago -->
<!-- Tornado: 20669, last pushed 9 days ago -->
<!-- pytorch-fairseq: 18851, last pushed 0 days ago -->
<!-- Matplotlib: 15939, last pushed 0 days ago -->
<!-- NCNN: 15158, last pushed 0 days ago -->
<!-- Kivy: 14873, last pushed 0 days ago -->
<!-- Prophet: 14779, last pushed 4 days ago -->
<!-- MyPy: 13581, last pushed 0 days ago -->
<!-- pydantic: 10706, last pushed 0 days ago -->
<!-- MemRay: 8980, last pushed 0 days ago -->
<!-- uvloop: 8778, last pushed 3 days ago -->
<!-- psutil: 8593, last pushed 7 days ago -->
<!-- vaex: 7216, last pushed 1 days ago -->
<!-- Google Benchmark: 6724, last pushed 0 days ago -->
<!-- duckdb: 5814, last pushed 0 days ago -->
<!-- Apache Beam: 5766, last pushed 0 days ago -->
<!-- asyncpg: 5591, last pushed 6 days ago -->
<!-- PyGame: 5104, last pushed 0 days ago -->
<!-- scikit-image: 5010, last pushed 1 days ago -->
<!-- cmake: 4975, last pushed 0 days ago -->
<!-- twisted-iocpsupport: 4697, last pushed 1 days ago -->
<!-- websockets: 4103, last pushed 0 days ago -->
<!-- PyOxidizer: 4064, last pushed 0 days ago -->
<!-- cvxpy: 4038, last pushed 0 days ago -->
<!-- Triton: 3860, last pushed 0 days ago -->
<!-- UltraJSON: 3784, last pushed 1 days ago -->
<!-- River: 3517, last pushed 2 days ago -->
<!-- OpenSpiel: 3275, last pushed 0 days ago -->
<!-- pyzmq: 3138, last pushed 1 days ago -->
<!-- aiortc: 3032, last pushed 46 days ago -->
<!-- vispy: 2913, last pushed 4 days ago -->
<!-- Implicit: 2906, last pushed 0 days ago -->
<!-- Confluent client for Kafka: 2885, last pushed 6 days ago -->
<!-- tinyobjloader: 2606, last pushed 36 days ago -->
<!-- Dependency Injector: 2277, last pushed 6 days ago -->
<!-- coverage.py: 2136, last pushed 3 days ago -->
<!-- PyCryptodome: 2085, last pushed 7 days ago -->
<!-- PyYAML: 1897, last pushed 24 days ago -->
<!-- numexpr: 1793, last pushed 21 days ago -->
<!-- h5py: 1762, last pushed 8 days ago -->
<!-- Wrapt: 1716, last pushed 100 days ago -->
<!-- PyAV: 1626, last pushed 15 days ago -->
<!-- SimpleJSON: 1507, last pushed 40 days ago -->
<!-- pikepdf: 1449, last pushed 1 days ago -->
<!-- OpenColorIO: 1351, last pushed 29 days ago -->
<!-- Line Profiler: 1310, last pushed 18 days ago -->
<!-- PyTables: 1142, last pushed 113 days ago -->
<!-- OpenTimelineIO: 1083, last pushed 0 days ago -->
<!-- aioquic: 1012, last pushed 23 days ago -->
<!-- ruptures: 1011, last pushed 34 days ago -->
<!-- DeepForest: 768, last pushed 88 days ago -->
<!-- Psycopg 3: 750, last pushed 1 days ago -->
<!-- google neuroglancer: 744, last pushed 0 days ago -->
<!-- Parselmouth: 673, last pushed 31 days ago -->
<!-- AutoPy: 666, last pushed 228 days ago -->
<!-- H3-py: 552, last pushed 0 days ago -->
<!-- Rtree: 497, last pushed 113 days ago -->
<!-- markupsafe: 487, last pushed 8 days ago -->
<!-- python-rapidjson: 456, last pushed 21 days ago -->
<!-- python-snappy: 443, last pushed 147 days ago -->
<!-- pybind11 cmake_example: 426, last pushed 12 days ago -->
<!-- KDEpy: 394, last pushed 181 days ago -->
<!-- tgcalls: 382, last pushed 39 days ago -->
<!-- dd-trace-py: 350, last pushed 0 days ago -->
<!-- pybind11 python_example: 349, last pushed 9 days ago -->
<!-- time-machine: 317, last pushed 1 days ago -->
<!-- sourmash: 317, last pushed 0 days ago -->
<!-- CTranslate2: 315, last pushed 5 days ago -->
<!-- cyvcf2: 300, last pushed 6 days ago -->
<!-- abess: 275, last pushed 1 days ago -->
<!-- matrixprofile: 275, last pushed 37 days ago -->
<!-- jq.py: 223, last pushed 185 days ago -->
<!-- iminuit: 209, last pushed 1 days ago -->
<!-- Tokenizer: 187, last pushed 5 days ago -->
<!-- PyGLM: 148, last pushed 134 days ago -->
<!-- boost-histogram: 115, last pushed 1 days ago -->
<!-- bx-python: 114, last pushed 217 days ago -->
<!-- TgCrypto: 110, last pushed 159 days ago -->
<!-- iDynTree: 109, last pushed 3 days ago -->
<!-- Python-WebRTC: 92, last pushed 152 days ago -->
<!-- pybase64: 85, last pushed 1 days ago -->
<!-- Arbor: 77, last pushed 0 days ago -->
<!-- fathon: 65, last pushed 69 days ago -->
<!-- etebase-py: 58, last pushed 34 days ago -->
<!-- polaroid: 51, last pushed 90 days ago -->
<!-- cf-units: 49, last pushed 1 days ago -->
<!-- Imagecodecs (fork): 47, last pushed 1 days ago -->
<!-- pillow-heif: 44, last pushed 0 days ago -->
<!-- power-grid-model: 42, last pushed 1 days ago -->
<!-- clang-format: 41, last pushed 8 days ago -->
<!-- numpythia: 34, last pushed 7 days ago -->
<!-- pyjet: 33, last pushed 7 days ago -->
<!-- pybind11 scikit_build_example: 31, last pushed 9 days ago -->
<!-- ninja: 24, last pushed 1 days ago -->
<!-- GSD: 19, last pushed 9 days ago -->
<!-- pyinstrument_cext: 10, last pushed 306 days ago -->
<!-- CorrectionLib: 10, last pushed 0 days ago -->
<!-- xmlstarlet: 9, last pushed 9 days ago -->
<!-- SiPM: 7, last pushed 70 days ago -->
<!-- END bin/projects.py -->
+1 -1
View File
@@ -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.8.1
install: python -m pip install cibuildwheel==2.9.0
build_script: python -m cibuildwheel --output-dir wheelhouse
+3 -3
View File
@@ -6,7 +6,7 @@ jobs:
- bash: |
set -o errexit
python3 -m pip install --upgrade pip
pip3 install cibuildwheel==2.8.1
pip3 install cibuildwheel==2.9.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.8.1
python3 -m pip install cibuildwheel==2.9.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.8.1
pip install cibuildwheel==2.9.0
displayName: Install dependencies
- bash: cibuildwheel --output-dir wheelhouse .
displayName: Build wheels
+2 -2
View File
@@ -11,7 +11,7 @@ jobs:
- run:
name: Build the Linux wheels.
command: |
pip3 install --user cibuildwheel==2.8.1
pip3 install --user cibuildwheel==2.9.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.8.1
pip3 install cibuildwheel==2.9.0
cibuildwheel --output-dir wheelhouse
- store_artifacts:
path: wheelhouse/
+2 -2
View File
@@ -10,9 +10,9 @@ jobs:
- uses: actions/checkout@v3
- name: Build wheels
uses: pypa/cibuildwheel@v2.8.1
uses: pypa/cibuildwheel@v2.9.0
env:
CIBW_ARCHS_MACOS: x86_64 universal2
CIBW_ARCHS_MACOS: x86_64 arm64
- uses: actions/upload-artifact@v3
with:
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@v3
- name: Build wheels
uses: pypa/cibuildwheel@v2.8.1
uses: pypa/cibuildwheel@v2.9.0
- uses: actions/upload-artifact@v3
with:
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
- uses: actions/checkout@v3
- name: Build wheels
uses: pypa/cibuildwheel@v2.8.1
uses: pypa/cibuildwheel@v2.9.0
# env:
# CIBW_SOME_OPTION: value
# ...
+2 -7
View File
@@ -13,19 +13,14 @@ jobs:
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
name: Install Python
with:
python-version: '3.7'
- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v2
with:
platforms: all
- name: Build wheels
uses: pypa/cibuildwheel@v2.8.1
uses: pypa/cibuildwheel@v2.9.0
env:
# configure cibuildwheel to build native archs ('auto'), and some
# emulated ones
+1 -1
View File
@@ -12,7 +12,7 @@ linux:
DOCKER_TLS_CERTDIR: ""
script:
- curl -sSL https://get.docker.com/ | sh
- python -m pip install cibuildwheel==2.8.1
- python -m pip install cibuildwheel==2.9.0
- cibuildwheel --output-dir wheelhouse
artifacts:
paths:
+1 -1
View File
@@ -19,7 +19,7 @@ jobs:
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
install:
- python3 -m pip install cibuildwheel==2.8.1
- python3 -m pip install cibuildwheel==2.9.0
script:
# build the wheels, put them into './dist'
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
install:
- python3 -m pip install cibuildwheel==2.8.1
- python3 -m pip install cibuildwheel==2.9.0
script:
# build the wheels, put them into './wheelhouse'
+2 -2
View File
@@ -54,7 +54,7 @@ jobs:
- stage: deploy
name: Build and deploy Linux wheels
services: docker
install: python3 -m pip install cibuildwheel==2.8.1 twine
install: python3 -m pip install cibuildwheel==2.9.0 twine
script: python3 -m cibuildwheel --output-dir wheelhouse
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
# Deploy on windows
@@ -62,7 +62,7 @@ jobs:
name: Build and deploy Windows wheels
os: windows
language: shell
install: python3 -m pip install cibuildwheel==2.8.1 twine
install: python3 -m pip install cibuildwheel==2.9.0 twine
script: python3 -m cibuildwheel --output-dir wheelhouse
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
+21 -2
View File
@@ -65,8 +65,27 @@ def update_constraints(session: nox.Session) -> None:
"""
Update the dependencies inplace.
"""
session.install("requests", "pip-tools")
session.run("python", "bin/update_dependencies.py")
session.install("pip-tools")
assert isinstance(session.python, str)
python_version = session.python.replace(".", "")
env = os.environ.copy()
# CUSTOM_COMPILE_COMMAND is a pip-compile option that tells users how to
# regenerate the constraints files
env["CUSTOM_COMPILE_COMMAND"] = f"nox -s {session.name}"
session.run(
"pip-compile",
"--allow-unsafe",
"--upgrade",
"cibuildwheel/resources/constraints.in",
f"--output-file=cibuildwheel/resources/constraints-python{python_version}.txt",
env=env,
)
if session.python == PYTHON_ALL_VERSIONS[-1]:
RESOURCES = DIR / "cibuildwheel" / "resources"
shutil.copyfile(
RESOURCES / f"constraints-python{python_version}.txt",
RESOURCES / "constraints.txt",
)
@nox.session
+1 -1
View File
@@ -1,6 +1,6 @@
[metadata]
name = cibuildwheel
version = 2.8.1
version = 2.9.0
description = Build Python wheels on CI with minimal configuration.
long_description = file: README.md
long_description_content_type = text/markdown
+1 -1
View File
@@ -11,7 +11,7 @@ basic_project = test_projects.new_c_project()
ALL_MACOS_WHEELS = {
*utils.expected_wheels("spam", "0.1.0", machine_arch="x86_64"),
*utils.expected_wheels("spam", "0.1.0", machine_arch="arm64"),
*utils.expected_wheels("spam", "0.1.0", machine_arch="arm64", include_universal2=True),
}
+8 -7
View File
@@ -116,6 +116,7 @@ def expected_wheels(
macosx_deployment_target="10.9",
machine_arch=None,
python_abi_tags=None,
include_universal2=False,
):
"""
Returns a list of expected wheels from a run of cibuildwheel.
@@ -199,14 +200,14 @@ def expected_wheels(
arm64_macosx_deployment_target = _get_arm64_macosx_deployment_target(
macosx_deployment_target
)
platform_tags = [
f'macosx_{macosx_deployment_target.replace(".", "_")}_universal2',
f'macosx_{arm64_macosx_deployment_target.replace(".", "_")}_arm64',
]
platform_tags = [f'macosx_{arm64_macosx_deployment_target.replace(".", "_")}_arm64']
else:
platform_tags = [
f'macosx_{macosx_deployment_target.replace(".", "_")}_x86_64',
]
platform_tags = [f'macosx_{macosx_deployment_target.replace(".", "_")}_x86_64']
if include_universal2:
platform_tags.append(
f'macosx_{macosx_deployment_target.replace(".", "_")}_universal2',
)
else:
raise Exception("unsupported platform")
+2 -2
View File
@@ -11,7 +11,7 @@ def test_build():
assert build_selector("cp36-manylinux_x86_64")
assert build_selector("cp37-manylinux_x86_64")
assert build_selector("cp310-manylinux_x86_64")
assert not build_selector("cp311-manylinux_x86_64")
assert build_selector("cp311-manylinux_x86_64")
assert build_selector("pp36-manylinux_x86_64")
assert build_selector("pp37-manylinux_x86_64")
assert build_selector("cp36-manylinux_i686")
@@ -30,7 +30,7 @@ def test_build():
assert build_selector("cp36-win_amd64")
assert build_selector("cp37-win_amd64")
assert build_selector("cp310-win_amd64")
assert not build_selector("cp311-win_amd64")
assert build_selector("cp311-win_amd64")
assert not build_selector("pp36-win_amd64")
assert not build_selector("pp37-win_amd64")
+6 -2
View File
@@ -60,8 +60,12 @@ def test_linux_container_split(tmp_path: Path, monkeypatch):
pprint(build_steps)
assert build_steps[0].container_image == "normal_container_image"
assert identifiers(build_steps[0]) == ["cp36-manylinux_x86_64", "cp37-manylinux_x86_64"]
assert before_alls(build_steps[0]) == ["", ""]
assert identifiers(build_steps[0]) == [
"cp36-manylinux_x86_64",
"cp37-manylinux_x86_64",
"cp311-manylinux_x86_64",
]
assert before_alls(build_steps[0]) == ["", "", ""]
assert build_steps[1].container_image == "other_container_image"
assert identifiers(build_steps[1]) == ["cp38-manylinux_x86_64", "cp310-manylinux_x86_64"]
+4 -6
View File
@@ -13,7 +13,7 @@ import pytest
from cibuildwheel import linux, util
from cibuildwheel.__main__ import main
ALL_IDS = {"cp36", "cp37", "cp38", "cp39", "cp310", "pp37", "pp38", "pp39"}
ALL_IDS = {"cp36", "cp37", "cp38", "cp39", "cp310", "cp311", "pp37", "pp38", "pp39"}
@pytest.fixture
@@ -137,7 +137,8 @@ before-all = "true"
identifiers = {x.identifier for x in kwargs["platform_configs"]}
assert identifiers == {
f"{x}-manylinux_x86_64" for x in ALL_IDS - {"cp36", "cp310", "pp37", "pp38", "pp39"}
f"{x}-manylinux_x86_64"
for x in ALL_IDS - {"cp36", "cp310", "cp311", "pp37", "pp38", "pp39"}
}
assert kwargs["options"].build_options("cp37-manylinux_x86_64").before_all == ""
@@ -147,10 +148,7 @@ before-all = "true"
assert not kwargs["container"]["simulate_32_bit"]
identifiers = {x.identifier for x in kwargs["platform_configs"]}
assert identifiers == {
"cp310-manylinux_x86_64",
"pp37-manylinux_x86_64",
"pp38-manylinux_x86_64",
"pp39-manylinux_x86_64",
f"{x}-manylinux_x86_64" for x in {"cp310", "cp311", "pp37", "pp38", "pp39"}
}
kwargs = build_in_container.call_args_list[3][1]
+20 -1
View File
@@ -160,9 +160,28 @@ repairs-wheel-command = "repair-project-linux"
"""
)
with pytest.raises(ConfigOptionError):
with pytest.raises(ConfigOptionError) as excinfo:
OptionsReader(pyproject_toml, platform="linux")
assert "repair-wheel-command" in str(excinfo.value)
def test_underscores_in_key(tmp_path):
# Note that platform contents are only checked when running
# for that platform.
pyproject_toml = tmp_path / "pyproject.toml"
pyproject_toml.write_text(
"""
[tool.cibuildwheel]
repair_wheel_command = "repair-project-linux"
"""
)
with pytest.raises(ConfigOptionError) as excinfo:
OptionsReader(pyproject_toml, platform="linux")
assert "repair-wheel-command" in str(excinfo.value)
def test_unexpected_table(tmp_path):
pyproject_toml = tmp_path / "pyproject.toml"