Build+test multiple inter-dependent wheels in same cibuildwheel invocation. #1545
julian-smith-artifex-com
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I'd like to be able to tell cibuildwheel to build two wheels (we'll call them A and B) and test them together.
So i'd like cibuildwheel to build wheel A and then build wheel B, and then do
pip install B && pip install A && pytest A
.Given cibuildwheel's support for customised test commands, it seems like this might simply need cibuildwheel to gain the ability to run multiple build commands instead of one. In my particular case, i'd want the build commands to actually run in the same project directory, setting an environmental variable to tell my
setup.py
which of A or B to build.Some details: wheel A contains some Python code and shared libraries (generated with SWIG) that are specific to a Python version, and wheel B contains some (large) shared libraries that work with any Python version. Wheel A is made to require wheel B by setting
Requires-Dist
in A's metadata. [I guess i could build B completely separately and upload to pypi.org before attempting to build+test+release A, with pytest automatically downloading B from pypi.org, but i think it would simplify things if everything could be built together.]The reason for wanting this is that the project (PyMuPDF) is running out of space on pypi.org. Using a single wheel results in wheels for different Python versions on the same OS (e.g. Linux) each containing copies of the same (large) shared libraries, resulting in large space requirements on pypi.org.
Does anyone have any thoughts about how practical this would be?
Thanks,
- Julian
Beta Was this translation helpful? Give feedback.
All reactions