* feature: allow local runs on windows/macOS
Cache python installations to a user cache folder using platformdirs.
The build environment is now a virtual environment to allow proper isolation.
Allows to run tests in parallel.
Co-authored-by: Joe Rickerby <joerick@mac.com>
* add support for building wheels for windows on arm64
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix main_platform_test.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove unrequired explicit nuget source
* add python arm64 3.9.9 version
* extend update_pythons.py to add win/arm64 support
* update documentation for new win/arm64 platform
* style: include ARM64 in literal
* Fix python 3.9 identifier for win_arm64
* Fix table layout issues in README and add note about arm64 pip issue
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* feat: support passenv
* refactor: environment-pass and spaces
* docs: document environment pass
* Add unit test for passing through awkward env variable values
* Remove unused as_shell_commands method from environment
* Fix passthrough edge case by avoiding bash for passthrough assignments
* Fix mypy error in test
* Fix unit test
* Apply suggestions from code review
Co-authored-by: Joe Rickerby <joerick@mac.com>
* Add test for defaults, fix platform detection
* Improve correctness of reader.identifier with block
* Fix options test to be multiplatform
* 'Refactored by Sourcery'
docs: write a section on overrides
tests: test docker launches
feat: add identifiers to launches
test: add test for correct build step generation
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
* feat: support pypa build
fix: update `cibuildwheel.linux.troubleshoot` to know about build
Workaround issue with PyPy venv module by installing build[virtualenv]
fix: test_dependency_constraints_file when using build
fix: test/test_pep518.py
fix: use `strtobool` to parse `CIBW_PYPA_BUILD`
fix: update `cibuildwheel.linux.troubleshoot` to know about `python -m pip wheel`
test: use `build_mode` in `test/test_dependency_versions.py` tests
* refactor: use build-backend instead
* Apply suggestions from code review
Co-authored-by: Joe Rickerby <joerick@mac.com>
* refactor: use literal types for build_frontend
* refactor(tests): build_mode -> build_frontend_env
* Update test/test_before_build.py
Co-authored-by: Joe Rickerby <joerick@mac.com>
* Add a mkdocs extension to generate the --help output
* Add the correct setuptools syntax for relative requirements
* docs: use macro plugin instead
* docs: remove indirection in docs
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
* feat: configuration support
* refactor: include manylinux, minor redesign
* "project global" overrides "default platform"
This allows overriding `repair-wheel-command` in the `[tool.cibuildwheel.global]` section.
* fix: add PyPy images
* refactor: remove global
* fix: support tables and arrays
* docs: add pyproject.toml config to docs
* docs: updates based on feedback
* fix: only join if sensible
* refactor: remove manylinux dict
* docs: examples headers and sections on each
* feat: support changing the config from the command line
* fix: use {package}
* tests: add a few tests and mention config one more place
* Restyle examples tabs to remove indent
* Unrelated docs improvements
* Absorb extra content into the tab
* Make the tabs smaller and to the right
* Copy edits to options
* Fix header ids
* Use fewer [tool.cibuildwheel] headers
* docs: minor additions/fixes
* feat: disallow options on some platforms
* docs: make the examples a tiny bit more tabby
* fix: enforce tables/lists are optionally separate
* Some unrelated fixes to the other tab styling
* Minor fix to tab styling
* Refactor to make code a bit more linear and immutable
* Minor docs changes
Co-authored-by: mayeut <mayeut@users.noreply.github.com>
Co-authored-by: Joe Rickerby <joerick@mac.com>
* Add CPython 3.10 support
* Fix logger displaying CPython 3.1 instead of 3.10
* Fix tests failing with CPython 3.10
* Use pytest instead of nose
* feat: --pre flag
Apply suggestions from code review
Co-authored-by: Matthieu Darbois <mayeut@users.noreply.github.com>
* fix: update Python update script to process beta versions
* refactor: prerelease-pythons
* Use `strtobool` to parse `CIBW_PRERELEASE_PYTHONS` env var
* Update python version filtering for universal2 & arm64
* Filter out CPython 3.10 and above for `test_manylinuxXXXX_only[manylinux1]` test
* Use CIBW_BUILD filtering rather than CIBW_SKIP for test_docker_images
* Use skip_patterns to filter out pre-releases
* Use `prerelease_pythons` instead of `pre`
* Reword `CIBW_PRERELEASE_PYTHONS` doc per review.
* Use `CIBW_PRERELEASE_PYTHONS: True` for usage example.
* Update `cibuildwheel --help` doc
* docs: add note on spec.filter
* Clean up the BuildSelector __repr__ by refactoring
* fix: remove platform variants for CIBW_PRERELEASE_PYTHONS
* docs: mention the flag
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: Joe Rickerby <joerick@mac.com>