-
Notifications
You must be signed in to change notification settings - Fork 239
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[draft] Sketched out an explicit QEMU mode #1773
Conversation
for more information, see https://pre-commit.ci
# Conflicts: # cibuildwheel/linux.py
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for putting this together. my thoughts-
- no need to put this behind a new option, IMO. We can add the --platform always
- we shouldn't fiddle with the container_engine_config, instead, pass the architecture into OCIContainer, and map it as appropriate in there
- For arm64, I see you specified
linux/arm64/v8
, I wonder if we can be more vague and leave out the variant here and just say e.g.linux/arm64
…CIContainer class
for more information, see https://pre-commit.ci
Implemented your suggested changes. Unfortunately I'm getting failed tests in CircleCI when setting
Also, this is failing: https://dev.azure.com/joerick0429/cibuildwheel/_build/results?buildId=5690&view=logs&j=65f37ddb-1a35-539a-d91f-4ab7f01a34d0&t=677308e5-f586-5eb1-7f4b-3c9712904030&l=1767. Seems like a
Since |
Hmm. this kind of detail makes me less sure that manually specifying the platform is the right approach.
It's not experimental since Docker API v1.32, guess Circle are lagging pretty bad there. But given this route is still in the process of rolling out, I think a better option would be for you to use |
It's now possible since #1792 to use |
This is a very primitive sketch of forcing
cibuildwheel
to execute a given docker build container in the platform mode that corresponds to the wanted wheel architecture. This should only have an effect when doing non-native platform wheel builds through QEMU.Possibly interesting since I noticed that all build containers run commands are given no further platform information, even if an image could not be executed natively and has to be run through QEMU. This should work because of the binfmt_misc feature of the linux kernel, but for some reason I saw this crash catastrophically in this issue in a Github Action: #1771.
This would also remove these warning messages that docker prints out:
Note that this is just a sketch and not intended to be merged. Let me know what you think about this in general.