cibuildwheel 4.1.0__tar.gz → 4.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.github/workflows/copilot-setup-steps.yml +3 -3
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.github/workflows/release.yml +3 -3
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.github/workflows/test.yml +32 -25
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.github/workflows/update-dependencies.yml +3 -2
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.github/workflows/update-major-minor-tag.yml +1 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.github/workflows/zizmor.yml +2 -2
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.gitignore +1 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.pre-commit-config.yaml +3 -4
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.readthedocs.yml +1 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/AGENTS.md +2 -2
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/PKG-INFO +54 -37
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/README.md +53 -36
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/action.yml +1 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/azure-pipelines.yml +1 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/generate_schema.py +54 -24
- cibuildwheel-4.2.0/bin/update_docker.py +201 -0
- cibuildwheel-4.2.0/cibuildwheel/__init__.py +1 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/architecture.py +20 -4
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/frontend.py +6 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/options.py +28 -10
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/platforms/android.py +5 -7
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/platforms/ios.py +7 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/platforms/linux.py +3 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/platforms/macos.py +16 -9
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/platforms/pyodide.py +35 -5
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/platforms/windows.py +7 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/build-platforms.toml +53 -52
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/cibuildwheel.schema.json +105 -10
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/constraints-pyodide312.txt +22 -27
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/constraints-pyodide313.txt +22 -27
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/constraints-pyodide314.txt +22 -27
- cibuildwheel-4.2.0/cibuildwheel/resources/constraints-pyodide315.txt +86 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/constraints-python310.txt +12 -13
- cibuildwheel-4.2.0/cibuildwheel/resources/constraints-python311.txt +94 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/constraints-python312.txt +14 -13
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/constraints-python313.txt +12 -13
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/constraints-python314.txt +12 -13
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/constraints-python315.txt +12 -13
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/constraints-python39.txt +6 -7
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/constraints.txt +12 -13
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/defaults.toml +1 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/nodejs.toml +2 -2
- cibuildwheel-4.2.0/cibuildwheel/resources/pinned_docker_images.cfg +54 -0
- cibuildwheel-4.2.0/cibuildwheel/resources/python-build-standalone-releases.json +904 -0
- cibuildwheel-4.2.0/cibuildwheel/resources/virtualenv.toml +1 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/selector.py +1 -14
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/util/file.py +11 -2
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/util/resources.py +4 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/venv.py +13 -1
- cibuildwheel-4.2.0/docs/_internal/pyodide-maintenance.md +109 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/changelog.md +36 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/faq.md +3 -3
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/options.md +27 -17
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/platforms.md +5 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/examples/azure-pipelines-minimal.yml +3 -3
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/examples/circleci-minimal.yml +3 -3
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/examples/github-deploy.yml +1 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/examples/github-minimal.yml +1 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/examples/github-pipx.yml +1 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/examples/github-with-qemu.yml +1 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/examples/gitlab-minimal.yml +3 -3
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/examples/gitlab-with-qemu.yml +1 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/noxfile.py +63 -2
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/pyproject.toml +3 -2
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/conftest.py +64 -27
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_abi_variants.py +3 -3
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_android.py +6 -2
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_before_build.py +1 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_build_frontend_args.py +13 -3
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_container_engine.py +7 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_environment.py +0 -60
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_pyodide.py +6 -2
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/utils.py +13 -9
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/architecture_test.py +31 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/build_ids_test.py +18 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/build_selector_test.py +4 -11
- cibuildwheel-4.2.0/unit_test/download_test.py +172 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/linux_build_steps_test.py +4 -2
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/main_tests/main_options_test.py +11 -11
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/option_prepare_test.py +5 -1
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/options_test.py +213 -2
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/validate_schema_test.py +59 -0
- cibuildwheel-4.2.0/unit_test/venv_test.py +60 -0
- cibuildwheel-4.1.0/bin/update_docker.py +0 -153
- cibuildwheel-4.1.0/cibuildwheel/__init__.py +0 -1
- cibuildwheel-4.1.0/cibuildwheel/resources/android/android.patch +0 -11
- cibuildwheel-4.1.0/cibuildwheel/resources/constraints-python311.txt +0 -96
- cibuildwheel-4.1.0/cibuildwheel/resources/pinned_docker_images.cfg +0 -54
- cibuildwheel-4.1.0/cibuildwheel/resources/python-build-standalone-releases.json +0 -904
- cibuildwheel-4.1.0/cibuildwheel/resources/virtualenv.toml +0 -1
- cibuildwheel-4.1.0/docs/_internal/pyodide-maintenance.md +0 -113
- cibuildwheel-4.1.0/unit_test/download_test.py +0 -37
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.agents/skills/changelog-entry/SKILL.md +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.circleci/config.yml +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.circleci/prepare.sh +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.editorconfig +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.gitattributes +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.github/CODEOWNERS +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.github/dependabot.yml +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/.gitlab-ci.yml +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/CI.md +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/LICENSE +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/bump_version.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/generate_pyodide_constraints.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/inspect_all_known_projects.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/make_dependency_update_pr.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/projects.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/readme_changelog.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/readme_options_table.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/run_example_ci_configs.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/run_tests.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/sample_build.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/update_how_it_works_image.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/update_nodejs.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/update_python_build_standalone.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/update_pythons.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/bin/update_virtualenv.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/__main__.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/_compat/__init__.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/_compat/tarfile.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/audit.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/bashlex_eval.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/ci.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/environment.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/errors.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/extra.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/logger.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/oci_container.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/platforms/__init__.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/projectfiles.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/py.typed +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/android/_cross_venv.pth +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/android/_cross_venv.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/android/fortran_shim.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/android/rust_shim.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/constraints.in +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/free-threaded-enable-314.xml +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/free-threaded-enable-315.xml +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/install_certifi.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/ios-support/_cross_venv.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/ios-support/arm64-iphoneos/_cross_arm64_iphoneos.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/ios-support/arm64-iphoneos/sitecustomize.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/ios-support/arm64-iphonesimulator/_cross_arm64_iphonesimulator.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/ios-support/arm64-iphonesimulator/sitecustomize.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/ios-support/make_cross_venv.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/ios-support/x86_64-iphonesimulator/_cross_x86_64_iphonesimulator.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/ios-support/x86_64-iphonesimulator/sitecustomize.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/resources/testing_temp_dir_file.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/schema.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/typing.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/util/__init__.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/util/cmd.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/util/helpers.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/util/packaging.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/cibuildwheel/util/python_build_standalone.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/ci-services.md +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/configuration.md +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/contributing.md +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/cpp_standards.md +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/how-it-works.png +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/projects.schema.json +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/projects.yml +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/readme_icons/android.svg +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/readme_icons/apple.svg +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/readme_icons/azurepipelines.svg +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/readme_icons/circleci.svg +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/readme_icons/github.svg +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/readme_icons/gitlab.svg +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/readme_icons/ios.svg +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/readme_icons/linux.svg +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/readme_icons/pyodide.svg +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/readme_icons/travisci.svg +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/data/readme_icons/windows.svg +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/deliver-to-pypi.md +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/diagram.html +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/extra.css +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/extra.js +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/index.md +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/main.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/setup.md +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/theme_overrides/js/theme.js +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/docs/working-examples.md +20 -20
- /cibuildwheel-4.1.0/mkdocs.yml → /cibuildwheel-4.2.0/properdocs.yml +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/README.md +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/__init__.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/_cross_venv_test_android.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_0_basic.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_abi3audit.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_before_all.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_before_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_build_skip.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_container_images.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_cpp_standards.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_custom_repair_wheel.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_dependency_versions.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_emulation.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_from_sdist.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_ios.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_linux_python.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_macos_archs.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_manylinuxXXXX_only.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_meson_python.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_musllinux_X_Y_only.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_pep518.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_projects/__init__.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_projects/__main__.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_projects/base.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_projects/c.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_projects/meson.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_projects/setuptools.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_pure_wheel.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_ssl.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_subdir_package.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_testing.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_troubleshooting.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_wheel_tag.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/test/test_windows.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/__init__.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/audit_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/conftest.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/dependency_constraints_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/environment_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/get_platform_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/main_commands_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/main_tests/__init__.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/main_tests/conftest.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/main_tests/main_platform_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/main_tests/main_requires_python_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/oci_container_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/options_toml_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/projectfiles_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/python_build_standalone_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/test_sha256.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/utils_test.py +0 -0
- {cibuildwheel-4.1.0 → cibuildwheel-4.2.0}/unit_test/wheel_print_test.py +0 -0
|
@@ -19,16 +19,16 @@ jobs:
|
|
|
19
19
|
contents: read
|
|
20
20
|
|
|
21
21
|
steps:
|
|
22
|
-
- uses: actions/checkout@
|
|
22
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
23
23
|
with:
|
|
24
24
|
persist-credentials: false
|
|
25
25
|
|
|
26
|
-
- uses: actions/setup-python@
|
|
26
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
27
27
|
with:
|
|
28
28
|
python-version: "3.x"
|
|
29
29
|
allow-prereleases: true
|
|
30
30
|
|
|
31
|
-
- uses: astral-sh/setup-uv@
|
|
31
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
|
32
32
|
|
|
33
33
|
- name: Install tooling
|
|
34
34
|
run: |
|
|
@@ -13,7 +13,7 @@ jobs:
|
|
|
13
13
|
dist:
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
16
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
17
17
|
with:
|
|
18
18
|
persist-credentials: false
|
|
19
19
|
|
|
@@ -37,10 +37,10 @@ jobs:
|
|
|
37
37
|
path: dist
|
|
38
38
|
|
|
39
39
|
- name: Generate artifact attestation for sdist and wheel
|
|
40
|
-
uses: actions/attest-build-provenance@
|
|
40
|
+
uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1
|
|
41
41
|
with:
|
|
42
42
|
subject-path: "dist/cibuildwheel-*"
|
|
43
43
|
|
|
44
|
-
- uses: pypa/gh-action-pypi-publish@
|
|
44
|
+
- uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1
|
|
45
45
|
with:
|
|
46
46
|
attestations: true
|
|
@@ -23,7 +23,7 @@ on:
|
|
|
23
23
|
- .travis.yml
|
|
24
24
|
- README.md
|
|
25
25
|
- azure-pipelines.yml
|
|
26
|
-
-
|
|
26
|
+
- properdocs.yml
|
|
27
27
|
- noxfile.py
|
|
28
28
|
workflow_dispatch:
|
|
29
29
|
# allow manual runs on branches without a PR
|
|
@@ -34,19 +34,23 @@ concurrency:
|
|
|
34
34
|
group: test-${{ github.ref }}
|
|
35
35
|
cancel-in-progress: true
|
|
36
36
|
|
|
37
|
+
env:
|
|
38
|
+
# runners see short DNS/network outages; uv's default of 3 retries is too few
|
|
39
|
+
UV_HTTP_RETRIES: "6"
|
|
40
|
+
|
|
37
41
|
jobs:
|
|
38
42
|
lint:
|
|
39
43
|
name: Linters (mypy, ruff, etc.)
|
|
40
44
|
runs-on: ubuntu-latest
|
|
41
45
|
steps:
|
|
42
|
-
- uses: actions/checkout@
|
|
46
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
43
47
|
with:
|
|
44
48
|
persist-credentials: false
|
|
45
|
-
- uses: actions/setup-python@
|
|
49
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
46
50
|
with:
|
|
47
51
|
python-version: "3.x"
|
|
48
|
-
- uses: astral-sh/setup-uv@
|
|
49
|
-
- uses: j178/prek-action@
|
|
52
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
|
53
|
+
- uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2.0.6
|
|
50
54
|
- name: PyLint checks
|
|
51
55
|
run: uvx nox -s pylint -- --output-format=github
|
|
52
56
|
|
|
@@ -55,14 +59,14 @@ jobs:
|
|
|
55
59
|
needs: lint
|
|
56
60
|
runs-on: ubuntu-latest
|
|
57
61
|
steps:
|
|
58
|
-
- uses: actions/checkout@
|
|
62
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
59
63
|
with:
|
|
60
64
|
persist-credentials: false
|
|
61
|
-
- uses: actions/setup-python@
|
|
65
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
62
66
|
name: Install Python
|
|
63
67
|
with:
|
|
64
68
|
python-version: "3.x"
|
|
65
|
-
- uses: astral-sh/setup-uv@
|
|
69
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
|
66
70
|
- name: Install dependencies
|
|
67
71
|
run: uv sync --no-dev --group test
|
|
68
72
|
- name: Generate a sample project
|
|
@@ -117,16 +121,16 @@ jobs:
|
|
|
117
121
|
test_select: android
|
|
118
122
|
timeout-minutes: 180
|
|
119
123
|
steps:
|
|
120
|
-
- uses: actions/checkout@
|
|
124
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
121
125
|
with:
|
|
122
126
|
persist-credentials: false
|
|
123
|
-
- uses: actions/setup-python@
|
|
127
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
124
128
|
name: Install Python ${{ matrix.python_version }}
|
|
125
129
|
with:
|
|
126
130
|
python-version: ${{ matrix.python_version }}
|
|
127
131
|
allow-prereleases: true
|
|
128
132
|
|
|
129
|
-
- uses: astral-sh/setup-uv@
|
|
133
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
|
130
134
|
|
|
131
135
|
- name: Free up disk space
|
|
132
136
|
if: runner.os == 'Linux' && matrix.test_select != 'android'
|
|
@@ -139,7 +143,7 @@ jobs:
|
|
|
139
143
|
# for oci_container unit tests
|
|
140
144
|
- name: Set up QEMU
|
|
141
145
|
if: runner.os == 'Linux'
|
|
142
|
-
uses: docker/setup-qemu-action@
|
|
146
|
+
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
|
|
143
147
|
|
|
144
148
|
- name: Set up Xcode
|
|
145
149
|
if: ${{ startsWith(matrix.os, 'macos-15') }}
|
|
@@ -168,6 +172,9 @@ jobs:
|
|
|
168
172
|
if [[ -n "$GITHUB_PR_LABEL_CI_GRAALPY" ]]; then
|
|
169
173
|
CIBW_ENABLE+=" graalpy"
|
|
170
174
|
fi
|
|
175
|
+
if [[ -n "$GITHUB_PR_LABEL_CI_PYPY_EOL" ]]; then
|
|
176
|
+
CIBW_ENABLE+=" pypy-eol"
|
|
177
|
+
fi
|
|
171
178
|
fi
|
|
172
179
|
echo "CIBW_ENABLE=${CIBW_ENABLE}" >> $GITHUB_ENV
|
|
173
180
|
|
|
@@ -247,13 +254,13 @@ jobs:
|
|
|
247
254
|
outputs:
|
|
248
255
|
archs: ${{ steps.archs.outputs.archs }}
|
|
249
256
|
steps:
|
|
250
|
-
- uses: actions/checkout@
|
|
257
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
251
258
|
with:
|
|
252
259
|
persist-credentials: false
|
|
253
|
-
- uses: actions/setup-python@
|
|
260
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
254
261
|
with:
|
|
255
262
|
python-version: "3.x"
|
|
256
|
-
- uses: astral-sh/setup-uv@
|
|
263
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
|
257
264
|
- name: Install dependencies
|
|
258
265
|
run: uv sync --no-dev --group test
|
|
259
266
|
- name: Get qemu emulated architectures
|
|
@@ -272,18 +279,18 @@ jobs:
|
|
|
272
279
|
matrix:
|
|
273
280
|
arch: ${{ fromJSON(needs.emulated-archs.outputs.archs) }}
|
|
274
281
|
steps:
|
|
275
|
-
- uses: actions/checkout@
|
|
282
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
276
283
|
with:
|
|
277
284
|
persist-credentials: false
|
|
278
|
-
- uses: actions/setup-python@
|
|
285
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
279
286
|
with:
|
|
280
287
|
python-version: "3.x"
|
|
281
|
-
- uses: astral-sh/setup-uv@
|
|
288
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
|
282
289
|
- name: Install dependencies
|
|
283
290
|
run: uv sync --no-dev --group test
|
|
284
291
|
|
|
285
292
|
- name: Set up QEMU
|
|
286
|
-
uses: docker/setup-qemu-action@
|
|
293
|
+
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
|
|
287
294
|
|
|
288
295
|
- name: Run the emulation tests
|
|
289
296
|
env:
|
|
@@ -296,14 +303,14 @@ jobs:
|
|
|
296
303
|
runs-on: ubuntu-24.04
|
|
297
304
|
timeout-minutes: 180
|
|
298
305
|
steps:
|
|
299
|
-
- uses: actions/checkout@
|
|
306
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
300
307
|
with:
|
|
301
308
|
persist-credentials: false
|
|
302
|
-
- uses: actions/setup-python@
|
|
309
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
303
310
|
name: Install Python 3.12
|
|
304
311
|
with:
|
|
305
312
|
python-version: '3.12'
|
|
306
|
-
- uses: astral-sh/setup-uv@
|
|
313
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
|
307
314
|
|
|
308
315
|
- name: Install dependencies
|
|
309
316
|
run: uv sync --no-dev --group test
|
|
@@ -321,13 +328,13 @@ jobs:
|
|
|
321
328
|
output-dir: wheelhouse
|
|
322
329
|
env:
|
|
323
330
|
CIBW_PLATFORM: pyodide
|
|
324
|
-
CIBW_ENABLE:
|
|
331
|
+
CIBW_ENABLE: cpython-prerelease
|
|
325
332
|
|
|
326
333
|
- name: Run tests with 'CIBW_PLATFORM' set to 'pyodide'
|
|
327
334
|
run: uv run --no-sync ./bin/run_tests.py
|
|
328
335
|
env:
|
|
329
336
|
CIBW_PLATFORM: pyodide
|
|
330
|
-
CIBW_ENABLE:
|
|
337
|
+
CIBW_ENABLE: cpython-prerelease
|
|
331
338
|
|
|
332
339
|
test-uv-extras:
|
|
333
340
|
name: Test uv extra on ${{ matrix.os }} ${{ matrix.test_select }}
|
|
@@ -348,7 +355,7 @@ jobs:
|
|
|
348
355
|
- os: macos-15
|
|
349
356
|
test_select: android
|
|
350
357
|
steps:
|
|
351
|
-
- uses: actions/checkout@
|
|
358
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
352
359
|
with:
|
|
353
360
|
persist-credentials: false
|
|
354
361
|
- name: Download a sample project
|
|
@@ -37,11 +37,11 @@ jobs:
|
|
|
37
37
|
permission-contents: write
|
|
38
38
|
permission-pull-requests: write
|
|
39
39
|
|
|
40
|
-
- uses: actions/checkout@
|
|
40
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
41
41
|
with:
|
|
42
42
|
persist-credentials: false
|
|
43
43
|
|
|
44
|
-
- uses: astral-sh/setup-uv@
|
|
44
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
|
45
45
|
with:
|
|
46
46
|
python-version: "3.14"
|
|
47
47
|
|
|
@@ -69,4 +69,5 @@ jobs:
|
|
|
69
69
|
labels: |
|
|
70
70
|
CI: GraalPy
|
|
71
71
|
CI: PyPy
|
|
72
|
+
CI: PyPy EoL
|
|
72
73
|
dependencies
|
|
@@ -16,9 +16,9 @@ jobs:
|
|
|
16
16
|
security-events: write
|
|
17
17
|
steps:
|
|
18
18
|
- name: Checkout repository
|
|
19
|
-
uses: actions/checkout@
|
|
19
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
20
20
|
with:
|
|
21
21
|
persist-credentials: false
|
|
22
22
|
|
|
23
23
|
- name: Run zizmor 🌈
|
|
24
|
-
uses: zizmorcore/zizmor-action@
|
|
24
|
+
uses: zizmorcore/zizmor-action@6fc4b006235f201fdab3722e17240ab420d580e5 # v0.6.1
|
|
@@ -18,7 +18,7 @@ repos:
|
|
|
18
18
|
exclude: ^cibuildwheel/resources/android/android.patch$
|
|
19
19
|
|
|
20
20
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
21
|
-
rev:
|
|
21
|
+
rev: c59bba8fb259db0fec2bbb77ad8ba51ea7341b56 # frozen: v0.15.20
|
|
22
22
|
hooks:
|
|
23
23
|
- id: ruff-check
|
|
24
24
|
args: ["--fix"]
|
|
@@ -37,7 +37,6 @@ repos:
|
|
|
37
37
|
- dependency-groups>=1.2
|
|
38
38
|
- humanize
|
|
39
39
|
- nox>=2025.2.9
|
|
40
|
-
- orjson
|
|
41
40
|
- packaging
|
|
42
41
|
- pygithub
|
|
43
42
|
- pytest
|
|
@@ -78,7 +77,7 @@ repos:
|
|
|
78
77
|
additional_dependencies: [cogapp>=3.5]
|
|
79
78
|
|
|
80
79
|
- repo: https://github.com/henryiii/flake8-lazy
|
|
81
|
-
rev:
|
|
80
|
+
rev: 5fed9a818f2583f0403aed779bf2b6c9aa8d25f4 # frozen: v0.8.5
|
|
82
81
|
hooks:
|
|
83
82
|
- id: flake8-lazy
|
|
84
83
|
args: ["--apply=set"]
|
|
@@ -94,7 +93,7 @@ repos:
|
|
|
94
93
|
|
|
95
94
|
|
|
96
95
|
- repo: https://github.com/python-jsonschema/check-jsonschema
|
|
97
|
-
rev:
|
|
96
|
+
rev: 1a4bb160cab6417b3045e1b37b6b72449243e658 # frozen: 0.37.4
|
|
98
97
|
hooks:
|
|
99
98
|
- id: check-dependabot
|
|
100
99
|
- id: check-github-actions
|
|
@@ -8,4 +8,4 @@ build:
|
|
|
8
8
|
- asdf plugin add uv
|
|
9
9
|
- asdf install uv latest
|
|
10
10
|
- asdf global uv latest
|
|
11
|
-
- NO_COLOR=1 uv run --python 3.14 --managed-python --no-dev --group docs
|
|
11
|
+
- NO_COLOR=1 uv run --python 3.14 --managed-python --no-dev --group docs properdocs build --strict --site-dir $READTHEDOCS_OUTPUT/html
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
- `nox -s tests -- test -k before_build` — single integration test/file via pytest `-k`.
|
|
12
12
|
- `nox -s lint` — run all linters (pre-commit/prek).
|
|
13
13
|
- `nox -s pylint` — run pylint separately (not in pre-commit).
|
|
14
|
-
- `nox -s docs` —
|
|
14
|
+
- `nox -s docs` — properdocs serve (interactive) or build (non-interactive).
|
|
15
15
|
- Set up local dev env at `.venv`: `uv sync` (dependency groups used).
|
|
16
16
|
|
|
17
17
|
## Project layout
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
- `test/` — **integration tests** (expensive, run actual wheel builds).
|
|
20
20
|
- `unit_test/` — **unit tests** (fast, no wheel builds).
|
|
21
21
|
- `bin/` — maintainer scripts (update pins, generate README tables, schema, etc.).
|
|
22
|
-
- `docs/` —
|
|
22
|
+
- `docs/` — properdocs (MkDocs fork) source.
|
|
23
23
|
|
|
24
24
|
## Testing specifics
|
|
25
25
|
- Three test suites exist, run in this order by `bin/run_tests.py`:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cibuildwheel
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.2.0
|
|
4
4
|
Summary: Build Python wheels on CI with minimal configuration.
|
|
5
5
|
Project-URL: Changelog, https://github.com/pypa/cibuildwheel#changelog
|
|
6
6
|
Project-URL: Documentation, https://cibuildwheel.pypa.io
|
|
@@ -59,25 +59,24 @@ What does it do?
|
|
|
59
59
|
|
|
60
60
|
While cibuildwheel itself requires a recent Python version to run (we support the last three releases), it can target the following versions to build wheels:
|
|
61
61
|
|
|
62
|
-
|
|
|
63
|
-
|
|
64
|
-
| CPython 3.9
|
|
65
|
-
| CPython 3.10
|
|
66
|
-
| CPython 3.11
|
|
67
|
-
| CPython 3.12
|
|
68
|
-
| CPython 3.13
|
|
69
|
-
| CPython 3.14
|
|
70
|
-
| CPython 3.15
|
|
71
|
-
| PyPy 3.9 v7.3
|
|
72
|
-
| PyPy 3.10 v7.3
|
|
73
|
-
| PyPy 3.11 v7.3
|
|
74
|
-
| GraalPy 3.12 v25.0
|
|
62
|
+
| | macOS Intel | macOS Apple Silicon | Windows 64bit | Windows 32bit | Windows Arm64 | manylinux<br/>musllinux x86_64 | manylinux<br/>musllinux i686 | manylinux<br/>musllinux aarch64 | manylinux<br/>musllinux ppc64le | manylinux<br/>musllinux s390x | manylinux<br/>musllinux armv7l | Android | iOS | Pyodide |
|
|
63
|
+
|--------------------| ----------- | ------------------- | ------------- | ------------- | -------------- | ------------------------------ | ---------------------------- | ------------------------------- | ------------------------------- | ----------------------------- | ------------------------------ | ------- | --- | -------------- |
|
|
64
|
+
| CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅<sup>2</sup> | ✅ | ✅ | ✅ | ✅ | ✅ | ✅<sup>4</sup> | N/A | N/A | N/A |
|
|
65
|
+
| CPython 3.10 | ✅ | ✅ | ✅ | ✅ | ✅<sup>2</sup> | ✅ | ✅ | ✅ | ✅ | ✅ | ✅<sup>4</sup> | N/A | N/A | N/A |
|
|
66
|
+
| CPython 3.11 | ✅ | ✅ | ✅ | ✅ | ✅<sup>2</sup> | ✅ | ✅ | ✅ | ✅ | ✅ | ✅<sup>4</sup> | N/A | N/A | N/A |
|
|
67
|
+
| CPython 3.12 | ✅ | ✅ | ✅ | ✅ | ✅<sup>2</sup> | ✅ | ✅ | ✅ | ✅ | ✅ | ✅<sup>4</sup> | N/A | N/A | ✅<sup>3</sup> |
|
|
68
|
+
| CPython 3.13 | ✅ | ✅ | ✅ | ✅ | ✅<sup>2</sup> | ✅ | ✅ | ✅ | ✅ | ✅ | ✅<sup>4</sup> | ✅ | ✅ | ✅ |
|
|
69
|
+
| CPython 3.14 | ✅ | ✅ | ✅ | ✅ | ✅<sup>2</sup> | ✅ | ✅ | ✅ | ✅ | ✅ | ✅<sup>4</sup> | ✅ | ✅ | ✅ |
|
|
70
|
+
| CPython 3.15 | ✅ | ✅ | ✅ | ✅ | ✅<sup>2</sup> | ✅ | ✅ | ✅ | ✅ | ✅ | ✅<sup>4</sup> | ✅ | ✅ | ✅ |
|
|
71
|
+
| PyPy 3.9 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅<sup>1</sup> | ✅<sup>1</sup> | ✅<sup>1</sup> | N/A | N/A | N/A | N/A | N/A | N/A |
|
|
72
|
+
| PyPy 3.10 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅<sup>1</sup> | ✅<sup>1</sup> | ✅<sup>1</sup> | N/A | N/A | N/A | N/A | N/A | N/A |
|
|
73
|
+
| PyPy 3.11 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅<sup>1</sup> | ✅<sup>1</sup> | ✅<sup>1</sup> | N/A | N/A | N/A | N/A | N/A | N/A |
|
|
74
|
+
| GraalPy 3.12 v25.0 | ✅ | ✅ | ✅ | N/A | N/A | ✅<sup>1</sup> | N/A | ✅<sup>1</sup> | N/A | N/A | N/A | N/A | N/A | N/A |
|
|
75
75
|
|
|
76
76
|
<sup>**1** PyPy & GraalPy are only supported for manylinux wheels.</sup><br>
|
|
77
77
|
<sup>**2** Windows arm64 support is experimental.</sup><br>
|
|
78
78
|
<sup>**3** Not supported on PyPI, uses old `pyodide` tag instead of `pyemscripten`. Requires `pyodide-eol` [`enable`](https://cibuildwheel.pypa.io/en/stable/options/#enable).</sup><br>
|
|
79
79
|
<sup>**4** manylinux armv7l support is experimental. As there are no RHEL based image for this architecture, it's using an Ubuntu based image instead.</sup><br>
|
|
80
|
-
<sup>**5** Python 3.15 requires opt-in using [`enable`](https://cibuildwheel.pypa.io/en/stable/options/#enable).</sup><br>
|
|
81
80
|
|
|
82
81
|
- Builds manylinux, musllinux, macOS, Windows, pyemscripten, iOS, and Android wheels
|
|
83
82
|
- Supports CPython, PyPy, and GraalPy
|
|
@@ -135,7 +134,7 @@ jobs:
|
|
|
135
134
|
- uses: actions/setup-python@v6
|
|
136
135
|
|
|
137
136
|
- name: Install cibuildwheel
|
|
138
|
-
run: python -m pip install cibuildwheel==4.
|
|
137
|
+
run: python -m pip install cibuildwheel==4.2.0
|
|
139
138
|
|
|
140
139
|
- name: Build wheels
|
|
141
140
|
run: python -m cibuildwheel --output-dir wheelhouse
|
|
@@ -226,8 +225,8 @@ Here are some repos that use cibuildwheel.
|
|
|
226
225
|
|-----------------------------------|----|----|:------|
|
|
227
226
|
| [scikit-learn][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] ![pyodide icon][] | The machine learning library. A complex but clean config using many of cibuildwheel's features to build a large project with Cython and C++ extensions. |
|
|
228
227
|
| [duckdb][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | DuckDB is an analytical in-process SQL database management system |
|
|
229
|
-
| [pytorch-fairseq][] | ![github icon][] | ![apple icon][] ![linux icon][] | Facebook AI Research Sequence-to-Sequence Toolkit written in Python. |
|
|
230
228
|
| [NumPy][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] ![pyodide icon][] | The fundamental package for scientific computing with Python. |
|
|
229
|
+
| [pytorch-fairseq][] | ![github icon][] | ![apple icon][] ![linux icon][] | Facebook AI Research Sequence-to-Sequence Toolkit written in Python. |
|
|
231
230
|
| [NCNN][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | ncnn is a high-performance neural network inference framework optimized for the mobile platform |
|
|
232
231
|
| [Matplotlib][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] ![pyodide icon][] | The venerable Matplotlib, a Python library with C++ portions |
|
|
233
232
|
| [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. |
|
|
@@ -237,8 +236,8 @@ Here are some repos that use cibuildwheel.
|
|
|
237
236
|
|
|
238
237
|
[scikit-learn]: https://github.com/scikit-learn/scikit-learn
|
|
239
238
|
[duckdb]: https://github.com/duckdb/duckdb
|
|
240
|
-
[pytorch-fairseq]: https://github.com/facebookresearch/fairseq
|
|
241
239
|
[NumPy]: https://github.com/numpy/numpy
|
|
240
|
+
[pytorch-fairseq]: https://github.com/facebookresearch/fairseq
|
|
242
241
|
[NCNN]: https://github.com/Tencent/ncnn
|
|
243
242
|
[Matplotlib]: https://github.com/matplotlib/matplotlib
|
|
244
243
|
[Tornado]: https://github.com/tornadoweb/tornado
|
|
@@ -276,6 +275,42 @@ Changelog
|
|
|
276
275
|
|
|
277
276
|
<!-- [[[cog from readme_changelog import mini_changelog; print(mini_changelog()) ]]] -->
|
|
278
277
|
|
|
278
|
+
### v4.2.0
|
|
279
|
+
|
|
280
|
+
_4 August 2026_
|
|
281
|
+
|
|
282
|
+
- 🌟 CPython 3.15 wheels are now built by default - without the `"cpython-prerelease"` [`enable`](https://cibuildwheel.pypa.io/en/stable/options/#enable) set. It's time to build and upload these wheels to PyPI! This release includes CPython 3.15.0rc1, which is guaranteed to be ABI compatible with the final release. (#2944)
|
|
283
|
+
- ✨ Adds Pyodide 3.15 support with the `cp315-pyodide_wasm32` build identifier, using Pyodide 315.0.0a2. These are also stable wrt. the final release. (#2958)
|
|
284
|
+
- 🐛 Retries a failed download six times with exponential backoff, so short network outages no longer stop a build. A `4xx` response is still reported at once. (#2953)
|
|
285
|
+
- 🐛 Accepts `default` as a [`build-frontend`](https://cibuildwheel.pypa.io/en/stable/options/#build-frontend) value on Pyodide, and accepts `pyodide-build` in the top-level table and in overrides (#2951)
|
|
286
|
+
- 🛠 Holds pip back on GraalPy, where newer pip breaks the build (#2955)
|
|
287
|
+
- 🛠 Updates Pyodide to 314.0.4 (#2949, #2952)
|
|
288
|
+
- 🛠 Updates dependencies and container pins (#2952, #2960)
|
|
289
|
+
- 💼 Updates CI action pins (#2948, #2954)
|
|
290
|
+
- 🧪 Uses pp311 for the abi3 test, and deletes `test_overridden_pip_constraint`, which is not necessary since #2583 (#2956, #2957)
|
|
291
|
+
|
|
292
|
+
### v4.1.1
|
|
293
|
+
|
|
294
|
+
_24 July 2026_
|
|
295
|
+
|
|
296
|
+
- ✨ Adds `pyodide-build` as a separate [`build-frontend`](https://cibuildwheel.pypa.io/en/stable/options/#build-frontend), now the default frontend for Pyodide, with verbosity flags handling. Any other frontend is ignored with a warning on Pyodide. (#2609, #2945)
|
|
297
|
+
- 🔐 Uses digests instead of tags for pinned container images, strengthening supply-chain security. The human-readable tags remain as comments in `pinned_docker_images.cfg`. (#2915)
|
|
298
|
+
- 🐛 Fixes platform-specific [`test-runtime`](https://cibuildwheel.pypa.io/en/stable/options/#test-runtime) environment variables (e.g. `CIBW_TEST_RUNTIME_ANDROID`) not being honored (#2941)
|
|
299
|
+
- 🐛 Fixes quoting of [`test-requires`](https://cibuildwheel.pypa.io/en/stable/options/#test-requires) and [`audit-requires`](https://cibuildwheel.pypa.io/en/stable/options/#audit-requires) so PEP 508 specifiers containing spaces work (#2913)
|
|
300
|
+
- 🐛 Makes [`archs`](https://cibuildwheel.pypa.io/en/stable/options/#archs) parsing case-insensitive and platform-aware, so e.g. `arm64` works on Windows (#2920)
|
|
301
|
+
- 🐛 Uses an absolute path for the `{project}` placeholder in [`config-settings`](https://cibuildwheel.pypa.io/en/stable/options/#config-settings) (#2934)
|
|
302
|
+
- 🐛 Validates the [`pyodide-version`](https://cibuildwheel.pypa.io/en/stable/options/#pyodide-version) option against the build identifier with a clear error (#2925)
|
|
303
|
+
- 🐛 Fixes PyPy installs on macOS after PyPy switched its downloads from `.tar.bz2` to `.tar.gz` (#2939)
|
|
304
|
+
- 🐛 Makes a matching `python3-config` available in the build and test venvs on macOS (#2922)
|
|
305
|
+
- 🛠 Updates dependencies and container pins (#2917, #2935, #2939)
|
|
306
|
+
- 🛠 Updates Android tests to current Python versions and the new test repository URL (#2933)
|
|
307
|
+
- 🛠 Drops the `orjson` dependency, no longer used by mypy 2+ (#2923)
|
|
308
|
+
- 📚 Builds the docs with properdocs, a MkDocs fork (#2946)
|
|
309
|
+
- 📚 Adds the missing `cp314-pyodide_wasm32` entry to the build identifier table (#2947)
|
|
310
|
+
- 📚 Removes outdated notes about the `pip wheel` build frontend and ClearLinux (#2926)
|
|
311
|
+
- 💼 Adds a "CI: PyPy EoL" PR label to run PyPy EoL tests on PRs (#2930)
|
|
312
|
+
- 💼 Updates CI action pins and pre-commit hooks (#2914, #2932, #2938, #2940, #2942, #2943)
|
|
313
|
+
|
|
279
314
|
### v4.1.0
|
|
280
315
|
|
|
281
316
|
_12 June 2026_
|
|
@@ -353,25 +388,7 @@ _2 April 2026_
|
|
|
353
388
|
- ✨ cibuildwheel prints the selected build identifiers at the start of the build. (#2785)
|
|
354
389
|
- 🔐 The GitHub Action now references other actions with a full SHA (#2744)
|
|
355
390
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
_5 March 2026_
|
|
359
|
-
|
|
360
|
-
- 🌟 You can now build wheels using `uv` as a build frontend. This should improve performance, especially if your project has lots of build dependencies. To use, set [`build-frontend`](https://cibuildwheel.pypa.io/en/stable/options/#build-frontend) to `uv`. (#2322)
|
|
361
|
-
- ⚠️ We no longer support running on Travis CI. It may continue working but we don't run tests there anymore so we can't be sure. (#2682)
|
|
362
|
-
- ✨ Improvements to building rust wheels on Android (#2650)
|
|
363
|
-
- 🛠 Update Pyodide to 0.29.3 (#2719, #2733)
|
|
364
|
-
- 🐛 Fix bug with the GitHub Action on Windows, where PATH was getting unnecessarily changed, causing issues with meson builds. (#2723)
|
|
365
|
-
- ✨ Add support for quiet setting on `build` and `uv` from the cibuildwheel `build-verbosity` setting. (#2737)
|
|
366
|
-
- 📚 Docs updates, including guidance on using Meson on Windows (#2718)
|
|
367
|
-
|
|
368
|
-
### v3.3.1
|
|
369
|
-
|
|
370
|
-
_5 January 2026_
|
|
371
|
-
|
|
372
|
-
- 🛠 Update dependencies and container pins, including updating to CPython 3.14.2. (#2708)
|
|
373
|
-
|
|
374
|
-
<!-- [[[end]]] (sum: s3fkxPyqwC) -->
|
|
391
|
+
<!-- [[[end]]] (sum: fEuiF50wvg) -->
|
|
375
392
|
|
|
376
393
|
---
|
|
377
394
|
|