* Improve integration test options
- Keep the platform and enable options in os.environ, don't duplicate state in utils
- Provide more user-friendly options for setting enable and platform in integration tests
* Ensure that CIBW_ENABLE is set in the test process
* Use get_enable_groups() where necessary
* Allow CIBW_ENABLE to control the wheels built in testing
* Set CIBW_ENABLE using PR labels
* Add docs
* Build everything on the main branch
* Add CIBW_ENABLE=all option
This was mostly for use in the `main` building case, because otherwise it's maybe a bit too easy to forget to update this file when adding an enable group
* Remove dead code
* Make unit tests robust to the value of CIBW_ENABLE
* Fix tests that explicitly choose pypy
* Fix test expectation
* Don't expect impossible wheels in expected_wheels
* Simplify logic in expected_wheels
* CircleCI- run with CIBW_ENABLE=all only on the main branch
* Azure pipelines - run with CIBW_ENABLE=all on main branch
* Update gitlab to run CIBW_ENABLE=all on main
* Set CIBW_ENABLE=all on travis - it only runs on main anyway
* Fix job name error on CircleCI
* Fix tests for graalpy
* Update the test configuration to use the label
* Remove duplication of default value. Make it affect sample build too
* Move the action to after deps are installed
* GraalPy workaround for this assumption
* Make unit test resilient to changing CIBW_ENABLE
* Properly close files used for testing
* Add support for GraalPy
* Help GraalPy discover build tools on Windows
* Expect manylinux-interpreters ensure graalpy* warning in pip
* Workaround GraalPy bugs on Windows
* Workaround oracle/graalpython#491 also when uv is not available
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update azure-pipelines.yml
* Update azure-pipelines.yml
* refacotor: use pathlib.write_text
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
* Include GraalPy in docker_warmup and remove workaround for installing it late
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* chore: use SPEC 0 schedule for cibuildwheel
* remove support for {python} and {pip} in commands
* Remove specific Python versions from the update-dependencies job
The requirements pinning is done by uv now, so we don't need to
run the versions of Python to do the pinning anymore.
---------
Co-authored-by: Joe Rickerby <joerick@mac.com>
* ci: warm-up docker images
* don't cache when running emulation tests
* skip graalpy cache
* add comment about the single worker case
* enforce docker warm-up succeeds in CI
* skip warm-up on architectures where it does not do any good
* feat: add Pyodide support
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com>
Co-authored-by: Matthieu Darbois <mayeut@users.noreply.github.com>
tests: fix two merge issues
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
fix: include schema
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
* Try to fix xbuildenv path
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Try to install pyodide-build from main branch
Try again
Try again
Update constraints file
Try again
Remove unused variable
Drop constraints
Remove --download option
Fix xbuildenv install
Try again
Try again
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: remove pinning on pyodide
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
* Update for Pyodide 0.26.0a5
* Install pyodide-build from pypi
* Update docs/options.md
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* Unxfail things that look like they were just a version mismatch
* refactor: add constraints for pyodide
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
* chore: minor cleanup
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
* Apply suggestions from code review
* Apply suggestion from code review
* refactor: minor touchup
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
* ci: xfail the pyodide test
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
* review: use a pinned version of node
* fix tests
* review: error out on Windows
* test: check node & test on macos arm64
* chore: minor cleanup
* Add reference to emscripten libc issue
* Apply suggestion from code review
* review: use a pinned pip in test virtual environment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore: rework test virtual environment seed packages
* chore: workaround direct invocation of pytest
This allows to still test direct invocation of `pytest` on most platforms (including pyodide on Linux) but falls back to `python -m pytest` when running pyodide on macOS.
* Use release version of pyodide
* fix: tests for 0.26.0 & parallel initialization of xbuildenv
* Debug CI
* fix: test/test_build_frontend_args.py
* Revert "Debug CI"
This reverts commit 917646cffc96dbfc619c47d1c03a828f447bcdb7.
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: Matthieu Darbois <mayeut@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feature: add musllinux_1_2 support
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix[test]: clean-up docker images in test_*linux*_only.py
We are reaching disk space limits (14 GB) when running tests.
Add a fixture to clean-up docker images after tests.
This fixture is applied on tests that pull a specific image for one test only in order not to take too much time pulling that image many times.
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Per discussion in https://github.com/pypa/cibuildwheel/pull/1169, the default installer used for cp38 is an Intel installer.
It makes sense to skip testing arm64 wheels in this case.
However, if the user choose to manually install the universal2 CPython version, then, tests shall be run on arm64.
This allows users that either target 11.0+ on intel, universal2 or only build for arm64 to get the arm64 wheel tested on AppleSilicon.
* 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>