-
Notifications
You must be signed in to change notification settings - Fork 255
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
feat: support pypa build #521
Conversation
Might be easier if pypa/manylinux#941 is accepted. |
fb912fd
to
1189888
Compare
pypa-build builds in a virtual environment, so the path check in setup.py test is incorrect. It sees the executable we require in the first step, and the build virtual environment path in the second. Any ideas about how to change the check? Wouldn't an exact version check be enough, perhaps? We could provide a second version of it without this check? Etc. |
This should probably be seen as a proof of concept until pypa/manylinux#941 goes in, because we currently don't touch the contents of the manylinux image. |
1189888
to
ad0bfff
Compare
BTW, I wouldn't be opposed to releasing PyPA build support before pypa/manylinux#941, given that this would be advertised as 'experimental' for now anyway. |
I've included pypa/build in manylinux now, including manylinux1 for Python 2.7 (!), but we can't use it because we've pinned manylinux2010 to a version before that addition. Honestly, I don't think dropping 2.7 support for manylinux2010 but keeping it for manylinux1 for now would be that big of an issue for a 1.11 release. We have very few users using manylinux2010 anyway, and even fewer of them making 2.7 wheels. Requires-Python support already helps, and we could check to see what Pythons are in the image and limit to that, producing an error if any are missed that are included by Requires-Python, and a warning if Requires-Python is not set. |
64c6668
to
60e7cdf
Compare
Does the PyPy image not contain build? |
It seems they are base on an old manylinux2010 image so no pypa/build yet. |
pypy/manylinux#16 has been merged. The new image should have build (& auditwheel 4) |
3a77186
to
7b9b8e2
Compare
Originally posted by @henryiii in pypa/manylinux#1055 (comment) This means no build in pypy/manylinux, which is why this PR is failing. |
Switched to quay.io/pypa/manylinux2010_x86_64 for PyPy while waiting for #671 just to see what the tests look like on GHA (need to rebase to get CI green) |
Windows is failing on PyPy 7.3.3 + build:
|
Same error with PyPy 7.3.5 |
I also think there are a few tests I need to update the output checking on, will look into that later. |
@henryiii, rebased on |
Looks like it's checking the exact pip versions, which is not true in the env created by build. |
This is the issue for macOS. |
I investigated a bit the issue with PyPy on Windows. |
The only test failing now is
|
I implemented the hack mentioned in pypa/build#292 just to see if everything passes with it. Not sure it's a good idea to implement such a hack. |
6f90957
to
592a270
Compare
# we use shell=True here for windows, even though we don't need a shell due to a bug | ||
# https://bugs.python.org/issue8557 |
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.
This would be simpler with #672?
What's the status of this, @mayeut? |
Short status:
Open questions / things to do:
I'll most likely be offline for the next 2 weeks so not planning on adding more things here. |
A thought on options design - rather than More of a future-proofing measure, really. I've noticed some other tools offering themselves as build frontends... e.g. poetry might start building platform wheels, or something else like https://github.com/FFY00/trampolim might crop up... I suppose that in theory they should 'just' be invoking the build backend, but we can't predict the future! |
I'll change |
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
4c5368c
to
e2cf2a8
Compare
I squashed the previous commits to make it easier to rebase and modify for the new config setup. I then switched to using |
e2cf2a8
to
f7d31fc
Compare
Put some basic docs in, happy to take improvements. |
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.
oops, i missed these earlier...
Yes, this does seem like a bit of a hack.. the use of PIP_CONSTRAINTS seems like exploiting an implementation detail of
Since use of |
I think this would break PEP 518; I think the current constraints is preferable for now.
I think that's how I started, and that's why I had that assert commented out; I was trying to run everything with build. But I could be wrong. |
This will close #442.