* 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>
* Update dependencies
* ci(fix): use tonistiigi/binfmt:qemu-v8.1.5 image for qemu
* fix(test): implement retry for test_container_removed
The test is flaky on some platforms. Implement retry rather than just skip.
---------
Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com>
Co-authored-by: mayeut <mayeut@users.noreply.github.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>
* Fix typos and capitalise
* Add docstring for `install_xbuildenv` function
* Include Emscripten, Pyodide version in logger messages
* Mark separation of pyodide-build and Pyodide
* Bump to Pyodide 0.26.4 (py3.12.7) + pyodide-build 0.29.0
* Use pyodide-build version as the source of truth
* Update Pyodide constraints
* Use 3.12 as the Python version instead of 3.12.7
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* chore: appease the formatter
---------
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* fix: enforce minimum version of docker/podman
This allows to always pass `--platform` to the OCI engine
thus fixing issues with multiarch images.
* Allow older versions with warnings
* Upgrade docker on Travis CI
* fix: use `docker cp` instead of `tar`
* Enforce docker>=24.0
* move log to include container.copy_into
* fix: travis-ci, only update docker on aarch64
* skip test_multiarch_image on s390x / ppc64le
* skip flaky test
* chore: only install test deps on Travis CI
* fix: do not try to pull images tagged `cibw_local`
* use "--pull=never" for local images
* Use docker image inspect to check if an image needs to be pulled
* 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>
Fix#1612
The hassle of updating these pins (both for us and our users, most copy our documentation) seems to outweigh the benefit of the pin. The truth is that they're not really pins anyway, Github update them all the time, and they don't work for historical repeatability because old images are retired all the time.