Compare commits

...
9 Commits
Author SHA1 Message Date
Henry Schreiner 932529cab1 Bump version: v2.19.1 2024-06-13 02:38:27 -04:00
Henry Schreiner 70fb1c4a1a fix: specify full path to non-venv Python (#1881)
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2024-06-13 08:18:09 +02:00
cibuildwheel-bot[bot]andcibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com> 405a475ac7 [Bot] Update dependencies (#1879)
Update dependencies

Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com>
2024-06-12 23:16:49 -04:00
Nathan Goldbaum 78da7bafcc docs: update README.md (#1874) 2024-06-12 11:32:27 -04:00
Henry Schreiner 8d86d3122b tests: don't print xfails (#1865)
tests: skip warnings on xfails for now

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2024-06-12 10:46:24 -04:00
Eric Larson 89a5cfe272 DOC: Fix bug with link (#1870) 2024-06-11 21:24:44 +02:00
Henry Schreiner 8d5d84e0fc fix: accept current Python version if acceptable for Pyodide (#1868)
* fix: accept current Python version if acceptable for Pyodide

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2024-06-11 08:48:42 +02:00
pre-commit-ci[bot]andpre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> 4ada77dea4 [pre-commit.ci] pre-commit autoupdate (#1869)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.4.7 → v0.4.8](https://github.com/astral-sh/ruff-pre-commit/compare/v0.4.7...v0.4.8)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-06-11 00:32:52 -04:00
Henry Schreiner 829441f4a0 fix: warning in generate schema script (#1866)
* fix: warning in generate schema script

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* docs: add minor update to update process

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* Update docs/contributing.md

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2024-06-11 00:32:38 -04:00
37 changed files with 116 additions and 90 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ 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.7 rev: v0.4.8
hooks: hooks:
- id: ruff - id: ruff
args: ["--fix", "--show-fixes"] args: ["--fix", "--show-fixes"]
+13 -10
View File
@@ -39,7 +39,7 @@ What does it do?
<sup>¹ PyPy is only supported for manylinux wheels.</sup><br> <sup>¹ PyPy is only supported for manylinux wheels.</sup><br>
<sup>² Windows arm64 support is experimental.</sup><br> <sup>² Windows arm64 support is experimental.</sup><br>
<sup>³ CPython 3.13 is available using the [`CIBW_PRERELEASE_PYTHONS`](https://cibuildwheel.pypa.io/en/stable/options/#prerelease-pythons) option. Free-threaded mode requires opt-in, not yet available on macOS.</sup><br> <sup>³ CPython 3.13 is available using the [`CIBW_PRERELEASE_PYTHONS`](https://cibuildwheel.pypa.io/en/stable/options/#prerelease-pythons) option. Free-threaded mode requires opt-in.</sup><br>
<sup>⁴ Experimental, not yet supported on PyPI, but can be used directly in web deployment. Use `--platform pyodide` to build.</sup><br> <sup>⁴ Experimental, not yet supported on PyPI, but can be used directly in web deployment. Use `--platform pyodide` to build.</sup><br>
- Builds manylinux, musllinux, macOS 10.9+, and Windows wheels for CPython and PyPy - Builds manylinux, musllinux, macOS 10.9+, and Windows wheels for CPython and PyPy
@@ -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.0 run: python -m pip install cibuildwheel==2.19.1
- name: Build wheels - name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse run: python -m cibuildwheel --output-dir wheelhouse
@@ -211,8 +211,19 @@ 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.1
- 🐛 Don't require setup-python on GHA for Pyodide (#1868)
- 🐛 Specify full python path for uv (fixes issue in 0.2.10 & 0.2.11) (#1881)
- 🛠 Update for pip 24.1b2 on CPython 3.13. (#1879)
- 🛠 Fix a warning in our schema generation script. (#1866)
- 🛠 Cleaner output on pytest 8-8.2. (#1865)
### v2.19.0 ### v2.19.0
See the [release post](https://iscinumpy.dev/post/cibuildwheel-2-19-0/) for more info on new features!
- 🌟 Add Pyodide platform. Set with `--platform pyodide` or `CIBW_PLATFORM: pyodide` on Linux with a host Python 3.12 to build WebAssembly wheels. Not accepted on PyPI currently, but usable directly in a website using Pyodide, for live docs, etc. (#1456, #1859) - 🌟 Add Pyodide platform. Set with `--platform pyodide` or `CIBW_PLATFORM: pyodide` on Linux with a host Python 3.12 to build WebAssembly wheels. Not accepted on PyPI currently, but usable directly in a website using Pyodide, for live docs, etc. (#1456, #1859)
- 🌟 Add `build[uv]` backend, which will take a pre-existing uv install (or install `cibuildwheel[uv]`) and use `uv` for all environment setup and installs on Python 3.8+. This is significantly faster in most cases. (#1856) - 🌟 Add `build[uv]` backend, which will take a pre-existing uv install (or install `cibuildwheel[uv]`) and use `uv` for all environment setup and installs on Python 3.8+. This is significantly faster in most cases. (#1856)
- ✨ Add free-threaded macOS builds and update CPython to 3.13.0b2. (#1854) - ✨ Add free-threaded macOS builds and update CPython to 3.13.0b2. (#1854)
@@ -273,14 +284,6 @@ _11 March 2024_
- 📚 Moved the docs onto the official PyPA domain - they're now available at https://cibuildwheel.pypa.io . (#1775) - 📚 Moved the docs onto the official PyPA domain - they're now available at https://cibuildwheel.pypa.io . (#1775)
- 📚 Docs and examples improvements (#1762, #1734) - 📚 Docs and examples improvements (#1762, #1734)
### v2.16.5
_30 January 2024_
- 🐛 Fix an incompatibility with the GitHub Action and new GitHub Runner images for Windows that bundle Powershell 7.3+ (#1741)
- 🛠 Preliminary support for new `macos-14` arm64 runners (#1743)
<!-- END bin/update_readme_changelog.py --> <!-- END bin/update_readme_changelog.py -->
--- ---
+2 -2
View File
@@ -24,11 +24,11 @@ branding:
runs: runs:
using: composite using: composite
steps: steps:
# Set up a non-EOL, cibuildwheel & pipx supported Python version # Set up the version of Python that supports pyodide
- uses: actions/setup-python@v5 - uses: actions/setup-python@v5
id: python id: python
with: with:
python-version: "3.8 - 3.12" python-version: "3.12"
update-environment: false update-environment: false
- id: cibw - id: cibw
+1 -1
View File
@@ -56,7 +56,7 @@ properties:
- type: string - type: string
pattern: '^build; ?args:' pattern: '^build; ?args:'
- type: string - type: string
pattern: '^build\[uv\]; ?args:' pattern: '^build\\[uv\\]; ?args:'
- type: object - type: object
additionalProperties: false additionalProperties: false
required: [name] required: [name]
+1 -1
View File
@@ -1,3 +1,3 @@
from __future__ import annotations from __future__ import annotations
__version__ = "2.19.0" __version__ = "2.19.1"
+4 -4
View File
@@ -201,7 +201,7 @@ def setup_python(
dependency_constraint_flags: Sequence[PathOrStr], dependency_constraint_flags: Sequence[PathOrStr],
environment: ParsedEnvironment, environment: ParsedEnvironment,
build_frontend: BuildFrontendName, build_frontend: BuildFrontendName,
) -> dict[str, str]: ) -> tuple[Path, dict[str, str]]:
if build_frontend == "build[uv]" and Version(python_configuration.version) < Version("3.8"): if build_frontend == "build[uv]" and Version(python_configuration.version) < Version("3.8"):
build_frontend = "build" build_frontend = "build"
@@ -388,7 +388,7 @@ def setup_python(
else: else:
assert_never(build_frontend) assert_never(build_frontend)
return env return base_python, env
def build(options: Options, tmp_path: Path) -> None: def build(options: Options, tmp_path: Path) -> None:
@@ -442,7 +442,7 @@ def build(options: Options, tmp_path: Path) -> None:
build_options.dependency_constraints.get_for_python_version(config.version), build_options.dependency_constraints.get_for_python_version(config.version),
] ]
env = setup_python( base_python, env = setup_python(
identifier_tmp_dir / "build", identifier_tmp_dir / "build",
config, config,
dependency_constraint_flags, dependency_constraint_flags,
@@ -658,7 +658,7 @@ def build(options: Options, tmp_path: Path) -> None:
if use_uv: if use_uv:
pip_install = functools.partial(call, *pip, "install", *uv_arch_args) pip_install = functools.partial(call, *pip, "install", *uv_arch_args)
call("uv", "venv", venv_dir, "--python=python", env=env) call("uv", "venv", venv_dir, f"--python={base_python}", env=env)
else: else:
pip_install = functools.partial(call_with_arch, *pip, "install") pip_install = functools.partial(call_with_arch, *pip, "install")
# Use pip version from the initial env to ensure determinism # Use pip version from the initial env to ensure determinism
+6 -1
View File
@@ -2,6 +2,7 @@ from __future__ import annotations
import os import os
import shutil import shutil
import sys
from collections.abc import Sequence, Set from collections.abc import Sequence, Set
from dataclasses import dataclass from dataclasses import dataclass
from pathlib import Path from pathlib import Path
@@ -92,7 +93,11 @@ def install_xbuildenv(env: dict[str, str], pyodide_version: str) -> str:
def get_base_python(identifier: str) -> Path: def get_base_python(identifier: str) -> Path:
implementation_id = identifier.split("-")[0] implementation_id = identifier.split("-")[0]
majorminor = implementation_id[len("cp") :] majorminor = implementation_id[len("cp") :]
major_minor = f"{majorminor[0]}.{majorminor[1:]}" version_info = (int(majorminor[0]), int(majorminor[1:]))
if version_info == sys.version_info[:2]:
return Path(sys.executable)
major_minor = ".".join(str(v) for v in version_info)
python_name = f"python{major_minor}" python_name = f"python{major_minor}"
which_python = shutil.which(python_name) which_python = shutil.which(python_name)
if which_python is None: if which_python is None:
+3 -3
View File
@@ -120,9 +120,9 @@ python_configurations = [
{ identifier = "cp311-macosx_x86_64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.9/python-3.11.9-macos11.pkg" }, { identifier = "cp311-macosx_x86_64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.9/python-3.11.9-macos11.pkg" },
{ identifier = "cp311-macosx_arm64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.9/python-3.11.9-macos11.pkg" }, { identifier = "cp311-macosx_arm64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.9/python-3.11.9-macos11.pkg" },
{ identifier = "cp311-macosx_universal2", version = "3.11", url = "https://www.python.org/ftp/python/3.11.9/python-3.11.9-macos11.pkg" }, { identifier = "cp311-macosx_universal2", version = "3.11", url = "https://www.python.org/ftp/python/3.11.9/python-3.11.9-macos11.pkg" },
{ identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.3/python-3.12.3-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.3/python-3.12.3-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.3/python-3.12.3-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.0b2-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.0b2-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.0b2-macos11.pkg" },
@@ -21,7 +21,7 @@ click==8.1.7
# via typer # via typer
cloudpickle==3.0.0 cloudpickle==3.0.0
# via loky # via loky
cmake==3.29.3 cmake==3.29.5
# via pyodide-build # via pyodide-build
distlib==0.3.8 distlib==0.3.8
# via virtualenv # via virtualenv
@@ -46,7 +46,7 @@ markdown-it-py==3.0.0
# via rich # via rich
mdurl==0.1.2 mdurl==0.1.2
# via markdown-it-py # via markdown-it-py
packaging==24.0 packaging==24.1
# via # via
# auditwheel-emscripten # auditwheel-emscripten
# build # build
@@ -56,7 +56,7 @@ pip==24.0
# 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.3 pydantic==2.7.4
# via # via
# pyodide-build # pyodide-build
# pyodide-lock # pyodide-lock
@@ -14,7 +14,7 @@ importlib-metadata==7.1.0
# via build # via build
macholib==1.16.3 macholib==1.16.3
# via delocate # via delocate
packaging==24.0 packaging==24.1
# via # via
# build # build
# delocate # delocate
@@ -12,7 +12,7 @@ filelock==3.14.0
# via virtualenv # via virtualenv
macholib==1.16.3 macholib==1.16.3
# via delocate # via delocate
packaging==24.0 packaging==24.1
# via # via
# build # build
# delocate # delocate
@@ -12,7 +12,7 @@ filelock==3.14.0
# via virtualenv # via virtualenv
macholib==1.16.3 macholib==1.16.3
# via delocate # via delocate
packaging==24.0 packaging==24.1
# via # via
# build # build
# delocate # delocate
@@ -12,11 +12,11 @@ filelock==3.14.0
# via virtualenv # via virtualenv
macholib==1.16.3 macholib==1.16.3
# via delocate # via delocate
packaging==24.0 packaging==24.1
# via # via
# build # build
# delocate # delocate
pip==24.1b1 pip==24.1b2
# via -r cibuildwheel/resources/constraints.in # via -r cibuildwheel/resources/constraints.in
platformdirs==4.2.2 platformdirs==4.2.2
# via virtualenv # via virtualenv
@@ -14,7 +14,7 @@ importlib-metadata==7.1.0
# via build # via build
macholib==1.16.3 macholib==1.16.3
# via delocate # via delocate
packaging==24.0 packaging==24.1
# via # via
# build # build
# delocate # delocate
@@ -14,7 +14,7 @@ importlib-metadata==7.1.0
# via build # via build
macholib==1.16.3 macholib==1.16.3
# via delocate # via delocate
packaging==24.0 packaging==24.1
# via # via
# build # build
# delocate # delocate
+1 -1
View File
@@ -12,7 +12,7 @@ filelock==3.14.0
# via virtualenv # via virtualenv
macholib==1.16.3 macholib==1.16.3
# via delocate # via delocate
packaging==24.0 packaging==24.1
# via # via
# build # build
# delocate # delocate
+24 -24
View File
@@ -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-06-99f15a7 manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024.06.12-1
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-06-99f15a7 manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024.06.12-1
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024-06-06-99f15a7 musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024.06.12-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2024-06-06-99f15a7 musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2024.06.12-1
[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-06-99f15a7 manylinux2014 = quay.io/pypa/manylinux2014_i686:2024.06.12-1
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-06-99f15a7 musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2024.06.12-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2024-06-06-99f15a7 musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2024.06.12-1
[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-06-99f15a7 manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024.06.12-1
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-06-99f15a7 manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024.06.12-1
[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-06-99f15a7 manylinux2014 = quay.io/pypa/manylinux2014_i686:2024.06.12-1
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-03-e195670 manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024.06.12-1
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-03-e195670 manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024.06.12-1
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024-06-03-e195670 musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024.06.12-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2024-06-03-e195670 musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2024.06.12-1
[ppc64le] [ppc64le]
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2024-06-03-e195670 manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2024.06.12-1
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-03-e195670 manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2024.06.12-1
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024-06-03-e195670 musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024.06.12-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2024-06-03-e195670 musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2024.06.12-1
[s390x] [s390x]
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2024-06-03-e195670 manylinux2014 = quay.io/pypa/manylinux2014_s390x:2024.06.12-1
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-03-e195670 manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2024.06.12-1
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024-06-03-e195670 musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024.06.12-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2024-06-03-e195670 musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2024.06.12-1
[pypy_aarch64] [pypy_aarch64]
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024-06-03-e195670 manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024.06.12-1
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-03-e195670 manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024.06.12-1
+4 -4
View File
@@ -223,7 +223,7 @@ def setup_python(
dependency_constraint_flags: Sequence[PathOrStr], dependency_constraint_flags: Sequence[PathOrStr],
environment: ParsedEnvironment, environment: ParsedEnvironment,
build_frontend: BuildFrontendName, build_frontend: BuildFrontendName,
) -> dict[str, str]: ) -> tuple[Path, dict[str, str]]:
tmp.mkdir() tmp.mkdir()
implementation_id = python_configuration.identifier.split("-")[0] implementation_id = python_configuration.identifier.split("-")[0]
python_libs_base = None python_libs_base = None
@@ -330,7 +330,7 @@ def setup_python(
setup_setuptools_cross_compile(tmp, python_configuration, python_libs_base, env) setup_setuptools_cross_compile(tmp, python_configuration, python_libs_base, env)
setup_rust_cross_compile(tmp, python_configuration, python_libs_base, env) setup_rust_cross_compile(tmp, python_configuration, python_libs_base, env)
return env return base_python, env
def build(options: Options, tmp_path: Path) -> None: def build(options: Options, tmp_path: Path) -> None:
@@ -376,7 +376,7 @@ def build(options: Options, tmp_path: Path) -> None:
] ]
# install Python # install Python
env = setup_python( base_python, env = setup_python(
identifier_tmp_dir / "build", identifier_tmp_dir / "build",
config, config,
dependency_constraint_flags, dependency_constraint_flags,
@@ -502,7 +502,7 @@ def build(options: Options, tmp_path: Path) -> None:
venv_dir = identifier_tmp_dir / "venv-test" venv_dir = identifier_tmp_dir / "venv-test"
if use_uv: if use_uv:
call("uv", "venv", venv_dir, "--python=python", env=env) call("uv", "venv", venv_dir, f"--python={base_python}", env=env)
else: else:
# Use pip version from the initial env to ensure determinism # Use pip version from the initial env to ensure determinism
venv_args = ["--no-periodic-update", f"--pip={pip_version}"] venv_args = ["--no-periodic-update", f"--pip={pip_version}"]
+11
View File
@@ -4,8 +4,19 @@ title: Changelog
# Changelog # Changelog
### v2.19.1
- 🐛 Don't require setup-python on GHA for Pyodide (#1868)
- 🐛 Specify full python path for uv (fixes issue in 0.2.10 & 0.2.11) (#1881)
- 🛠 Update for pip 24.1b2 on CPython 3.13. (#1879)
- 🛠 Fix a warning in our schema generation script. (#1866)
- 🛠 Cleaner output on pytest 8-8.2. (#1865)
### v2.19.0 ### v2.19.0
See the [release post](https://iscinumpy.dev/post/cibuildwheel-2-19-0/) for more info on new features!
- 🌟 Add Pyodide platform. Set with `--platform pyodide` or `CIBW_PLATFORM: pyodide` on Linux with a host Python 3.12 to build WebAssembly wheels. Not accepted on PyPI currently, but usable directly in a website using Pyodide, for live docs, etc. (#1456, #1859) - 🌟 Add Pyodide platform. Set with `--platform pyodide` or `CIBW_PLATFORM: pyodide` on Linux with a host Python 3.12 to build WebAssembly wheels. Not accepted on PyPI currently, but usable directly in a website using Pyodide, for live docs, etc. (#1456, #1859)
- 🌟 Add `build[uv]` backend, which will take a pre-existing uv install (or install `cibuildwheel[uv]`) and use `uv` for all environment setup and installs on Python 3.8+. This is significantly faster in most cases. (#1856) - 🌟 Add `build[uv]` backend, which will take a pre-existing uv install (or install `cibuildwheel[uv]`) and use `uv` for all environment setup and installs on Python 3.8+. This is significantly faster in most cases. (#1856)
- ✨ Add free-threaded macOS builds and update CPython to 3.13.0b2. (#1854) - ✨ Add free-threaded macOS builds and update CPython to 3.13.0b2. (#1854)
+3 -1
View File
@@ -177,7 +177,7 @@ Then, increment the project version number using:
bin/bump_version.py bin/bump_version.py
``` ```
You'll be prompted to enter the new version number. Update the changelog when prompted. The script will create a 'bump version' commit and version tag. (or `nox -s bump_version`) You'll be prompted to enter the new version number. Update the changelog when prompted. The script will create a 'bump version' commit and version tag.
Finally, cut the release and push to GitHub. Finally, cut the release and push to GitHub.
@@ -186,3 +186,5 @@ git push && git push --tags
``` ```
Then head to https://github.com/pypa/cibuildwheel/releases and create a GitHub release from the new tag, pasting in the changelog entry. Once the release is created inside GitHub, a CI job will create the assets and upload them to PyPI. Then head to https://github.com/pypa/cibuildwheel/releases and create a GitHub release from the new tag, pasting in the changelog entry. Once the release is created inside GitHub, a CI job will create the assets and upload them to PyPI.
If there were any schema updates, run `pipx run ./bin/generate_schema.py --schemastore > partial-cibuildwheel.json` and contribute the changes to SchemaStore.
+3 -3
View File
@@ -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.0 uses: pypa/cibuildwheel@v2.19.1
``` ```
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.0 cibuildwheel==2.19.1
``` ```
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.0 --output-dir wheelhouse pipx run cibuildwheel==2.19.1 --output-dir wheelhouse
pipx run twine upload wheelhouse/*.whl pipx run twine upload wheelhouse/*.whl
``` ```
+1 -1
View File
@@ -818,7 +818,7 @@ Platform-specific environment variables are also available:<br/>
In configuration mode, you can use a [TOML][] table instead of a raw string as shown above. In configuration mode, you can use a [TOML][] table instead of a raw string as shown above.
!!! note !!! note
cibuildwheel always defines the environment variable `CIBUILDWHEEL=1`. This can be useful for [building wheels with optional extensions](faq.md#building-packages-with-optional-c-extensions). cibuildwheel always defines the environment variable `CIBUILDWHEEL=1`. This can be useful for [building wheels with optional extensions](faq.md#optional-extensions).
!!! note !!! note
To do its work, cibuildwheel sets the variables `VIRTUALENV_PIP`, `DIST_EXTRA_CONFIG`, `SETUPTOOLS_EXT_SUFFIX`, `PIP_DISABLE_PIP_VERSION_CHECK`, `PIP_ROOT_USER_ACTION`, and it extends the variables `PATH` and `PIP_CONSTRAINT`. Your assignments to these options might be replaced or extended. To do its work, cibuildwheel sets the variables `VIRTUALENV_PIP`, `DIST_EXTRA_CONFIG`, `SETUPTOOLS_EXT_SUFFIX`, `PIP_DISABLE_PIP_VERSION_CHECK`, `PIP_ROOT_USER_ACTION`, and it extends the variables `PATH` and `PIP_CONSTRAINT`. Your assignments to these options might be replaced or extended.
+2 -2
View File
@@ -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.0 run: pipx run cibuildwheel==2.19.1
- 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.0 run: python -m pip install cibuildwheel==2.19.1
- name: Build wheels - name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse run: python -m cibuildwheel --output-dir wheelhouse
+1 -1
View File
@@ -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.0 install: python -m pip install cibuildwheel==2.19.1
build_script: python -m cibuildwheel --output-dir wheelhouse build_script: python -m cibuildwheel --output-dir wheelhouse
+3 -3
View File
@@ -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.0 pip3 install cibuildwheel==2.19.1
displayName: Install dependencies displayName: Install dependencies
- bash: cibuildwheel --output-dir wheelhouse . - bash: cibuildwheel --output-dir wheelhouse .
displayName: Build wheels displayName: Build wheels
@@ -20,7 +20,7 @@ jobs:
- 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.0 python3 -m pip install cibuildwheel==2.19.1
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.0 pip install cibuildwheel==2.19.1
displayName: Install dependencies displayName: Install dependencies
- bash: cibuildwheel --output-dir wheelhouse . - bash: cibuildwheel --output-dir wheelhouse .
displayName: Build wheels displayName: Build wheels
+3 -3
View File
@@ -11,7 +11,7 @@ jobs:
- run: - run:
name: Build the Linux wheels. name: Build the Linux wheels.
command: | command: |
pip3 install --user cibuildwheel==2.19.0 pip3 install --user cibuildwheel==2.19.1
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.0 python3 -m pip install --user cibuildwheel==2.19.1
python3 -m cibuildwheel --output-dir wheelhouse python3 -m cibuildwheel --output-dir wheelhouse
- store_artifacts: - store_artifacts:
path: wheelhouse/ path: wheelhouse/
@@ -42,7 +42,7 @@ jobs:
- run: - run:
name: Build the OS X wheels. name: Build the OS X wheels.
command: | command: |
pip3 install cibuildwheel==2.19.0 pip3 install cibuildwheel==2.19.1
cibuildwheel --output-dir wheelhouse cibuildwheel --output-dir wheelhouse
- store_artifacts: - store_artifacts:
path: wheelhouse/ path: wheelhouse/
+1 -1
View File
@@ -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.0 - python -m pip install cibuildwheel==2.19.1
run_cibuildwheel_script: run_cibuildwheel_script:
- cibuildwheel - cibuildwheel
wheels_artifacts: wheels_artifacts:
+1 -1
View File
@@ -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.0 - python -m pip install cibuildwheel==2.19.1
run_cibuildwheel_script: run_cibuildwheel_script:
- cibuildwheel - cibuildwheel
wheels_artifacts: wheels_artifacts:
+1 -1
View File
@@ -23,7 +23,7 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Build wheels - name: Build wheels
uses: pypa/cibuildwheel@v2.19.0 uses: pypa/cibuildwheel@v2.19.1
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:
+1 -1
View File
@@ -15,7 +15,7 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Build wheels - name: Build wheels
uses: pypa/cibuildwheel@v2.19.0 uses: pypa/cibuildwheel@v2.19.1
# env: # env:
# CIBW_SOME_OPTION: value # CIBW_SOME_OPTION: value
# ... # ...
+1 -1
View File
@@ -21,7 +21,7 @@ jobs:
platforms: all platforms: all
- name: Build wheels - name: Build wheels
uses: pypa/cibuildwheel@v2.19.0 uses: pypa/cibuildwheel@v2.19.1
env: env:
# configure cibuildwheel to build native archs ('auto'), and some # configure cibuildwheel to build native archs ('auto'), and some
# emulated ones # emulated ones
+2 -2
View File
@@ -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.0 - python -m pip install cibuildwheel==2.19.1
- cibuildwheel --output-dir wheelhouse - cibuildwheel --output-dir wheelhouse
artifacts: artifacts:
paths: paths:
@@ -23,7 +23,7 @@ windows:
before_script: before_script:
- choco install python -y --version 3.8.6 - choco install python -y --version 3.8.6
- choco install git.install -y - choco install git.install -y
- py -m pip install cibuildwheel==2.19.0 - py -m pip install cibuildwheel==2.19.1
script: script:
- py -m cibuildwheel --output-dir wheelhouse --platform windows - py -m cibuildwheel --output-dir wheelhouse --platform windows
artifacts: artifacts:
+1 -1
View File
@@ -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.0 - python -m pip install cibuildwheel==2.19.1
# 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:
+1 -1
View File
@@ -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.0 - python3 -m pip install cibuildwheel==2.19.1
script: script:
# build the wheels, put them into './dist' # build the wheels, put them into './dist'
+1 -1
View File
@@ -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.0 - python3 -m pip install cibuildwheel==2.19.1
script: script:
# build the wheels, put them into './wheelhouse' # build the wheels, put them into './wheelhouse'
+2 -2
View File
@@ -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.0 twine install: python3 -m pip install cibuildwheel==2.19.1 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.0 twine install: python3 -m pip install cibuildwheel==2.19.1 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
+7 -2
View File
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project] [project]
name = "cibuildwheel" name = "cibuildwheel"
version = "2.19.0" version = "2.19.1"
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"
@@ -93,7 +93,12 @@ Homepage = "https://github.com/pypa/cibuildwheel"
[tool.pytest.ini_options] [tool.pytest.ini_options]
minversion = "6.0" minversion = "6.0"
addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"] addopts = [
"-rfEsX", # TODO: replace with -ra when pytest > 8.2.2 is released
"--showlocals",
"--strict-markers",
"--strict-config",
]
junit_family = "xunit2" junit_family = "xunit2"
xfail_strict = true xfail_strict = true
filterwarnings = ["error"] filterwarnings = ["error"]