Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7e5a838a63 | ||
|
|
19e1b8a4b0 | ||
|
|
73581ae579 | ||
|
|
f21ff5e84c | ||
|
|
973946b172 | ||
|
|
5ea40e6ff3 | ||
|
|
6a36f6494b | ||
|
|
31de15bcd9 | ||
|
|
3179fd215a | ||
|
|
184d4e1280 | ||
|
|
08165ffeed | ||
|
|
9bb03835e5 | ||
|
|
2552303ff3 | ||
|
|
5b74582a72 | ||
|
|
4470eb0dd9 | ||
|
|
8bda260d3a | ||
|
|
5b5a95bdc2 | ||
|
|
561fa32683 | ||
|
|
70913f0a49 | ||
|
|
f49397f151 | ||
|
|
c1b8a12cd5 |
@@ -1,9 +1,10 @@
|
|||||||
version: 2
|
version: 2
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
osx-python3.9:
|
osx-python3.12:
|
||||||
macos:
|
macos:
|
||||||
xcode: 12.5.1
|
xcode: 15.4.0
|
||||||
|
resource_class: macos.m1.medium.gen1
|
||||||
environment:
|
environment:
|
||||||
PYTHON: python3
|
PYTHON: python3
|
||||||
steps:
|
steps:
|
||||||
@@ -17,9 +18,9 @@ jobs:
|
|||||||
command: venv/bin/python ./bin/run_tests.py
|
command: venv/bin/python ./bin/run_tests.py
|
||||||
no_output_timeout: 30m
|
no_output_timeout: 30m
|
||||||
|
|
||||||
linux-python3.9:
|
linux-python3.12:
|
||||||
docker:
|
docker:
|
||||||
- image: circleci/python:3.9
|
- image: cimg/python:3.12
|
||||||
environment:
|
environment:
|
||||||
PYTHON: python3
|
PYTHON: python3
|
||||||
# Temporarily restrict the tests that are run on CircleCI to prevent
|
# Temporarily restrict the tests that are run on CircleCI to prevent
|
||||||
@@ -61,6 +62,6 @@ workflows:
|
|||||||
version: 2
|
version: 2
|
||||||
all-tests:
|
all-tests:
|
||||||
jobs:
|
jobs:
|
||||||
- osx-python3.9
|
- osx-python3.12
|
||||||
- linux-python3.9
|
- linux-python3.12
|
||||||
- linux-aarch64
|
- linux-aarch64
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
set -o errexit
|
set -o errexit
|
||||||
set -o xtrace
|
set -o xtrace
|
||||||
|
|
||||||
|
if [ "$(uname -s)" == "Darwin" ]; then
|
||||||
|
sudo softwareupdate --install-rosetta --agree-to-license
|
||||||
|
fi
|
||||||
|
|
||||||
$PYTHON --version
|
$PYTHON --version
|
||||||
$PYTHON -m pip --version
|
$PYTHON -m venv venv
|
||||||
$PYTHON -m virtualenv --version
|
|
||||||
$PYTHON -m virtualenv --no-setuptools --no-wheel -p "$PYTHON" venv
|
|
||||||
venv/bin/python -m pip install -U pip
|
venv/bin/python -m pip install -U pip
|
||||||
venv/bin/python -m pip install -e ".[dev]"
|
venv/bin/python -m pip install -e ".[dev]"
|
||||||
venv/bin/python -m pip freeze
|
venv/bin/python -m pip freeze
|
||||||
|
|||||||
@@ -28,9 +28,12 @@ jobs:
|
|||||||
needs: [dist]
|
needs: [dist]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: github.event_name == 'release' && github.event.action == 'published'
|
if: github.event_name == 'release' && github.event.action == 'published'
|
||||||
environment: pypi
|
environment:
|
||||||
|
name: pypi
|
||||||
|
url: https://pypi.org/p/cibuildwheel
|
||||||
permissions:
|
permissions:
|
||||||
id-token: write
|
id-token: write
|
||||||
|
attestations: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@v4
|
- uses: actions/download-artifact@v4
|
||||||
@@ -39,4 +42,9 @@ jobs:
|
|||||||
path: dist
|
path: dist
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
|
|
||||||
|
- name: Generate artifact attestation for sdist and wheel
|
||||||
|
uses: actions/attest-build-provenance@173725a1209d09b31f9d30a3890cf2757ebbff0d # v1.1.2
|
||||||
|
with:
|
||||||
|
subject-path: "dist/cibuildwheel-*"
|
||||||
|
|
||||||
- uses: pypa/gh-action-pypi-publish@release/v1
|
- uses: pypa/gh-action-pypi-publish@release/v1
|
||||||
|
|||||||
+13
-3
@@ -1,5 +1,5 @@
|
|||||||
linux:
|
linux:
|
||||||
image: python:3.8
|
image: python:3.12
|
||||||
services:
|
services:
|
||||||
- name: docker:dind
|
- name: docker:dind
|
||||||
entrypoint: ["env", "-u", "DOCKER_HOST"]
|
entrypoint: ["env", "-u", "DOCKER_HOST"]
|
||||||
@@ -23,9 +23,19 @@ windows:
|
|||||||
variables:
|
variables:
|
||||||
PYTEST_ADDOPTS: -k "unit_test or test_0_basic" --suppress-no-test-exit-code
|
PYTEST_ADDOPTS: -k "unit_test or test_0_basic" --suppress-no-test-exit-code
|
||||||
before_script:
|
before_script:
|
||||||
- choco install python -y --version 3.8.6
|
- choco install python -y --version 3.12.4
|
||||||
script:
|
script:
|
||||||
- py -m pip install -e ".[dev]" pytest-custom-exit-code
|
- py -m pip install -e ".[dev]" pytest-custom-exit-code
|
||||||
- py bin\run_tests.py
|
- py bin\run_tests.py
|
||||||
tags:
|
tags:
|
||||||
- windows
|
- saas-windows-medium-amd64
|
||||||
|
|
||||||
|
macos:
|
||||||
|
image: macos-14-xcode-15
|
||||||
|
variables:
|
||||||
|
PYTEST_ADDOPTS: -k "unit_test or test_0_basic" --suppress-no-test-exit-code
|
||||||
|
script:
|
||||||
|
- python3 -m pip install -e ".[dev]" pytest-custom-exit-code
|
||||||
|
- python3 ./bin/run_tests.py
|
||||||
|
tags:
|
||||||
|
- saas-macos-medium-m1
|
||||||
|
|||||||
@@ -14,14 +14,14 @@ repos:
|
|||||||
- id: trailing-whitespace
|
- id: trailing-whitespace
|
||||||
|
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: v0.4.8
|
rev: v0.5.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: ruff
|
- id: ruff
|
||||||
args: ["--fix", "--show-fixes"]
|
args: ["--fix", "--show-fixes"]
|
||||||
- id: ruff-format
|
- id: ruff-format
|
||||||
|
|
||||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||||
rev: v1.10.0
|
rev: v1.10.1
|
||||||
hooks:
|
hooks:
|
||||||
- id: mypy
|
- id: mypy
|
||||||
name: mypy 3.8 on cibuildwheel/
|
name: mypy 3.8 on cibuildwheel/
|
||||||
@@ -77,7 +77,7 @@ repos:
|
|||||||
|
|
||||||
|
|
||||||
- repo: https://github.com/python-jsonschema/check-jsonschema
|
- repo: https://github.com/python-jsonschema/check-jsonschema
|
||||||
rev: 0.28.4
|
rev: 0.28.6
|
||||||
hooks:
|
hooks:
|
||||||
- id: check-dependabot
|
- id: check-dependabot
|
||||||
- id: check-github-actions
|
- id: check-github-actions
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
This is a summary of the host Python versions and platforms covered by the different CI platforms:
|
This is a summary of the host Python versions and platforms covered by the different CI platforms:
|
||||||
|
|
||||||
| | 3.8 | 3.9 | 3.10 | 3.12 |
|
| | 3.8 | 3.9 | 3.10 | 3.11 | 3.12 |
|
||||||
|---------|--------------------------------------------------------|-----------------------|-----------|----------------|
|
|---------|----------------------------------------------|-----------|-----------|---------|--------------------------------------|
|
||||||
| Linux | AppVeyor¹ / Azure Pipelines / GitLab¹ / GitHub Actions | CircleCI¹ / Travis CI | Cirrus CI | GitHub Actions |
|
| Linux | AppVeyor¹ / Azure Pipelines / GitHub Actions | Travis CI | Cirrus CI | | CircleCI¹ / GitHub Actions / GitLab¹ |
|
||||||
| macOS | AppVeyor¹ / Azure Pipelines | CircleCI¹ / Travis CI | Cirrus CI | GitHub Actions |
|
| macOS | AppVeyor¹ / Azure Pipelines | | Cirrus CI | GitLab¹ | CircleCI¹ / GitHub Actions |
|
||||||
| Windows | AppVeyor¹ / Azure Pipelines / GitLab¹ | Travis CI | Cirrus CI | GitHub Actions |
|
| Windows | AppVeyor¹ / Azure Pipelines | Travis CI | Cirrus CI | | GitHub Actions / GitLab¹ |
|
||||||
|
|
||||||
> ¹ Runs a reduced set of tests to reduce CI load
|
> ¹ Runs a reduced set of tests to reduce CI load
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ Usage
|
|||||||
| Travis CI | ✅ | | ✅ | ✅ | | |
|
| Travis CI | ✅ | | ✅ | ✅ | | |
|
||||||
| AppVeyor | ✅ | ✅ | ✅ | | ✅ | ✅² |
|
| AppVeyor | ✅ | ✅ | ✅ | | ✅ | ✅² |
|
||||||
| CircleCI | ✅ | ✅ | | ✅ | ✅ | |
|
| CircleCI | ✅ | ✅ | | ✅ | ✅ | |
|
||||||
| Gitlab CI | ✅ | | ✅ | ✅¹ | | |
|
| Gitlab CI | ✅ | ✅ | ✅ | ✅¹ | ✅ | |
|
||||||
| Cirrus CI | ✅ | ✅ | ✅ | ✅ | ✅ | |
|
| Cirrus CI | ✅ | ✅ | ✅ | ✅ | ✅ | |
|
||||||
|
|
||||||
<sup>¹ [Requires emulation](https://cibuildwheel.pypa.io/en/stable/faq/#emulation), distributed separately. Other services may also support Linux ARM through emulation or third-party build hosts, but these are not tested in our CI.</sup><br>
|
<sup>¹ [Requires emulation](https://cibuildwheel.pypa.io/en/stable/faq/#emulation), distributed separately. Other services may also support Linux ARM through emulation or third-party build hosts, but these are not tested in our CI.</sup><br>
|
||||||
@@ -94,7 +94,7 @@ jobs:
|
|||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
|
|
||||||
- name: Install cibuildwheel
|
- name: Install cibuildwheel
|
||||||
run: python -m pip install cibuildwheel==2.19.1
|
run: python -m pip install cibuildwheel==2.19.2
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
run: python -m cibuildwheel --output-dir wheelhouse
|
run: python -m cibuildwheel --output-dir wheelhouse
|
||||||
@@ -162,9 +162,9 @@ Here are some repos that use cibuildwheel.
|
|||||||
| [pytorch-fairseq][] | ![github icon][] | ![apple icon][] ![linux icon][] | Facebook AI Research Sequence-to-Sequence Toolkit written in Python. |
|
| [pytorch-fairseq][] | ![github icon][] | ![apple icon][] ![linux icon][] | Facebook AI Research Sequence-to-Sequence Toolkit written in Python. |
|
||||||
| [NumPy][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The fundamental package for scientific computing with Python. |
|
| [NumPy][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The fundamental package for scientific computing with Python. |
|
||||||
| [Tornado][] | ![github icon][] | ![linux icon][] ![apple icon][] ![windows icon][] | Tornado is a Python web framework and asynchronous networking library. Uses stable ABI for a small C extension. |
|
| [Tornado][] | ![github icon][] | ![linux icon][] ![apple icon][] ![windows icon][] | Tornado is a Python web framework and asynchronous networking library. Uses stable ABI for a small C extension. |
|
||||||
| [Matplotlib][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The venerable Matplotlib, a Python library with C++ portions |
|
|
||||||
| [NCNN][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | ncnn is a high-performance neural network inference framework optimized for the mobile platform |
|
|
||||||
| [duckdb][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | DuckDB is an analytical in-process SQL database management system |
|
| [duckdb][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | DuckDB is an analytical in-process SQL database management system |
|
||||||
|
| [NCNN][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | ncnn is a high-performance neural network inference framework optimized for the mobile platform |
|
||||||
|
| [Matplotlib][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The venerable Matplotlib, a Python library with C++ portions |
|
||||||
| [Prophet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth. |
|
| [Prophet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth. |
|
||||||
| [MyPy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | The compiled version of MyPy using MyPyC. |
|
| [MyPy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | The compiled version of MyPy using MyPyC. |
|
||||||
| [Kivy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS |
|
| [Kivy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS |
|
||||||
@@ -173,9 +173,9 @@ Here are some repos that use cibuildwheel.
|
|||||||
[pytorch-fairseq]: https://github.com/facebookresearch/fairseq
|
[pytorch-fairseq]: https://github.com/facebookresearch/fairseq
|
||||||
[NumPy]: https://github.com/numpy/numpy
|
[NumPy]: https://github.com/numpy/numpy
|
||||||
[Tornado]: https://github.com/tornadoweb/tornado
|
[Tornado]: https://github.com/tornadoweb/tornado
|
||||||
[Matplotlib]: https://github.com/matplotlib/matplotlib
|
|
||||||
[NCNN]: https://github.com/Tencent/ncnn
|
|
||||||
[duckdb]: https://github.com/duckdb/duckdb
|
[duckdb]: https://github.com/duckdb/duckdb
|
||||||
|
[NCNN]: https://github.com/Tencent/ncnn
|
||||||
|
[Matplotlib]: https://github.com/matplotlib/matplotlib
|
||||||
[Prophet]: https://github.com/facebook/prophet
|
[Prophet]: https://github.com/facebook/prophet
|
||||||
[MyPy]: https://github.com/mypyc/mypy_mypyc-wheels
|
[MyPy]: https://github.com/mypyc/mypy_mypyc-wheels
|
||||||
[Kivy]: https://github.com/kivy/kivy
|
[Kivy]: https://github.com/kivy/kivy
|
||||||
@@ -211,6 +211,18 @@ Changelog
|
|||||||
|
|
||||||
<!-- this section was generated by bin/update_readme_changelog.py -- do not edit manually -->
|
<!-- this section was generated by bin/update_readme_changelog.py -- do not edit manually -->
|
||||||
|
|
||||||
|
### v2.19.2
|
||||||
|
|
||||||
|
- 🐛 Update manylinux2014 pins to versions that support past-EoL CentOS 7 mirrors. (#1917)
|
||||||
|
- 🐛 Support `--no-isolation` with `build[uv]` build-frontend. (#1889)
|
||||||
|
- 🛠 Provide attestations for releases at <https://github.com/pypa/cibuildwheel/attestations>. (#1916)
|
||||||
|
- 🛠 Provide CPython 3.13.0b3. (#1913)
|
||||||
|
- 🛠 Remove some workarounds now that pip 21.1 is available. (#1891, #1892)
|
||||||
|
- 📚 Remove nosetest from our docs. (#1821)
|
||||||
|
- 📚 Document the macOS ARM workaround for 3.8 on GHA. (#1971)
|
||||||
|
- 📚 GitLab CI + macOS is now a supported platform with an example. (#1911)
|
||||||
|
|
||||||
|
|
||||||
### v2.19.1
|
### v2.19.1
|
||||||
|
|
||||||
- 🐛 Don't require setup-python on GHA for Pyodide (#1868)
|
- 🐛 Don't require setup-python on GHA for Pyodide (#1868)
|
||||||
@@ -267,23 +279,6 @@ _12 May 2024_
|
|||||||
- 📚 Document Rust builds (#1816)
|
- 📚 Document Rust builds (#1816)
|
||||||
- 📚 Speed up our readthedocs builds with uv, 26 seconds -> 6 seconds to install dependencies (#1816)
|
- 📚 Speed up our readthedocs builds with uv, 26 seconds -> 6 seconds to install dependencies (#1816)
|
||||||
|
|
||||||
|
|
||||||
### v2.17.0
|
|
||||||
|
|
||||||
_11 March 2024_
|
|
||||||
|
|
||||||
- 🌟 Adds the ability to inherit configuration in TOML overrides. This makes certain configurations much simpler. If you're overriding an option like `before-build` or `environment`, and you just want to add an extra command or environment variable, you can just append (or prepend) to the previous config. See [the docs](https://cibuildwheel.pypa.io/en/stable/options/#inherit) for more information. (#1730)
|
|
||||||
- 🌟 Adds official support for native `arm64` macOS GitHub runners. To use them, just specify `macos-14` as an `os` of your job in your workflow file. You can also keep `macos-13` in your build matrix to build `x86_64`. Check out the new [GitHub Actions example config](https://cibuildwheel.pypa.io/en/stable/setup/#github-actions).
|
|
||||||
- ✨ You no longer need to specify `--platform` to run cibuildwheel locally! Instead it will detect your platform automatically. This was a safety feature, no longer necessary. (#1727)
|
|
||||||
- 🛠 Removed setuptools and wheel pinned versions. This only affects old-style projects without a `pyproject.toml`, projects with `pyproject.toml` are already getting fresh versions of their `build-system.requires` installed into an isolated environment. (#1725)
|
|
||||||
- 🛠 Improve how the GitHub Action passes arguments (#1757)
|
|
||||||
- 🛠 Remove a system-wide install of pipx in the GitHub Action (#1745)
|
|
||||||
- 🐛 No longer will cibuildwheel override the `PIP_CONSTRAINT` environment variable when using the `build` frontend. Instead it will be extended. (#1675)
|
|
||||||
- 🐛 Fix a bug where building and testing both `x86_86` and `arm64` wheels on the same runner caused the wrong architectures in the test environment (#1750)
|
|
||||||
- 🐛 Fix a bug that prevented testing a CPython 3.8 wheel targeting macOS 11+ on `x86_64` (#1768)
|
|
||||||
- 📚 Moved the docs onto the official PyPA domain - they're now available at https://cibuildwheel.pypa.io . (#1775)
|
|
||||||
- 📚 Docs and examples improvements (#1762, #1734)
|
|
||||||
|
|
||||||
<!-- END bin/update_readme_changelog.py -->
|
<!-- END bin/update_readme_changelog.py -->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ jobs:
|
|||||||
python ./bin/run_tests.py
|
python ./bin/run_tests.py
|
||||||
|
|
||||||
- job: macos_38
|
- job: macos_38
|
||||||
pool: {vmImage: 'macOS-11'}
|
pool: {vmImage: 'macOS-12'}
|
||||||
steps:
|
steps:
|
||||||
- task: UsePythonVersion@0
|
- task: UsePythonVersion@0
|
||||||
inputs:
|
inputs:
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
__version__ = "2.19.1"
|
__version__ = "2.19.2"
|
||||||
|
|||||||
@@ -282,7 +282,7 @@ def build_in_container(
|
|||||||
if not 0 <= build_options.build_verbosity < 2:
|
if not 0 <= build_options.build_verbosity < 2:
|
||||||
msg = f"build_verbosity {build_options.build_verbosity} is not supported for build frontend. Ignoring."
|
msg = f"build_verbosity {build_options.build_verbosity} is not supported for build frontend. Ignoring."
|
||||||
log.warning(msg)
|
log.warning(msg)
|
||||||
if use_uv:
|
if use_uv and "--no-isolation" not in extra_flags and "-n" not in extra_flags:
|
||||||
extra_flags += ["--installer=uv"]
|
extra_flags += ["--installer=uv"]
|
||||||
container.call(
|
container.call(
|
||||||
[
|
[
|
||||||
@@ -352,10 +352,6 @@ def build_in_container(
|
|||||||
virtualenv_env["PATH"] = f"{venv_dir / 'bin'}:{virtualenv_env['PATH']}"
|
virtualenv_env["PATH"] = f"{venv_dir / 'bin'}:{virtualenv_env['PATH']}"
|
||||||
virtualenv_env["VIRTUAL_ENV"] = str(venv_dir)
|
virtualenv_env["VIRTUAL_ENV"] = str(venv_dir)
|
||||||
|
|
||||||
# TODO remove me once virtualenv provides pip>=24.1b1
|
|
||||||
if config.version == "3.13" and not use_uv:
|
|
||||||
container.call(["pip", "install", "pip>=24.1b1"], env=virtualenv_env)
|
|
||||||
|
|
||||||
if build_options.before_test:
|
if build_options.before_test:
|
||||||
before_test_prepared = prepare_command(
|
before_test_prepared = prepare_command(
|
||||||
build_options.before_test,
|
build_options.before_test,
|
||||||
|
|||||||
@@ -505,7 +505,7 @@ def build(options: Options, tmp_path: Path) -> None:
|
|||||||
if not 0 <= build_options.build_verbosity < 2:
|
if not 0 <= build_options.build_verbosity < 2:
|
||||||
msg = f"build_verbosity {build_options.build_verbosity} is not supported for build frontend. Ignoring."
|
msg = f"build_verbosity {build_options.build_verbosity} is not supported for build frontend. Ignoring."
|
||||||
log.warning(msg)
|
log.warning(msg)
|
||||||
if use_uv:
|
if use_uv and "--no-isolation" not in extra_flags and "-n" not in extra_flags:
|
||||||
extra_flags.append("--installer=uv")
|
extra_flags.append("--installer=uv")
|
||||||
call(
|
call(
|
||||||
"python",
|
"python",
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ from .util import (
|
|||||||
BuildSelector,
|
BuildSelector,
|
||||||
DependencyConstraints,
|
DependencyConstraints,
|
||||||
TestSelector,
|
TestSelector,
|
||||||
cached_property,
|
|
||||||
format_safe,
|
format_safe,
|
||||||
resources_dir,
|
resources_dir,
|
||||||
selector_matches,
|
selector_matches,
|
||||||
@@ -502,7 +501,7 @@ class Options:
|
|||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@cached_property
|
@functools.cached_property
|
||||||
def package_requires_python_str(self) -> str | None:
|
def package_requires_python_str(self) -> str | None:
|
||||||
args = self.command_line_arguments
|
args = self.command_line_arguments
|
||||||
return get_requires_python_str(Path(args.package_dir))
|
return get_requires_python_str(Path(args.package_dir))
|
||||||
@@ -722,7 +721,7 @@ class Options:
|
|||||||
deprecated_selectors("CIBW_SKIP", build_selector.skip_config)
|
deprecated_selectors("CIBW_SKIP", build_selector.skip_config)
|
||||||
deprecated_selectors("CIBW_TEST_SKIP", test_selector.skip_config)
|
deprecated_selectors("CIBW_TEST_SKIP", test_selector.skip_config)
|
||||||
|
|
||||||
@cached_property
|
@functools.cached_property
|
||||||
def defaults(self) -> Options:
|
def defaults(self) -> Options:
|
||||||
return Options(
|
return Options(
|
||||||
platform=self.platform,
|
platform=self.platform,
|
||||||
|
|||||||
@@ -39,10 +39,8 @@ def is_main(parent: ast.AST | None) -> bool:
|
|||||||
if len(mains) != 1:
|
if len(mains) != 1:
|
||||||
return False
|
return False
|
||||||
consts = {x for x in values if isinstance(x, ast.Name) and x.id == "__name__"}
|
consts = {x for x in values if isinstance(x, ast.Name) and x.id == "__name__"}
|
||||||
if len(consts) != 1:
|
|
||||||
return False
|
|
||||||
|
|
||||||
return True
|
return len(consts) == 1
|
||||||
|
|
||||||
|
|
||||||
class Analyzer(ast.NodeVisitor):
|
class Analyzer(ast.NodeVisitor):
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ from .util import (
|
|||||||
BuildSelector,
|
BuildSelector,
|
||||||
NonPlatformWheelError,
|
NonPlatformWheelError,
|
||||||
call,
|
call,
|
||||||
|
combine_constraints,
|
||||||
download,
|
download,
|
||||||
ensure_node,
|
ensure_node,
|
||||||
extract_zip,
|
extract_zip,
|
||||||
@@ -285,11 +286,7 @@ def build(options: Options, tmp_path: Path) -> None:
|
|||||||
|
|
||||||
build_env = env.copy()
|
build_env = env.copy()
|
||||||
if build_options.dependency_constraints:
|
if build_options.dependency_constraints:
|
||||||
our_constraints = str(constraints_path)
|
combine_constraints(build_env, constraints_path, identifier_tmp_dir)
|
||||||
user_constraints = build_env.get("PIP_CONSTRAINT")
|
|
||||||
build_env["PIP_CONSTRAINT"] = " ".join(
|
|
||||||
c for c in [our_constraints, user_constraints] if c
|
|
||||||
)
|
|
||||||
build_env["VIRTUALENV_PIP"] = pip_version
|
build_env["VIRTUALENV_PIP"] = pip_version
|
||||||
call(
|
call(
|
||||||
"pyodide",
|
"pyodide",
|
||||||
|
|||||||
@@ -123,12 +123,12 @@ python_configurations = [
|
|||||||
{ identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.4/python-3.12.4-macos11.pkg" },
|
{ identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.4/python-3.12.4-macos11.pkg" },
|
||||||
{ identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.4/python-3.12.4-macos11.pkg" },
|
{ identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.4/python-3.12.4-macos11.pkg" },
|
||||||
{ identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.4/python-3.12.4-macos11.pkg" },
|
{ identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.4/python-3.12.4-macos11.pkg" },
|
||||||
{ identifier = "cp313-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b2-macos11.pkg" },
|
{ identifier = "cp313-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b3-macos11.pkg" },
|
||||||
{ identifier = "cp313-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b2-macos11.pkg" },
|
{ identifier = "cp313-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b3-macos11.pkg" },
|
||||||
{ identifier = "cp313-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b2-macos11.pkg" },
|
{ identifier = "cp313-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b3-macos11.pkg" },
|
||||||
{ identifier = "cp313t-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b2-macos11.pkg" },
|
{ identifier = "cp313t-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b3-macos11.pkg" },
|
||||||
{ identifier = "cp313t-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b2-macos11.pkg" },
|
{ identifier = "cp313t-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b3-macos11.pkg" },
|
||||||
{ identifier = "cp313t-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b2-macos11.pkg" },
|
{ identifier = "cp313t-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b3-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 = "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.11-macos_x86_64.tar.bz2" },
|
{ identifier = "pp38-macosx_x86_64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_x86_64.tar.bz2" },
|
||||||
{ identifier = "pp38-macosx_arm64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_arm64.tar.bz2" },
|
{ identifier = "pp38-macosx_arm64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_arm64.tar.bz2" },
|
||||||
@@ -154,16 +154,16 @@ python_configurations = [
|
|||||||
{ identifier = "cp311-win_amd64", version = "3.11.9", arch = "64" },
|
{ identifier = "cp311-win_amd64", version = "3.11.9", arch = "64" },
|
||||||
{ identifier = "cp312-win32", version = "3.12.4", arch = "32" },
|
{ identifier = "cp312-win32", version = "3.12.4", arch = "32" },
|
||||||
{ identifier = "cp312-win_amd64", version = "3.12.4", arch = "64" },
|
{ identifier = "cp312-win_amd64", version = "3.12.4", arch = "64" },
|
||||||
{ identifier = "cp313-win32", version = "3.13.0-b2", arch = "32" },
|
{ identifier = "cp313-win32", version = "3.13.0-b3", arch = "32" },
|
||||||
{ identifier = "cp313t-win32", version = "3.13.0-b2", arch = "32" },
|
{ identifier = "cp313t-win32", version = "3.13.0-b3", arch = "32" },
|
||||||
{ identifier = "cp313-win_amd64", version = "3.13.0-b2", arch = "64" },
|
{ identifier = "cp313-win_amd64", version = "3.13.0-b3", arch = "64" },
|
||||||
{ identifier = "cp313t-win_amd64", version = "3.13.0-b2", arch = "64" },
|
{ identifier = "cp313t-win_amd64", version = "3.13.0-b3", arch = "64" },
|
||||||
{ identifier = "cp39-win_arm64", version = "3.9.10", arch = "ARM64" },
|
{ identifier = "cp39-win_arm64", version = "3.9.10", arch = "ARM64" },
|
||||||
{ identifier = "cp310-win_arm64", version = "3.10.11", arch = "ARM64" },
|
{ identifier = "cp310-win_arm64", version = "3.10.11", arch = "ARM64" },
|
||||||
{ identifier = "cp311-win_arm64", version = "3.11.9", arch = "ARM64" },
|
{ identifier = "cp311-win_arm64", version = "3.11.9", arch = "ARM64" },
|
||||||
{ identifier = "cp312-win_arm64", version = "3.12.4", arch = "ARM64" },
|
{ identifier = "cp312-win_arm64", version = "3.12.4", arch = "ARM64" },
|
||||||
{ identifier = "cp313-win_arm64", version = "3.13.0-b2", arch = "ARM64" },
|
{ identifier = "cp313-win_arm64", version = "3.13.0-b3", arch = "ARM64" },
|
||||||
{ identifier = "cp313t-win_arm64", version = "3.13.0-b2", arch = "ARM64" },
|
{ identifier = "cp313t-win_arm64", version = "3.13.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 = "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.11-win64.zip" },
|
{ identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-win64.zip" },
|
||||||
{ identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip" },
|
{ identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip" },
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ annotated-types==0.7.0
|
|||||||
# via pydantic
|
# via pydantic
|
||||||
anyio==4.4.0
|
anyio==4.4.0
|
||||||
# via httpx
|
# via httpx
|
||||||
auditwheel-emscripten==0.0.14
|
auditwheel-emscripten==0.0.15
|
||||||
# via pyodide-build
|
# via pyodide-build
|
||||||
build==1.2.1
|
build==1.2.1
|
||||||
# via
|
# via
|
||||||
@@ -21,11 +21,11 @@ click==8.1.7
|
|||||||
# via typer
|
# via typer
|
||||||
cloudpickle==3.0.0
|
cloudpickle==3.0.0
|
||||||
# via loky
|
# via loky
|
||||||
cmake==3.29.5
|
cmake==3.29.6
|
||||||
# via pyodide-build
|
# via pyodide-build
|
||||||
distlib==0.3.8
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.14.0
|
filelock==3.15.4
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
h11==0.14.0
|
h11==0.14.0
|
||||||
# via httpcore
|
# via httpcore
|
||||||
@@ -38,7 +38,7 @@ idna==3.7
|
|||||||
# anyio
|
# anyio
|
||||||
# httpx
|
# httpx
|
||||||
# requests
|
# requests
|
||||||
leb128==1.0.7
|
leb128==1.0.8
|
||||||
# via auditwheel-emscripten
|
# via auditwheel-emscripten
|
||||||
loky==3.4.1
|
loky==3.4.1
|
||||||
# via pyodide-build
|
# via pyodide-build
|
||||||
@@ -52,21 +52,21 @@ packaging==24.1
|
|||||||
# build
|
# build
|
||||||
# pyodide-build
|
# pyodide-build
|
||||||
# unearth
|
# unearth
|
||||||
pip==24.0
|
pip==24.1.1
|
||||||
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
||||||
platformdirs==4.2.2
|
platformdirs==4.2.2
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
pydantic==2.7.4
|
pydantic==2.8.0
|
||||||
# via
|
# via
|
||||||
# pyodide-build
|
# pyodide-build
|
||||||
# pyodide-lock
|
# pyodide-lock
|
||||||
pydantic-core==2.18.4
|
pydantic-core==2.20.0
|
||||||
# via pydantic
|
# via pydantic
|
||||||
pygments==2.18.0
|
pygments==2.18.0
|
||||||
# via rich
|
# via rich
|
||||||
pyodide-build==0.26.1
|
pyodide-build==0.26.1
|
||||||
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
||||||
pyodide-cli==0.2.3
|
pyodide-cli==0.2.4
|
||||||
# via
|
# via
|
||||||
# auditwheel-emscripten
|
# auditwheel-emscripten
|
||||||
# pyodide-build
|
# pyodide-build
|
||||||
@@ -100,20 +100,20 @@ typer==0.12.3
|
|||||||
# auditwheel-emscripten
|
# auditwheel-emscripten
|
||||||
# pyodide-build
|
# pyodide-build
|
||||||
# pyodide-cli
|
# pyodide-cli
|
||||||
types-requests==2.32.0.20240602
|
types-requests==2.32.0.20240622
|
||||||
# via pyodide-build
|
# via pyodide-build
|
||||||
typing-extensions==4.12.2
|
typing-extensions==4.12.2
|
||||||
# via
|
# via
|
||||||
# pydantic
|
# pydantic
|
||||||
# pydantic-core
|
# pydantic-core
|
||||||
# typer
|
# typer
|
||||||
unearth==0.15.4
|
unearth==0.15.5
|
||||||
# via pyodide-build
|
# via pyodide-build
|
||||||
urllib3==2.2.1
|
urllib3==2.2.2
|
||||||
# via
|
# via
|
||||||
# requests
|
# requests
|
||||||
# types-requests
|
# types-requests
|
||||||
virtualenv==20.26.2
|
virtualenv==20.26.3
|
||||||
# via
|
# via
|
||||||
# build
|
# build
|
||||||
# pyodide-build
|
# pyodide-build
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ delocate==0.11.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.8
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.14.0
|
filelock==3.15.4
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
importlib-metadata==7.1.0
|
importlib-metadata==8.0.0
|
||||||
# via build
|
# via build
|
||||||
macholib==1.16.3
|
macholib==1.16.3
|
||||||
# via delocate
|
# via delocate
|
||||||
@@ -18,7 +18,7 @@ packaging==24.1
|
|||||||
# via
|
# via
|
||||||
# build
|
# build
|
||||||
# delocate
|
# delocate
|
||||||
pip==24.0
|
pip==24.1.1
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
platformdirs==4.2.2
|
platformdirs==4.2.2
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -28,7 +28,7 @@ tomli==2.0.1
|
|||||||
# via build
|
# via build
|
||||||
typing-extensions==4.12.2
|
typing-extensions==4.12.2
|
||||||
# via delocate
|
# via delocate
|
||||||
virtualenv==20.26.2
|
virtualenv==20.26.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
zipp==3.19.2
|
zipp==3.19.2
|
||||||
# via importlib-metadata
|
# via importlib-metadata
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ delocate==0.11.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.8
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.14.0
|
filelock==3.15.4
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
macholib==1.16.3
|
macholib==1.16.3
|
||||||
# via delocate
|
# via delocate
|
||||||
@@ -16,7 +16,7 @@ packaging==24.1
|
|||||||
# via
|
# via
|
||||||
# build
|
# build
|
||||||
# delocate
|
# delocate
|
||||||
pip==24.0
|
pip==24.1.1
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
platformdirs==4.2.2
|
platformdirs==4.2.2
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -24,5 +24,5 @@ pyproject-hooks==1.1.0
|
|||||||
# via build
|
# via build
|
||||||
typing-extensions==4.12.2
|
typing-extensions==4.12.2
|
||||||
# via delocate
|
# via delocate
|
||||||
virtualenv==20.26.2
|
virtualenv==20.26.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ delocate==0.11.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.8
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.14.0
|
filelock==3.15.4
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
macholib==1.16.3
|
macholib==1.16.3
|
||||||
# via delocate
|
# via delocate
|
||||||
@@ -16,7 +16,7 @@ packaging==24.1
|
|||||||
# via
|
# via
|
||||||
# build
|
# build
|
||||||
# delocate
|
# delocate
|
||||||
pip==24.0
|
pip==24.1.1
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
platformdirs==4.2.2
|
platformdirs==4.2.2
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -24,5 +24,5 @@ pyproject-hooks==1.1.0
|
|||||||
# via build
|
# via build
|
||||||
typing-extensions==4.12.2
|
typing-extensions==4.12.2
|
||||||
# via delocate
|
# via delocate
|
||||||
virtualenv==20.26.2
|
virtualenv==20.26.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ delocate==0.11.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.8
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.14.0
|
filelock==3.15.4
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
macholib==1.16.3
|
macholib==1.16.3
|
||||||
# via delocate
|
# via delocate
|
||||||
@@ -16,7 +16,7 @@ packaging==24.1
|
|||||||
# via
|
# via
|
||||||
# build
|
# build
|
||||||
# delocate
|
# delocate
|
||||||
pip==24.1b2
|
pip==24.1.1
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
platformdirs==4.2.2
|
platformdirs==4.2.2
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -24,5 +24,5 @@ pyproject-hooks==1.1.0
|
|||||||
# via build
|
# via build
|
||||||
typing-extensions==4.12.2
|
typing-extensions==4.12.2
|
||||||
# via delocate
|
# via delocate
|
||||||
virtualenv==20.26.2
|
virtualenv==20.26.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ typing-extensions==4.7.1
|
|||||||
# delocate
|
# delocate
|
||||||
# importlib-metadata
|
# importlib-metadata
|
||||||
# platformdirs
|
# platformdirs
|
||||||
virtualenv==20.26.2
|
virtualenv==20.26.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
zipp==3.15.0
|
zipp==3.15.0
|
||||||
# via importlib-metadata
|
# via importlib-metadata
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ delocate==0.11.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.8
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.14.0
|
filelock==3.15.4
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
importlib-metadata==7.1.0
|
importlib-metadata==8.0.0
|
||||||
# via build
|
# via build
|
||||||
macholib==1.16.3
|
macholib==1.16.3
|
||||||
# via delocate
|
# via delocate
|
||||||
@@ -18,7 +18,7 @@ packaging==24.1
|
|||||||
# via
|
# via
|
||||||
# build
|
# build
|
||||||
# delocate
|
# delocate
|
||||||
pip==24.0
|
pip==24.1.1
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
platformdirs==4.2.2
|
platformdirs==4.2.2
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -28,7 +28,7 @@ tomli==2.0.1
|
|||||||
# via build
|
# via build
|
||||||
typing-extensions==4.12.2
|
typing-extensions==4.12.2
|
||||||
# via delocate
|
# via delocate
|
||||||
virtualenv==20.26.2
|
virtualenv==20.26.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
zipp==3.19.2
|
zipp==3.19.2
|
||||||
# via importlib-metadata
|
# via importlib-metadata
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ delocate==0.11.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.8
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.14.0
|
filelock==3.15.4
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
importlib-metadata==7.1.0
|
importlib-metadata==8.0.0
|
||||||
# via build
|
# via build
|
||||||
macholib==1.16.3
|
macholib==1.16.3
|
||||||
# via delocate
|
# via delocate
|
||||||
@@ -18,7 +18,7 @@ packaging==24.1
|
|||||||
# via
|
# via
|
||||||
# build
|
# build
|
||||||
# delocate
|
# delocate
|
||||||
pip==24.0
|
pip==24.1.1
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
platformdirs==4.2.2
|
platformdirs==4.2.2
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -28,7 +28,7 @@ tomli==2.0.1
|
|||||||
# via build
|
# via build
|
||||||
typing-extensions==4.12.2
|
typing-extensions==4.12.2
|
||||||
# via delocate
|
# via delocate
|
||||||
virtualenv==20.26.2
|
virtualenv==20.26.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
zipp==3.19.2
|
zipp==3.19.2
|
||||||
# via importlib-metadata
|
# via importlib-metadata
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
pip>=24.1b1 ; python_version >= '3.13'
|
pip
|
||||||
pip ; python_version < '3.13'
|
|
||||||
build
|
build
|
||||||
delocate
|
delocate
|
||||||
virtualenv
|
virtualenv
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ delocate==0.11.0
|
|||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
distlib==0.3.8
|
distlib==0.3.8
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
filelock==3.14.0
|
filelock==3.15.4
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
macholib==1.16.3
|
macholib==1.16.3
|
||||||
# via delocate
|
# via delocate
|
||||||
@@ -16,7 +16,7 @@ packaging==24.1
|
|||||||
# via
|
# via
|
||||||
# build
|
# build
|
||||||
# delocate
|
# delocate
|
||||||
pip==24.0
|
pip==24.1.1
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
platformdirs==4.2.2
|
platformdirs==4.2.2
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@@ -24,5 +24,5 @@ pyproject-hooks==1.1.0
|
|||||||
# via build
|
# via build
|
||||||
typing-extensions==4.12.2
|
typing-extensions==4.12.2
|
||||||
# via delocate
|
# via delocate
|
||||||
virtualenv==20.26.2
|
virtualenv==20.26.3
|
||||||
# via -r cibuildwheel/resources/constraints.in
|
# via -r cibuildwheel/resources/constraints.in
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
url = "https://nodejs.org/dist/"
|
url = "https://nodejs.org/dist/"
|
||||||
v20 = "v20.14.0"
|
v20 = "v20.15.0"
|
||||||
|
|||||||
@@ -1,54 +1,54 @@
|
|||||||
[x86_64]
|
[x86_64]
|
||||||
manylinux1 = quay.io/pypa/manylinux1_x86_64:2024-04-29-76807b8
|
manylinux1 = quay.io/pypa/manylinux1_x86_64:2024-04-29-76807b8
|
||||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
|
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024.06.12-1
|
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024.07.02-0
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463
|
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024.06.12-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024.07.02-0
|
||||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024.06.12-1
|
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024.07.02-0
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2024.06.12-1
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2024.07.02-0
|
||||||
|
|
||||||
[i686]
|
[i686]
|
||||||
manylinux1 = quay.io/pypa/manylinux1_i686:2024-04-29-76807b8
|
manylinux1 = quay.io/pypa/manylinux1_i686:2024-04-29-76807b8
|
||||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
|
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2024.06.12-1
|
manylinux2014 = quay.io/pypa/manylinux2014_i686:2024.07.02-0
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463
|
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463
|
||||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2024.06.12-1
|
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2024.07.02-0
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2024.06.12-1
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2024.07.02-0
|
||||||
|
|
||||||
[pypy_x86_64]
|
[pypy_x86_64]
|
||||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
|
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024.06.12-1
|
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024.07.02-0
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463
|
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024.06.12-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024.07.02-0
|
||||||
|
|
||||||
[pypy_i686]
|
[pypy_i686]
|
||||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
|
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2024.06.12-1
|
manylinux2014 = quay.io/pypa/manylinux2014_i686:2024.07.02-0
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463
|
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463
|
||||||
|
|
||||||
[aarch64]
|
[aarch64]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024.06.12-1
|
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024.07.02-0
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463
|
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024.06.12-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024.07.02-0
|
||||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024.06.12-1
|
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024.07.02-0
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2024.06.12-1
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2024.07.02-0
|
||||||
|
|
||||||
[ppc64le]
|
[ppc64le]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2024.06.12-1
|
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2024.07.02-0
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463
|
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2024.06.12-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2024.07.02-0
|
||||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024.06.12-1
|
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024.07.02-0
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2024.06.12-1
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2024.07.02-0
|
||||||
|
|
||||||
[s390x]
|
[s390x]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2024.06.12-1
|
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2024.07.02-0
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463
|
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2024.06.12-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2024.07.02-0
|
||||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024.06.12-1
|
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024.07.02-0
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2024.06.12-1
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2024.07.02-0
|
||||||
|
|
||||||
[pypy_aarch64]
|
[pypy_aarch64]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024.06.12-1
|
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024.07.02-0
|
||||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463
|
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024.06.12-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024.07.02-0
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
py36 = { version = "20.21.1", url = "https://github.com/pypa/get-virtualenv/blob/20.21.1/public/virtualenv.pyz?raw=true" }
|
py36 = { version = "20.21.1", url = "https://github.com/pypa/get-virtualenv/blob/20.21.1/public/virtualenv.pyz?raw=true" }
|
||||||
default = { version = "20.26.2", url = "https://github.com/pypa/get-virtualenv/blob/20.26.2/public/virtualenv.pyz?raw=true" }
|
default = { version = "20.26.3", url = "https://github.com/pypa/get-virtualenv/blob/20.26.3/public/virtualenv.pyz?raw=true" }
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ from collections import defaultdict
|
|||||||
from collections.abc import Generator, Iterable, Mapping, MutableMapping, Sequence
|
from collections.abc import Generator, Iterable, Mapping, MutableMapping, Sequence
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from functools import cached_property, lru_cache
|
from functools import lru_cache
|
||||||
from pathlib import Path, PurePath
|
from pathlib import Path, PurePath
|
||||||
from tempfile import TemporaryDirectory
|
from tempfile import TemporaryDirectory
|
||||||
from time import sleep
|
from time import sleep
|
||||||
@@ -41,7 +41,6 @@ from .typing import PathOrStr, PlatformName
|
|||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"MANYLINUX_ARCHS",
|
"MANYLINUX_ARCHS",
|
||||||
"cached_property",
|
|
||||||
"call",
|
"call",
|
||||||
"chdir",
|
"chdir",
|
||||||
"combine_constraints",
|
"combine_constraints",
|
||||||
|
|||||||
@@ -441,7 +441,7 @@ def build(options: Options, tmp_path: Path) -> None:
|
|||||||
if not 0 <= build_options.build_verbosity < 2:
|
if not 0 <= build_options.build_verbosity < 2:
|
||||||
msg = f"build_verbosity {build_options.build_verbosity} is not supported for build frontend. Ignoring."
|
msg = f"build_verbosity {build_options.build_verbosity} is not supported for build frontend. Ignoring."
|
||||||
log.warning(msg)
|
log.warning(msg)
|
||||||
if use_uv:
|
if use_uv and "--no-isolation" not in extra_flags and "-n" not in extra_flags:
|
||||||
extra_flags.append("--installer=uv")
|
extra_flags.append("--installer=uv")
|
||||||
call(
|
call(
|
||||||
"python",
|
"python",
|
||||||
|
|||||||
@@ -4,6 +4,18 @@ title: Changelog
|
|||||||
|
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
### v2.19.2
|
||||||
|
|
||||||
|
- 🐛 Update manylinux2014 pins to versions that support past-EoL CentOS 7 mirrors. (#1917)
|
||||||
|
- 🐛 Support `--no-isolation` with `build[uv]` build-frontend. (#1889)
|
||||||
|
- 🛠 Provide attestations for releases at <https://github.com/pypa/cibuildwheel/attestations>. (#1916)
|
||||||
|
- 🛠 Provide CPython 3.13.0b3. (#1913)
|
||||||
|
- 🛠 Remove some workarounds now that pip 21.1 is available. (#1891, #1892)
|
||||||
|
- 📚 Remove nosetest from our docs. (#1821)
|
||||||
|
- 📚 Document the macOS ARM workaround for 3.8 on GHA. (#1971)
|
||||||
|
- 📚 GitLab CI + macOS is now a supported platform with an example. (#1911)
|
||||||
|
|
||||||
|
|
||||||
### v2.19.1
|
### v2.19.1
|
||||||
|
|
||||||
- 🐛 Don't require setup-python on GHA for Pyodide (#1868)
|
- 🐛 Don't require setup-python on GHA for Pyodide (#1868)
|
||||||
|
|||||||
@@ -657,3 +657,10 @@
|
|||||||
C++ framework. Uses cibuildwheel to deploy on as many operating
|
C++ framework. Uses cibuildwheel to deploy on as many operating
|
||||||
systems and Python versions as possible with only one dependency
|
systems and Python versions as possible with only one dependency
|
||||||
(any NumPy).
|
(any NumPy).
|
||||||
|
|
||||||
|
- name: streaming-form-data
|
||||||
|
gh: siddhantgoel/streaming-form-data
|
||||||
|
ci: [github]
|
||||||
|
os: [apple, linux, windows]
|
||||||
|
pypi: streaming-form-data
|
||||||
|
notes: Streaming parser for multipart/form-data written in Cython
|
||||||
|
|||||||
+20
-11
@@ -142,7 +142,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:
|
If you use GitHub Actions for builds, you can use cibuildwheel as an action:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: pypa/cibuildwheel@v2.19.1
|
uses: pypa/cibuildwheel@v2.19.2
|
||||||
```
|
```
|
||||||
|
|
||||||
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.
|
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.
|
||||||
@@ -164,7 +164,7 @@ The second option, and the only one that supports other CI systems, is using a `
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# requirements-cibw.txt
|
# requirements-cibw.txt
|
||||||
cibuildwheel==2.19.1
|
cibuildwheel==2.19.2
|
||||||
```
|
```
|
||||||
|
|
||||||
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:
|
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:
|
||||||
@@ -328,7 +328,7 @@ Solutions to this vary, but the simplest is to use pipx:
|
|||||||
# most runners have pipx preinstalled, but in case you don't
|
# most runners have pipx preinstalled, but in case you don't
|
||||||
python3 -m pip install pipx
|
python3 -m pip install pipx
|
||||||
|
|
||||||
pipx run cibuildwheel==2.19.1 --output-dir wheelhouse
|
pipx run cibuildwheel==2.19.2 --output-dir wheelhouse
|
||||||
pipx run twine upload wheelhouse/*.whl
|
pipx run twine upload wheelhouse/*.whl
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -363,16 +363,25 @@ If you're building on an arm64 runner, you might notice something strange about
|
|||||||
|
|
||||||
This is fine for simple C extensions, but for more complicated builds on arm64 it becomes an issue.
|
This is fine for simple C extensions, but for more complicated builds on arm64 it becomes an issue.
|
||||||
|
|
||||||
So, if the cross-compilation is an issue for you, there is an 'experimental' installer available that's built natively for arm64.
|
So, if you want to build macOS arm64 wheels on an arm64 runner (e.g., `macos-14`) on Python 3.8, before invoking cibuildwheel, you should install a native arm64 Python 3.8 interpreter on the runner:
|
||||||
|
|
||||||
To use this installer and perform native CPython 3.8 building, before invoking cibuildwheel, install the universal2 version of Python on your arm64 runner, something like:
|
|
||||||
|
|
||||||
|
|
||||||
```bash
|
!!! tab "GitHub Actions"
|
||||||
curl -o /tmp/Python38.pkg https://www.python.org/ftp/python/3.8.10/python-3.8.10-macos11.pkg
|
|
||||||
sudo installer -pkg /tmp/Python38.pkg -target /
|
```yaml
|
||||||
sh "/Applications/Python 3.8/Install Certificates.command"
|
- uses: actions/setup-python@v5
|
||||||
```
|
with:
|
||||||
|
python-version: 3.8
|
||||||
|
if: runner.os == 'macOS' && runner.arch == 'ARM64'
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! tab "Generic"
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -o /tmp/Python38.pkg https://www.python.org/ftp/python/3.8.10/python-3.8.10-macos11.pkg
|
||||||
|
sudo installer -pkg /tmp/Python38.pkg -target /
|
||||||
|
sh "/Applications/Python 3.8/Install Certificates.command"
|
||||||
|
```
|
||||||
|
|
||||||
Then cibuildwheel will detect that it's installed and use it instead. However, you probably don't want to build x86_64 wheels on this Python, unless you're happy with them only supporting macOS 11+.
|
Then cibuildwheel will detect that it's installed and use it instead. However, you probably don't want to build x86_64 wheels on this Python, unless you're happy with them only supporting macOS 11+.
|
||||||
|
|
||||||
|
|||||||
+10
-10
@@ -624,7 +624,7 @@ This option can also be set using the [command-line option](#command-line) `--pr
|
|||||||
## Build customization
|
## Build customization
|
||||||
|
|
||||||
### `CIBW_BUILD_FRONTEND` {: #build-frontend}
|
### `CIBW_BUILD_FRONTEND` {: #build-frontend}
|
||||||
> Set the tool to use to build, either "pip" (default for now), "build", or "build[uv]"
|
> Set the tool to use to build, either "pip" (default for now), "build", or "build\[uv\]"
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
@@ -636,7 +636,7 @@ Default: `pip`
|
|||||||
Choose which build frontend to use. Can either be "pip", which will run
|
Choose which build frontend to use. Can either be "pip", which will run
|
||||||
`python -m pip wheel`, or "build", which will run `python -m build --wheel`.
|
`python -m pip wheel`, or "build", which will run `python -m build --wheel`.
|
||||||
|
|
||||||
You can also use "build[uv]", which will use an external [uv][] everywhere
|
You can also use "build\[uv\]", which will use an external [uv][] everywhere
|
||||||
possible, both through `--installer=uv` passed to build, as well as when making
|
possible, both through `--installer=uv` passed to build, as well as when making
|
||||||
all build and test environments. This will generally speed up cibuildwheel.
|
all build and test environments. This will generally speed up cibuildwheel.
|
||||||
Make sure you have an external uv on Windows and macOS, either by
|
Make sure you have an external uv on Windows and macOS, either by
|
||||||
@@ -657,6 +657,12 @@ optional `args` option.
|
|||||||
will change the default to [build][], in line with the PyPA's recommendation.
|
will change the default to [build][], in line with the PyPA's recommendation.
|
||||||
If you want to try `build` before this, you can use this option.
|
If you want to try `build` before this, you can use this option.
|
||||||
|
|
||||||
|
!!! warning
|
||||||
|
If you are using `build[uv]` and are passing `--no-isolation` or `-n`, we
|
||||||
|
will detect this and avoid passing `--installer=uv` to build, but still
|
||||||
|
install all packages with uv. We do not currently detect combined short
|
||||||
|
options, like `-xn`!
|
||||||
|
|
||||||
[pip]: https://pip.pypa.io/en/stable/cli/pip_wheel/
|
[pip]: https://pip.pypa.io/en/stable/cli/pip_wheel/
|
||||||
[build]: https://github.com/pypa/build/
|
[build]: https://github.com/pypa/build/
|
||||||
[uv]: https://github.com/astral-sh/uv
|
[uv]: https://github.com/astral-sh/uv
|
||||||
@@ -1383,9 +1389,6 @@ Platform-specific environment variables are also available:<br/>
|
|||||||
!!! tab examples "Environment variables"
|
!!! tab examples "Environment variables"
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Run the project tests against the installed wheel using `nose`
|
|
||||||
CIBW_TEST_COMMAND: nosetests {project}/tests
|
|
||||||
|
|
||||||
# Run the package tests using `pytest`
|
# Run the package tests using `pytest`
|
||||||
CIBW_TEST_COMMAND: pytest {package}/tests
|
CIBW_TEST_COMMAND: pytest {package}/tests
|
||||||
|
|
||||||
@@ -1402,9 +1405,6 @@ Platform-specific environment variables are also available:<br/>
|
|||||||
|
|
||||||
```toml
|
```toml
|
||||||
[tool.cibuildwheel]
|
[tool.cibuildwheel]
|
||||||
# Run the project tests against the installed wheel using `nose`
|
|
||||||
test-command = "nosetests {project}/tests"
|
|
||||||
|
|
||||||
# Run the package tests using `pytest`
|
# Run the package tests using `pytest`
|
||||||
test-command = "pytest {package}/tests"
|
test-command = "pytest {package}/tests"
|
||||||
|
|
||||||
@@ -1510,7 +1510,7 @@ Platform-specific environment variables are also available:<br/>
|
|||||||
CIBW_TEST_REQUIRES: pytest
|
CIBW_TEST_REQUIRES: pytest
|
||||||
|
|
||||||
# Install specific versions of test dependencies
|
# Install specific versions of test dependencies
|
||||||
CIBW_TEST_REQUIRES: nose==1.3.7 moto==0.4.31
|
CIBW_TEST_REQUIRES: pytest==8.2.2 packaging==24.1
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! tab examples "pyproject.toml"
|
!!! tab examples "pyproject.toml"
|
||||||
@@ -1522,7 +1522,7 @@ Platform-specific environment variables are also available:<br/>
|
|||||||
|
|
||||||
# Install specific versions of test dependencies
|
# Install specific versions of test dependencies
|
||||||
[tool.cibuildwheel]
|
[tool.cibuildwheel]
|
||||||
test-requires = ["nose==1.3.7", "moto==0.4.31"]
|
test-requires = ["pytest==8.2.2", "packaging==24.1"]
|
||||||
```
|
```
|
||||||
|
|
||||||
In configuration files, you can use an array, and the items will be joined with a space.
|
In configuration files, you can use an array, and the items will be joined with a space.
|
||||||
|
|||||||
+2
-2
@@ -161,7 +161,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
run: pipx run cibuildwheel==2.19.1
|
run: pipx run cibuildwheel==2.19.2
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
@@ -198,7 +198,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/
|
|||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
|
|
||||||
- name: Install cibuildwheel
|
- name: Install cibuildwheel
|
||||||
run: python -m pip install cibuildwheel==2.19.1
|
run: python -m pip install cibuildwheel==2.19.2
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
run: python -m cibuildwheel --output-dir wheelhouse
|
run: python -m cibuildwheel --output-dir wheelhouse
|
||||||
|
|||||||
+18
-16
@@ -12,9 +12,9 @@ title: Working examples
|
|||||||
| [pytorch-fairseq][] | ![github icon][] | ![apple icon][] ![linux icon][] | Facebook AI Research Sequence-to-Sequence Toolkit written in Python. |
|
| [pytorch-fairseq][] | ![github icon][] | ![apple icon][] ![linux icon][] | Facebook AI Research Sequence-to-Sequence Toolkit written in Python. |
|
||||||
| [NumPy][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The fundamental package for scientific computing with Python. |
|
| [NumPy][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The fundamental package for scientific computing with Python. |
|
||||||
| [Tornado][] | ![github icon][] | ![linux icon][] ![apple icon][] ![windows icon][] | Tornado is a Python web framework and asynchronous networking library. Uses stable ABI for a small C extension. |
|
| [Tornado][] | ![github icon][] | ![linux icon][] ![apple icon][] ![windows icon][] | Tornado is a Python web framework and asynchronous networking library. Uses stable ABI for a small C extension. |
|
||||||
| [Matplotlib][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The venerable Matplotlib, a Python library with C++ portions |
|
|
||||||
| [NCNN][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | ncnn is a high-performance neural network inference framework optimized for the mobile platform |
|
|
||||||
| [duckdb][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | DuckDB is an analytical in-process SQL database management system |
|
| [duckdb][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | DuckDB is an analytical in-process SQL database management system |
|
||||||
|
| [NCNN][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | ncnn is a high-performance neural network inference framework optimized for the mobile platform |
|
||||||
|
| [Matplotlib][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The venerable Matplotlib, a Python library with C++ portions |
|
||||||
| [Prophet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth. |
|
| [Prophet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth. |
|
||||||
| [MyPy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | The compiled version of MyPy using MyPyC. |
|
| [MyPy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | The compiled version of MyPy using MyPyC. |
|
||||||
| [Kivy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS |
|
| [Kivy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS |
|
||||||
@@ -75,10 +75,10 @@ title: Working examples
|
|||||||
| [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a CMake-based build system |
|
| [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a CMake-based build system |
|
||||||
| [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python |
|
| [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python |
|
||||||
| [dd-trace-py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Uses custom alternate arch emulation on GitHub |
|
| [dd-trace-py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Uses custom alternate arch emulation on GitHub |
|
||||||
| [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] ![appveyor icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson |
|
|
||||||
| [tgcalls][] | ![github icon][] | ![apple icon][] ![windows icon][] | Python `pybind11` binding to Telegram's WebRTC library with third party dependencies like `OpenSSL`, `MozJPEG`, `FFmpeg`, etc. |
|
| [tgcalls][] | ![github icon][] | ![apple icon][] ![windows icon][] | Python `pybind11` binding to Telegram's WebRTC library with third party dependencies like `OpenSSL`, `MozJPEG`, `FFmpeg`, etc. |
|
||||||
| [python-snappy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for the snappy google library |
|
| [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] ![appveyor icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson |
|
||||||
| [pybind11 python_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a Python-based build system |
|
| [pybind11 python_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a Python-based build system |
|
||||||
|
| [python-snappy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for the snappy google library |
|
||||||
| [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. |
|
| [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. |
|
||||||
| [sourmash][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Quickly search, compare, and analyze genomic and metagenomic data sets. |
|
| [sourmash][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Quickly search, compare, and analyze genomic and metagenomic data sets. |
|
||||||
| [cyvcf2][] | ![github icon][] | ![apple icon][] ![linux icon][] | cython + htslib == fast VCF and BCF processing |
|
| [cyvcf2][] | ![github icon][] | ![apple icon][] ![linux icon][] | cython + htslib == fast VCF and BCF processing |
|
||||||
@@ -90,14 +90,15 @@ title: Working examples
|
|||||||
| [PyGLM][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Fast OpenGL Mathematics (GLM) for Python |
|
| [PyGLM][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Fast OpenGL Mathematics (GLM) for Python |
|
||||||
| [pillow-heif][] | ![github icon][] ![cirrusci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Bindings to libheif library with third party dependencies. Fully automated CI for tests and publishing including Apple Silicon builds. |
|
| [pillow-heif][] | ![github icon][] ![cirrusci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Bindings to libheif library with third party dependencies. Fully automated CI for tests and publishing including Apple Silicon builds. |
|
||||||
| [TgCrypto][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. |
|
| [TgCrypto][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. |
|
||||||
|
| [streaming-form-data][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Streaming parser for multipart/form-data written in Cython |
|
||||||
| [iDynTree][] | ![github icon][] | ![linux icon][] | Uses manylinux_2_24 |
|
| [iDynTree][] | ![github icon][] | ![linux icon][] | Uses manylinux_2_24 |
|
||||||
| [bx-python][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | A library that includes Cython extensions. |
|
| [bx-python][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | A library that includes Cython extensions. |
|
||||||
| [boost-histogram][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Supports full range of wheels, including PyPy and alternate archs. |
|
| [boost-histogram][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Supports full range of wheels, including PyPy and alternate archs. |
|
||||||
| [Python-WebRTC][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | a Python extension that provides bindings to WebRTC M92 |
|
|
||||||
| [power-grid-model][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python/C++ library for distribution power system analysis |
|
| [power-grid-model][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python/C++ library for distribution power system analysis |
|
||||||
|
| [Python-WebRTC][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | a Python extension that provides bindings to WebRTC M92 |
|
||||||
| [pybase64][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast Base64 encoding/decoding in Python |
|
| [pybase64][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast Base64 encoding/decoding in Python |
|
||||||
| [fathon][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | python package for DFA (Detrended Fluctuation Analysis) and related algorithms |
|
|
||||||
| [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. |
|
| [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. |
|
||||||
|
| [fathon][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | python package for DFA (Detrended Fluctuation Analysis) and related algorithms |
|
||||||
| [Arbor][] | ![github icon][] | ![apple icon][] ![linux icon][] | Arbor is a multi-compartment neuron simulation library; compatible with next-generation accelerators; best-practices applied to research software; focused on community-driven development. Includes a [small script](https://github.com/arbor-sim/arbor/blob/master/scripts/patchwheel.py) patching `rpath` in bundled libraries. |
|
| [Arbor][] | ![github icon][] | ![apple icon][] ![linux icon][] | Arbor is a multi-compartment neuron simulation library; compatible with next-generation accelerators; best-practices applied to research software; focused on community-driven development. Includes a [small script](https://github.com/arbor-sim/arbor/blob/master/scripts/patchwheel.py) patching `rpath` in bundled libraries. |
|
||||||
| [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 |
|
| [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 |
|
||||||
| [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. |
|
| [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. |
|
||||||
@@ -108,10 +109,10 @@ title: Working examples
|
|||||||
| [numpythia][] | ![github icon][] | ![apple icon][] ![linux icon][] | The interface between PYTHIA and NumPy |
|
| [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 |
|
| [pyjet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The interface between FastJet and NumPy |
|
||||||
| [ril][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A python binding to Rust Imaging library using maturin and Pyo3, utilizes Github Action cache to improve speed. Builds abi3 wheels. |
|
| [ril][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A python binding to Rust Imaging library using maturin and Pyo3, utilizes Github Action cache to improve speed. Builds abi3 wheels. |
|
||||||
| [SiPM][] | ![github icon][] | ![apple icon][] ![linux icon][] | High performance library for SiPM detectors simulation using C++17, OpenMP and AVX2 intrinsics. |
|
|
||||||
| [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. |
|
| [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. |
|
||||||
| [CorrectionLib][] | ![github icon][] | ![apple icon][] ![linux icon][] | Structured JSON powered correction library for HEP, designed for the CMS experiment at CERN. |
|
| [SiPM][] | ![github icon][] | ![apple icon][] ![linux icon][] | High performance library for SiPM detectors simulation using C++17, OpenMP and AVX2 intrinsics. |
|
||||||
| [aalink][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Async Python interface for Ableton Link. |
|
| [aalink][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Async Python interface for Ableton Link. |
|
||||||
|
| [CorrectionLib][] | ![github icon][] | ![apple icon][] ![linux icon][] | Structured JSON powered correction library for HEP, designed for the CMS experiment at CERN. |
|
||||||
| [xmlstarlet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python 3.6+ CFFI bindings with true MSVC build. |
|
| [xmlstarlet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python 3.6+ CFFI bindings with true MSVC build. |
|
||||||
| [pyinstrument_cext][] | ![travisci icon][] ![appveyor icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A simple C extension, without external dependencies |
|
| [pyinstrument_cext][] | ![travisci icon][] ![appveyor icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A simple C extension, without external dependencies |
|
||||||
| [werpy][] | ![github icon][] | ![windows icon][] ![linux icon][] ![apple icon][] | An ultra-fast python package using optimized dynamic programming to compute the Word Error Rate (WER). |
|
| [werpy][] | ![github icon][] | ![windows icon][] ![linux icon][] ![apple icon][] | An ultra-fast python package using optimized dynamic programming to compute the Word Error Rate (WER). |
|
||||||
@@ -121,9 +122,9 @@ title: Working examples
|
|||||||
[pytorch-fairseq]: https://github.com/facebookresearch/fairseq
|
[pytorch-fairseq]: https://github.com/facebookresearch/fairseq
|
||||||
[NumPy]: https://github.com/numpy/numpy
|
[NumPy]: https://github.com/numpy/numpy
|
||||||
[Tornado]: https://github.com/tornadoweb/tornado
|
[Tornado]: https://github.com/tornadoweb/tornado
|
||||||
[Matplotlib]: https://github.com/matplotlib/matplotlib
|
|
||||||
[NCNN]: https://github.com/Tencent/ncnn
|
|
||||||
[duckdb]: https://github.com/duckdb/duckdb
|
[duckdb]: https://github.com/duckdb/duckdb
|
||||||
|
[NCNN]: https://github.com/Tencent/ncnn
|
||||||
|
[Matplotlib]: https://github.com/matplotlib/matplotlib
|
||||||
[Prophet]: https://github.com/facebook/prophet
|
[Prophet]: https://github.com/facebook/prophet
|
||||||
[MyPy]: https://github.com/mypyc/mypy_mypyc-wheels
|
[MyPy]: https://github.com/mypyc/mypy_mypyc-wheels
|
||||||
[Kivy]: https://github.com/kivy/kivy
|
[Kivy]: https://github.com/kivy/kivy
|
||||||
@@ -184,10 +185,10 @@ title: Working examples
|
|||||||
[pybind11 cmake_example]: https://github.com/pybind/cmake_example
|
[pybind11 cmake_example]: https://github.com/pybind/cmake_example
|
||||||
[KDEpy]: https://github.com/tommyod/KDEpy
|
[KDEpy]: https://github.com/tommyod/KDEpy
|
||||||
[dd-trace-py]: https://github.com/DataDog/dd-trace-py
|
[dd-trace-py]: https://github.com/DataDog/dd-trace-py
|
||||||
[python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson
|
|
||||||
[tgcalls]: https://github.com/MarshalX/tgcalls
|
[tgcalls]: https://github.com/MarshalX/tgcalls
|
||||||
[python-snappy]: https://github.com/intake/python-snappy
|
[python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson
|
||||||
[pybind11 python_example]: https://github.com/pybind/python_example
|
[pybind11 python_example]: https://github.com/pybind/python_example
|
||||||
|
[python-snappy]: https://github.com/intake/python-snappy
|
||||||
[abess]: https://github.com/abess-team/abess
|
[abess]: https://github.com/abess-team/abess
|
||||||
[sourmash]: https://github.com/sourmash-bio/sourmash
|
[sourmash]: https://github.com/sourmash-bio/sourmash
|
||||||
[cyvcf2]: https://github.com/brentp/cyvcf2
|
[cyvcf2]: https://github.com/brentp/cyvcf2
|
||||||
@@ -199,14 +200,15 @@ title: Working examples
|
|||||||
[PyGLM]: https://github.com/Zuzu-Typ/PyGLM
|
[PyGLM]: https://github.com/Zuzu-Typ/PyGLM
|
||||||
[pillow-heif]: https://github.com/bigcat88/pillow_heif
|
[pillow-heif]: https://github.com/bigcat88/pillow_heif
|
||||||
[TgCrypto]: https://github.com/pyrogram/tgcrypto
|
[TgCrypto]: https://github.com/pyrogram/tgcrypto
|
||||||
|
[streaming-form-data]: https://github.com/siddhantgoel/streaming-form-data
|
||||||
[iDynTree]: https://github.com/robotology/idyntree
|
[iDynTree]: https://github.com/robotology/idyntree
|
||||||
[bx-python]: https://github.com/bxlab/bx-python
|
[bx-python]: https://github.com/bxlab/bx-python
|
||||||
[boost-histogram]: https://github.com/scikit-hep/boost-histogram
|
[boost-histogram]: https://github.com/scikit-hep/boost-histogram
|
||||||
[Python-WebRTC]: https://github.com/MarshalX/python-webrtc
|
|
||||||
[power-grid-model]: https://github.com/PowerGridModel/power-grid-model
|
[power-grid-model]: https://github.com/PowerGridModel/power-grid-model
|
||||||
|
[Python-WebRTC]: https://github.com/MarshalX/python-webrtc
|
||||||
[pybase64]: https://github.com/mayeut/pybase64
|
[pybase64]: https://github.com/mayeut/pybase64
|
||||||
[fathon]: https://github.com/stfbnc/fathon
|
|
||||||
[Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build
|
[Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build
|
||||||
|
[fathon]: https://github.com/stfbnc/fathon
|
||||||
[Arbor]: https://github.com/arbor-sim/arbor
|
[Arbor]: https://github.com/arbor-sim/arbor
|
||||||
[pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example
|
[pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example
|
||||||
[polaroid]: https://github.com/daggy1234/polaroid
|
[polaroid]: https://github.com/daggy1234/polaroid
|
||||||
@@ -217,10 +219,10 @@ title: Working examples
|
|||||||
[numpythia]: https://github.com/scikit-hep/numpythia
|
[numpythia]: https://github.com/scikit-hep/numpythia
|
||||||
[pyjet]: https://github.com/scikit-hep/pyjet
|
[pyjet]: https://github.com/scikit-hep/pyjet
|
||||||
[ril]: https://github.com/Cryptex-github/ril-py
|
[ril]: https://github.com/Cryptex-github/ril-py
|
||||||
[SiPM]: https://github.com/EdoPro98/SimSiPM
|
|
||||||
[GSD]: https://github.com/glotzerlab/gsd
|
[GSD]: https://github.com/glotzerlab/gsd
|
||||||
[CorrectionLib]: https://github.com/cms-nanoAOD/correctionlib
|
[SiPM]: https://github.com/EdoPro98/SimSiPM
|
||||||
[aalink]: https://github.com/artfwo/aalink
|
[aalink]: https://github.com/artfwo/aalink
|
||||||
|
[CorrectionLib]: https://github.com/cms-nanoAOD/correctionlib
|
||||||
[xmlstarlet]: https://github.com/dimitern/xmlstarlet
|
[xmlstarlet]: https://github.com/dimitern/xmlstarlet
|
||||||
[pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext
|
[pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext
|
||||||
[werpy]: https://github.com/analyticsinmotion/werpy
|
[werpy]: https://github.com/analyticsinmotion/werpy
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ stack: python 3.7
|
|||||||
init:
|
init:
|
||||||
- cmd: set PATH=C:\Python37;C:\Python37\Scripts;%PATH%
|
- cmd: set PATH=C:\Python37;C:\Python37\Scripts;%PATH%
|
||||||
|
|
||||||
install: python -m pip install cibuildwheel==2.19.1
|
install: python -m pip install cibuildwheel==2.19.2
|
||||||
|
|
||||||
build_script: python -m cibuildwheel --output-dir wheelhouse
|
build_script: python -m cibuildwheel --output-dir wheelhouse
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ jobs:
|
|||||||
- bash: |
|
- bash: |
|
||||||
set -o errexit
|
set -o errexit
|
||||||
python3 -m pip install --upgrade pip
|
python3 -m pip install --upgrade pip
|
||||||
pip3 install cibuildwheel==2.19.1
|
pip3 install cibuildwheel==2.19.2
|
||||||
displayName: Install dependencies
|
displayName: Install dependencies
|
||||||
- bash: cibuildwheel --output-dir wheelhouse .
|
- bash: cibuildwheel --output-dir wheelhouse .
|
||||||
displayName: Build wheels
|
displayName: Build wheels
|
||||||
@@ -14,13 +14,13 @@ jobs:
|
|||||||
inputs: {pathtoPublish: 'wheelhouse'}
|
inputs: {pathtoPublish: 'wheelhouse'}
|
||||||
|
|
||||||
- job: macos
|
- job: macos
|
||||||
pool: {vmImage: 'macOS-11'}
|
pool: {vmImage: 'macOS-12'}
|
||||||
steps:
|
steps:
|
||||||
- task: UsePythonVersion@0
|
- task: UsePythonVersion@0
|
||||||
- bash: |
|
- bash: |
|
||||||
set -o errexit
|
set -o errexit
|
||||||
python3 -m pip install --upgrade pip
|
python3 -m pip install --upgrade pip
|
||||||
python3 -m pip install cibuildwheel==2.19.1
|
python3 -m pip install cibuildwheel==2.19.2
|
||||||
displayName: Install dependencies
|
displayName: Install dependencies
|
||||||
- bash: cibuildwheel --output-dir wheelhouse .
|
- bash: cibuildwheel --output-dir wheelhouse .
|
||||||
displayName: Build wheels
|
displayName: Build wheels
|
||||||
@@ -34,7 +34,7 @@ jobs:
|
|||||||
- bash: |
|
- bash: |
|
||||||
set -o errexit
|
set -o errexit
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
pip install cibuildwheel==2.19.1
|
pip install cibuildwheel==2.19.2
|
||||||
displayName: Install dependencies
|
displayName: Install dependencies
|
||||||
- bash: cibuildwheel --output-dir wheelhouse .
|
- bash: cibuildwheel --output-dir wheelhouse .
|
||||||
displayName: Build wheels
|
displayName: Build wheels
|
||||||
|
|||||||
@@ -4,14 +4,14 @@ jobs:
|
|||||||
linux-wheels:
|
linux-wheels:
|
||||||
working_directory: ~/linux-wheels
|
working_directory: ~/linux-wheels
|
||||||
docker:
|
docker:
|
||||||
- image: circleci/python:3.9
|
- image: cimg/python:3.12
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- setup_remote_docker
|
- setup_remote_docker
|
||||||
- run:
|
- run:
|
||||||
name: Build the Linux wheels.
|
name: Build the Linux wheels.
|
||||||
command: |
|
command: |
|
||||||
pip3 install --user cibuildwheel==2.19.1
|
python3 -m pip install --user cibuildwheel==2.19.2
|
||||||
cibuildwheel --output-dir wheelhouse
|
cibuildwheel --output-dir wheelhouse
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: wheelhouse/
|
path: wheelhouse/
|
||||||
@@ -28,7 +28,7 @@ jobs:
|
|||||||
- run:
|
- run:
|
||||||
name: Build the Linux aarch64 wheels.
|
name: Build the Linux aarch64 wheels.
|
||||||
command: |
|
command: |
|
||||||
python3 -m pip install --user cibuildwheel==2.19.1
|
python3 -m pip install --user cibuildwheel==2.19.2
|
||||||
python3 -m cibuildwheel --output-dir wheelhouse
|
python3 -m cibuildwheel --output-dir wheelhouse
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: wheelhouse/
|
path: wheelhouse/
|
||||||
@@ -36,13 +36,15 @@ jobs:
|
|||||||
osx-wheels:
|
osx-wheels:
|
||||||
working_directory: ~/osx-wheels
|
working_directory: ~/osx-wheels
|
||||||
macos:
|
macos:
|
||||||
xcode: 12.5.1
|
xcode: 15.4.0
|
||||||
|
resource_class: macos.m1.medium.gen1
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- run:
|
- run:
|
||||||
name: Build the OS X wheels.
|
name: Build the OS X wheels.
|
||||||
command: |
|
command: |
|
||||||
pip3 install cibuildwheel==2.19.1
|
sudo softwareupdate --install-rosetta --agree-to-license # for python<=3.8 or x86_64/universal2 tests
|
||||||
|
pip3 install cibuildwheel==2.19.2
|
||||||
cibuildwheel --output-dir wheelhouse
|
cibuildwheel --output-dir wheelhouse
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: wheelhouse/
|
path: wheelhouse/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
build_and_store_wheels: &BUILD_AND_STORE_WHEELS
|
build_and_store_wheels: &BUILD_AND_STORE_WHEELS
|
||||||
install_cibuildwheel_script:
|
install_cibuildwheel_script:
|
||||||
- python -m pip install cibuildwheel==2.19.1
|
- python -m pip install cibuildwheel==2.19.2
|
||||||
run_cibuildwheel_script:
|
run_cibuildwheel_script:
|
||||||
- cibuildwheel
|
- cibuildwheel
|
||||||
wheels_artifacts:
|
wheels_artifacts:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
build_and_store_wheels: &BUILD_AND_STORE_WHEELS
|
build_and_store_wheels: &BUILD_AND_STORE_WHEELS
|
||||||
install_cibuildwheel_script:
|
install_cibuildwheel_script:
|
||||||
- python -m pip install cibuildwheel==2.19.1
|
- python -m pip install cibuildwheel==2.19.2
|
||||||
run_cibuildwheel_script:
|
run_cibuildwheel_script:
|
||||||
- cibuildwheel
|
- cibuildwheel
|
||||||
wheels_artifacts:
|
wheels_artifacts:
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
uses: pypa/cibuildwheel@v2.19.1
|
uses: pypa/cibuildwheel@v2.19.2
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
uses: pypa/cibuildwheel@v2.19.1
|
uses: pypa/cibuildwheel@v2.19.2
|
||||||
# env:
|
# env:
|
||||||
# CIBW_SOME_OPTION: value
|
# CIBW_SOME_OPTION: value
|
||||||
# ...
|
# ...
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ jobs:
|
|||||||
platforms: all
|
platforms: all
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
uses: pypa/cibuildwheel@v2.19.1
|
uses: pypa/cibuildwheel@v2.19.2
|
||||||
env:
|
env:
|
||||||
# configure cibuildwheel to build native archs ('auto'), and some
|
# configure cibuildwheel to build native archs ('auto'), and some
|
||||||
# emulated ones
|
# emulated ones
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
linux:
|
linux:
|
||||||
image: python:3.8
|
image: python:3.12
|
||||||
# make a docker daemon available for cibuildwheel to use
|
# make a docker daemon available for cibuildwheel to use
|
||||||
services:
|
services:
|
||||||
- name: docker:dind
|
- name: docker:dind
|
||||||
@@ -12,7 +12,7 @@ linux:
|
|||||||
DOCKER_TLS_CERTDIR: ""
|
DOCKER_TLS_CERTDIR: ""
|
||||||
script:
|
script:
|
||||||
- curl -sSL https://get.docker.com/ | sh
|
- curl -sSL https://get.docker.com/ | sh
|
||||||
- python -m pip install cibuildwheel==2.19.1
|
- python -m pip install cibuildwheel==2.19.2
|
||||||
- cibuildwheel --output-dir wheelhouse
|
- cibuildwheel --output-dir wheelhouse
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
@@ -21,13 +21,25 @@ linux:
|
|||||||
windows:
|
windows:
|
||||||
image: mcr.microsoft.com/windows/servercore:1809
|
image: mcr.microsoft.com/windows/servercore:1809
|
||||||
before_script:
|
before_script:
|
||||||
- choco install python -y --version 3.8.6
|
- choco install python -y --version 3.12.4
|
||||||
- choco install git.install -y
|
- choco install git.install -y
|
||||||
- py -m pip install cibuildwheel==2.19.1
|
- py -m pip install cibuildwheel==2.19.2
|
||||||
script:
|
script:
|
||||||
- py -m cibuildwheel --output-dir wheelhouse --platform windows
|
- py -m cibuildwheel --output-dir wheelhouse --platform windows
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- wheelhouse/
|
- wheelhouse/
|
||||||
tags:
|
tags:
|
||||||
- windows
|
- saas-windows-medium-amd64
|
||||||
|
|
||||||
|
macos:
|
||||||
|
image: macos-14-xcode-15
|
||||||
|
before_script:
|
||||||
|
- python3 -m pip install cibuildwheel==2.19.2
|
||||||
|
script:
|
||||||
|
- python3 -m cibuildwheel --output-dir wheelhouse
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- wheelhouse/
|
||||||
|
tags:
|
||||||
|
- saas-macos-medium-m1
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ linux:
|
|||||||
- curl -sSL https://get.docker.com/ | sh
|
- curl -sSL https://get.docker.com/ | sh
|
||||||
# Warning: This is extremely slow, be careful with how many wheels you build
|
# Warning: This is extremely slow, be careful with how many wheels you build
|
||||||
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||||
- python -m pip install cibuildwheel==2.19.1
|
- python -m pip install cibuildwheel==2.19.2
|
||||||
# Assuming your CI runner's default architecture is x86_64...
|
# Assuming your CI runner's default architecture is x86_64...
|
||||||
- cibuildwheel --output-dir wheelhouse --platform linux --archs aarch64
|
- cibuildwheel --output-dir wheelhouse --platform linux --archs aarch64
|
||||||
artifacts:
|
artifacts:
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ jobs:
|
|||||||
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- python3 -m pip install cibuildwheel==2.19.1
|
- python3 -m pip install cibuildwheel==2.19.2
|
||||||
|
|
||||||
script:
|
script:
|
||||||
# build the wheels, put them into './dist'
|
# build the wheels, put them into './dist'
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ jobs:
|
|||||||
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- python3 -m pip install cibuildwheel==2.19.1
|
- python3 -m pip install cibuildwheel==2.19.2
|
||||||
|
|
||||||
script:
|
script:
|
||||||
# build the wheels, put them into './wheelhouse'
|
# build the wheels, put them into './wheelhouse'
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ jobs:
|
|||||||
- stage: deploy
|
- stage: deploy
|
||||||
name: Build and deploy Linux wheels
|
name: Build and deploy Linux wheels
|
||||||
services: docker
|
services: docker
|
||||||
install: python3 -m pip install cibuildwheel==2.19.1 twine
|
install: python3 -m pip install cibuildwheel==2.19.2 twine
|
||||||
script: python3 -m cibuildwheel --output-dir wheelhouse
|
script: python3 -m cibuildwheel --output-dir wheelhouse
|
||||||
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||||
# Deploy on windows
|
# Deploy on windows
|
||||||
@@ -62,7 +62,7 @@ jobs:
|
|||||||
name: Build and deploy Windows wheels
|
name: Build and deploy Windows wheels
|
||||||
os: windows
|
os: windows
|
||||||
language: shell
|
language: shell
|
||||||
install: python3 -m pip install cibuildwheel==2.19.1 twine
|
install: python3 -m pip install cibuildwheel==2.19.2 twine
|
||||||
script: python3 -m cibuildwheel --output-dir wheelhouse
|
script: python3 -m cibuildwheel --output-dir wheelhouse
|
||||||
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "cibuildwheel"
|
name = "cibuildwheel"
|
||||||
version = "2.19.1"
|
version = "2.19.2"
|
||||||
description = "Build Python wheels on CI with minimal configuration."
|
description = "Build Python wheels on CI with minimal configuration."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = "BSD-2-Clause"
|
license = "BSD-2-Clause"
|
||||||
|
|||||||
+9
-9
@@ -28,22 +28,22 @@ def pytest_addoption(parser) -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(
|
@pytest.fixture(params=["pip", "build"])
|
||||||
params=[{"CIBW_BUILD_FRONTEND": "pip"}, {"CIBW_BUILD_FRONTEND": "build"}], ids=["pip", "build"]
|
def build_frontend_env_nouv(request: pytest.FixtureRequest) -> dict[str, str]:
|
||||||
)
|
frontend = request.param
|
||||||
def build_frontend_env_nouv(request) -> dict[str, str]:
|
if platform == "pyodide" and frontend == "pip":
|
||||||
if platform == "pyodide":
|
|
||||||
pytest.skip("Can't use pip as build frontend for pyodide platform")
|
pytest.skip("Can't use pip as build frontend for pyodide platform")
|
||||||
|
|
||||||
return request.param # type: ignore[no-any-return]
|
return {"CIBW_BUILD_FRONTEND": frontend}
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def build_frontend_env(build_frontend_env_nouv: dict[str, str]) -> dict[str, str]:
|
def build_frontend_env(build_frontend_env_nouv: dict[str, str]) -> dict[str, str]:
|
||||||
if build_frontend_env_nouv["CIBW_BUILD_FRONTEND"] == "build" and find_uv() is not None:
|
frontend = build_frontend_env_nouv["CIBW_BUILD_FRONTEND"]
|
||||||
return {"CIBW_BUILD_FRONTEND": "build[uv]"}
|
if frontend != "build" or platform == "pyodide" or find_uv() is None:
|
||||||
|
return build_frontend_env_nouv
|
||||||
|
|
||||||
return build_frontend_env_nouv
|
return {"CIBW_BUILD_FRONTEND": "build[uv]"}
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ class TestBeforeTest(TestCase):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def test(tmp_path):
|
def test(tmp_path, build_frontend_env):
|
||||||
project_dir = tmp_path / "project"
|
project_dir = tmp_path / "project"
|
||||||
before_test_project.generate(project_dir)
|
before_test_project.generate(project_dir)
|
||||||
test_project_dir = project_dir / "dependency"
|
test_project_dir = project_dir / "dependency"
|
||||||
@@ -49,7 +49,7 @@ def test(tmp_path):
|
|||||||
before_test_steps.extend(
|
before_test_steps.extend(
|
||||||
["pyodide build {project}/dependency", "pip install --find-links dist/ spam"]
|
["pyodide build {project}/dependency", "pip install --find-links dist/ spam"]
|
||||||
)
|
)
|
||||||
else:
|
elif build_frontend_env["CIBW_BUILD_FRONTEND"] in {"pip", "build"}:
|
||||||
before_test_steps.append("python -m pip install {project}/dependency")
|
before_test_steps.append("python -m pip install {project}/dependency")
|
||||||
|
|
||||||
before_test = " && ".join(before_test_steps)
|
before_test = " && ".join(before_test_steps)
|
||||||
@@ -66,6 +66,7 @@ def test(tmp_path):
|
|||||||
# mac/linux.
|
# mac/linux.
|
||||||
"CIBW_TEST_COMMAND": f"false || {utils.invoke_pytest()} {{project}}/test",
|
"CIBW_TEST_COMMAND": f"false || {utils.invoke_pytest()} {{project}}/test",
|
||||||
"CIBW_TEST_COMMAND_WINDOWS": "pytest {project}/test",
|
"CIBW_TEST_COMMAND_WINDOWS": "pytest {project}/test",
|
||||||
|
**build_frontend_env,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -52,12 +52,14 @@ def get_versions_from_constraint_file(constraint_file):
|
|||||||
return dict(re.findall(VERSION_REGEX, constraint_file_text))
|
return dict(re.findall(VERSION_REGEX, constraint_file_text))
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("python_version", ["3.6", "3.8", "3.10"])
|
@pytest.mark.parametrize("python_version", ["3.6", "3.8", "3.12"])
|
||||||
def test_pinned_versions(tmp_path, python_version, build_frontend_env_nouv):
|
def test_pinned_versions(tmp_path, python_version, build_frontend_env_nouv):
|
||||||
if utils.platform == "linux":
|
if utils.platform == "linux":
|
||||||
pytest.skip("linux doesn't pin individual tool versions, it pins manylinux images instead")
|
pytest.skip("linux doesn't pin individual tool versions, it pins manylinux images instead")
|
||||||
if python_version == "3.6" and utils.platform == "macos" and platform.machine() == "arm64":
|
if python_version == "3.6" and utils.platform == "macos" and platform.machine() == "arm64":
|
||||||
pytest.skip("macOS arm64 does not support Python 3.6")
|
pytest.skip("macOS arm64 does not support Python 3.6")
|
||||||
|
if python_version != "3.12" and utils.platform == "pyodide":
|
||||||
|
pytest.skip(f"pyodide does not support Python {python_version}")
|
||||||
|
|
||||||
project_dir = tmp_path / "project"
|
project_dir = tmp_path / "project"
|
||||||
project_with_expected_version_checks.generate(project_dir)
|
project_with_expected_version_checks.generate(project_dir)
|
||||||
|
|||||||
+3
-4
@@ -8,8 +8,8 @@ basic_project = test_projects.new_c_project(
|
|||||||
setup_py_add=textwrap.dedent(
|
setup_py_add=textwrap.dedent(
|
||||||
"""
|
"""
|
||||||
# Will fail if PEP 518 does work
|
# Will fail if PEP 518 does work
|
||||||
import requests
|
import jmespath
|
||||||
assert requests.__version__ == "2.27.0", "Requests found but wrong version ({0})".format(requests.__version__)
|
assert jmespath.__version__ == "0.10.0", "'jmespath' found but wrong version ({0})".format(jmespath.__version__)
|
||||||
|
|
||||||
# Just making sure environment is still set
|
# Just making sure environment is still set
|
||||||
import os
|
import os
|
||||||
@@ -24,8 +24,7 @@ basic_project.files["pyproject.toml"] = """
|
|||||||
requires = [
|
requires = [
|
||||||
"setuptools >= 42",
|
"setuptools >= 42",
|
||||||
"setuptools_scm[toml]>=4.1.2",
|
"setuptools_scm[toml]>=4.1.2",
|
||||||
"wheel",
|
"jmespath==0.10.0"
|
||||||
"requests==2.27.0"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
build-backend = "setuptools.build_meta"
|
build-backend = "setuptools.build_meta"
|
||||||
|
|||||||
@@ -135,8 +135,8 @@ def test_failing_test(tmp_path):
|
|||||||
project_dir,
|
project_dir,
|
||||||
output_dir=output_dir,
|
output_dir=output_dir,
|
||||||
add_env={
|
add_env={
|
||||||
"CIBW_TEST_REQUIRES": "nose",
|
"CIBW_TEST_REQUIRES": "pytest",
|
||||||
"CIBW_TEST_COMMAND": "nosetests {project}/test",
|
"CIBW_TEST_COMMAND": f"{utils.invoke_pytest()} {{project}}/test",
|
||||||
# manylinux1 has a version of bash that's been shown to have
|
# manylinux1 has a version of bash that's been shown to have
|
||||||
# problems with this, so let's check that.
|
# problems with this, so let's check that.
|
||||||
"CIBW_MANYLINUX_I686_IMAGE": "manylinux1",
|
"CIBW_MANYLINUX_I686_IMAGE": "manylinux1",
|
||||||
|
|||||||
Reference in New Issue
Block a user