Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: pypa/cibuildwheel
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.19.0
Choose a base ref
...
head repository: pypa/cibuildwheel
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.19.1
Choose a head ref
  • 9 commits
  • 37 files changed
  • 6 contributors

Commits on Jun 11, 2024

  1. 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>
    henryiii authored Jun 11, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    829441f View commit details
  2. [pre-commit.ci] pre-commit autoupdate (#1869)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.4.7 → v0.4.8](astral-sh/ruff-pre-commit@v0.4.7...v0.4.8)
    
    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
    pre-commit-ci[bot] authored Jun 11, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    4ada77d View commit details
  3. 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>
    henryiii authored Jun 11, 2024
    Copy the full SHA
    8d5d84e View commit details
  4. DOC: Fix bug with link (#1870)

    larsoner authored Jun 11, 2024
    Copy the full SHA
    89a5cfe View commit details

Commits on Jun 12, 2024

  1. tests: don't print xfails (#1865)

    tests: skip warnings on xfails for now
    
    Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
    henryiii authored Jun 12, 2024
    Copy the full SHA
    8d86d31 View commit details
  2. docs: update README.md (#1874)

    ngoldbaum authored Jun 12, 2024
    Copy the full SHA
    78da7ba View commit details

Commits on Jun 13, 2024

  1. [Bot] Update dependencies (#1879)

    Update dependencies
    
    Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com>
    cibuildwheel-bot[bot] authored Jun 13, 2024
    Copy the full SHA
    405a475 View commit details
  2. fix: specify full path to non-venv Python (#1881)

    Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
    henryiii authored Jun 13, 2024
    Copy the full SHA
    70fb1c4 View commit details
  3. Bump version: v2.19.1

    henryiii committed Jun 13, 2024
    Copy the full SHA
    932529c View commit details
Showing with 116 additions and 90 deletions.
  1. +1 −1 .pre-commit-config.yaml
  2. +13 −10 README.md
  3. +2 −2 action.yml
  4. +1 −1 bin/generate_schema.py
  5. +1 −1 cibuildwheel/__init__.py
  6. +4 −4 cibuildwheel/macos.py
  7. +6 −1 cibuildwheel/pyodide.py
  8. +3 −3 cibuildwheel/resources/build-platforms.toml
  9. +3 −3 cibuildwheel/resources/constraints-pyodide312.txt
  10. +1 −1 cibuildwheel/resources/constraints-python310.txt
  11. +1 −1 cibuildwheel/resources/constraints-python311.txt
  12. +1 −1 cibuildwheel/resources/constraints-python312.txt
  13. +2 −2 cibuildwheel/resources/constraints-python313.txt
  14. +1 −1 cibuildwheel/resources/constraints-python38.txt
  15. +1 −1 cibuildwheel/resources/constraints-python39.txt
  16. +1 −1 cibuildwheel/resources/constraints.txt
  17. +24 −24 cibuildwheel/resources/pinned_docker_images.cfg
  18. +4 −4 cibuildwheel/windows.py
  19. +11 −0 docs/changelog.md
  20. +3 −1 docs/contributing.md
  21. +3 −3 docs/faq.md
  22. +1 −1 docs/options.md
  23. +2 −2 docs/setup.md
  24. +1 −1 examples/appveyor-minimal.yml
  25. +3 −3 examples/azure-pipelines-minimal.yml
  26. +3 −3 examples/circleci-minimal.yml
  27. +1 −1 examples/cirrus-ci-intel-mac.yml
  28. +1 −1 examples/cirrus-ci-minimal.yml
  29. +1 −1 examples/github-deploy.yml
  30. +1 −1 examples/github-minimal.yml
  31. +1 −1 examples/github-with-qemu.yml
  32. +2 −2 examples/gitlab-minimal.yml
  33. +1 −1 examples/gitlab-with-qemu.yml
  34. +1 −1 examples/travis-ci-deploy.yml
  35. +1 −1 examples/travis-ci-minimal.yml
  36. +2 −2 examples/travis-ci-test-and-deploy.yml
  37. +7 −2 pyproject.toml
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ repos:
- id: trailing-whitespace

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.4.7
rev: v0.4.8
hooks:
- id: ruff
args: ["--fix", "--show-fixes"]
23 changes: 13 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -39,7 +39,7 @@ What does it do?

<sup>¹ PyPy is only supported for manylinux wheels.</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>

- Builds manylinux, musllinux, macOS 10.9+, and Windows wheels for CPython and PyPy
@@ -94,7 +94,7 @@ jobs:
- uses: actions/setup-python@v5

- name: Install cibuildwheel
run: python -m pip install cibuildwheel==2.19.0
run: python -m pip install cibuildwheel==2.19.1

- name: Build wheels
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 -->

### 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

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 `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)
@@ -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)
- 📚 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 -->

---
4 changes: 2 additions & 2 deletions action.yml
Original file line number Diff line number Diff line change
@@ -24,11 +24,11 @@ branding:
runs:
using: composite
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
id: python
with:
python-version: "3.8 - 3.12"
python-version: "3.12"
update-environment: false

- id: cibw
2 changes: 1 addition & 1 deletion bin/generate_schema.py
Original file line number Diff line number Diff line change
@@ -56,7 +56,7 @@
- type: string
pattern: '^build; ?args:'
- type: string
pattern: '^build\[uv\]; ?args:'
pattern: '^build\\[uv\\]; ?args:'
- type: object
additionalProperties: false
required: [name]
2 changes: 1 addition & 1 deletion cibuildwheel/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
from __future__ import annotations

__version__ = "2.19.0"
__version__ = "2.19.1"
8 changes: 4 additions & 4 deletions cibuildwheel/macos.py
Original file line number Diff line number Diff line change
@@ -201,7 +201,7 @@ def setup_python(
dependency_constraint_flags: Sequence[PathOrStr],
environment: ParsedEnvironment,
build_frontend: BuildFrontendName,
) -> dict[str, str]:
) -> tuple[Path, dict[str, str]]:
if build_frontend == "build[uv]" and Version(python_configuration.version) < Version("3.8"):
build_frontend = "build"

@@ -388,7 +388,7 @@ def setup_python(
else:
assert_never(build_frontend)

return env
return base_python, env


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),
]

env = setup_python(
base_python, env = setup_python(
identifier_tmp_dir / "build",
config,
dependency_constraint_flags,
@@ -658,7 +658,7 @@ def build(options: Options, tmp_path: Path) -> None:

if use_uv:
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:
pip_install = functools.partial(call_with_arch, *pip, "install")
# Use pip version from the initial env to ensure determinism
7 changes: 6 additions & 1 deletion cibuildwheel/pyodide.py
Original file line number Diff line number Diff line change
@@ -2,6 +2,7 @@

import os
import shutil
import sys
from collections.abc import Sequence, Set
from dataclasses import dataclass
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:
implementation_id = identifier.split("-")[0]
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}"
which_python = shutil.which(python_name)
if which_python is None:
6 changes: 3 additions & 3 deletions cibuildwheel/resources/build-platforms.toml
Original file line number Diff line number Diff line change
@@ -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_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 = "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_arm64", 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.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.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_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" },
6 changes: 3 additions & 3 deletions cibuildwheel/resources/constraints-pyodide312.txt
Original file line number Diff line number Diff line change
@@ -21,7 +21,7 @@ click==8.1.7
# via typer
cloudpickle==3.0.0
# via loky
cmake==3.29.3
cmake==3.29.5
# via pyodide-build
distlib==0.3.8
# via virtualenv
@@ -46,7 +46,7 @@ markdown-it-py==3.0.0
# via rich
mdurl==0.1.2
# via markdown-it-py
packaging==24.0
packaging==24.1
# via
# auditwheel-emscripten
# build
@@ -56,7 +56,7 @@ pip==24.0
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
platformdirs==4.2.2
# via virtualenv
pydantic==2.7.3
pydantic==2.7.4
# via
# pyodide-build
# pyodide-lock
2 changes: 1 addition & 1 deletion cibuildwheel/resources/constraints-python310.txt
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ importlib-metadata==7.1.0
# via build
macholib==1.16.3
# via delocate
packaging==24.0
packaging==24.1
# via
# build
# delocate
2 changes: 1 addition & 1 deletion cibuildwheel/resources/constraints-python311.txt
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@ filelock==3.14.0
# via virtualenv
macholib==1.16.3
# via delocate
packaging==24.0
packaging==24.1
# via
# build
# delocate
2 changes: 1 addition & 1 deletion cibuildwheel/resources/constraints-python312.txt
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@ filelock==3.14.0
# via virtualenv
macholib==1.16.3
# via delocate
packaging==24.0
packaging==24.1
# via
# build
# delocate
4 changes: 2 additions & 2 deletions cibuildwheel/resources/constraints-python313.txt
Original file line number Diff line number Diff line change
@@ -12,11 +12,11 @@ filelock==3.14.0
# via virtualenv
macholib==1.16.3
# via delocate
packaging==24.0
packaging==24.1
# via
# build
# delocate
pip==24.1b1
pip==24.1b2
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.2.2
# via virtualenv
2 changes: 1 addition & 1 deletion cibuildwheel/resources/constraints-python38.txt
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ importlib-metadata==7.1.0
# via build
macholib==1.16.3
# via delocate
packaging==24.0
packaging==24.1
# via
# build
# delocate
2 changes: 1 addition & 1 deletion cibuildwheel/resources/constraints-python39.txt
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ importlib-metadata==7.1.0
# via build
macholib==1.16.3
# via delocate
packaging==24.0
packaging==24.1
# via
# build
# delocate
2 changes: 1 addition & 1 deletion cibuildwheel/resources/constraints.txt
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@ filelock==3.14.0
# via virtualenv
macholib==1.16.3
# via delocate
packaging==24.0
packaging==24.1
# via
# build
# delocate
48 changes: 24 additions & 24 deletions cibuildwheel/resources/pinned_docker_images.cfg
Original file line number Diff line number Diff line change
@@ -1,54 +1,54 @@
[x86_64]
manylinux1 = quay.io/pypa/manylinux1_x86_64:2024-04-29-76807b8
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_28 = quay.io/pypa/manylinux_2_28_x86_64:2024-06-06-99f15a7
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024-06-06-99f15a7
musllinux_1_2 = quay.io/pypa/musllinux_1_2_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.12-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2024.06.12-1

[i686]
manylinux1 = quay.io/pypa/manylinux1_i686:2024-04-29-76807b8
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
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2024-06-06-99f15a7
musllinux_1_2 = quay.io/pypa/musllinux_1_2_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.12-1

[pypy_x86_64]
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_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]
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

[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_28 = quay.io/pypa/manylinux_2_28_aarch64:2024-06-03-e195670
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024-06-03-e195670
musllinux_1_2 = quay.io/pypa/musllinux_1_2_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.12-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2024.06.12-1

[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_28 = quay.io/pypa/manylinux_2_28_ppc64le:2024-06-03-e195670
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024-06-03-e195670
musllinux_1_2 = quay.io/pypa/musllinux_1_2_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.12-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2024.06.12-1

[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_28 = quay.io/pypa/manylinux_2_28_s390x:2024-06-03-e195670
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024-06-03-e195670
musllinux_1_2 = quay.io/pypa/musllinux_1_2_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.12-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2024.06.12-1

[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_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

8 changes: 4 additions & 4 deletions cibuildwheel/windows.py
Original file line number Diff line number Diff line change
@@ -223,7 +223,7 @@ def setup_python(
dependency_constraint_flags: Sequence[PathOrStr],
environment: ParsedEnvironment,
build_frontend: BuildFrontendName,
) -> dict[str, str]:
) -> tuple[Path, dict[str, str]]:
tmp.mkdir()
implementation_id = python_configuration.identifier.split("-")[0]
python_libs_base = None
@@ -330,7 +330,7 @@ def setup_python(
setup_setuptools_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:
@@ -376,7 +376,7 @@ def build(options: Options, tmp_path: Path) -> None:
]

# install Python
env = setup_python(
base_python, env = setup_python(
identifier_tmp_dir / "build",
config,
dependency_constraint_flags,
@@ -502,7 +502,7 @@ def build(options: Options, tmp_path: Path) -> None:
venv_dir = identifier_tmp_dir / "venv-test"

if use_uv:
call("uv", "venv", venv_dir, "--python=python", env=env)
call("uv", "venv", venv_dir, f"--python={base_python}", env=env)
else:
# Use pip version from the initial env to ensure determinism
venv_args = ["--no-periodic-update", f"--pip={pip_version}"]
11 changes: 11 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
@@ -4,8 +4,19 @@ title: 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

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 `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)
Loading