-
Notifications
You must be signed in to change notification settings - Fork 124
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
Refactor cibuildwheel setup #276
Conversation
2cf3f52
to
fec75fb
Compare
fec75fb
to
cb719ba
Compare
After this is merged we should consider cutting a 1.0.2 release so that we'll have wheels that can be installed on Python 3.12. |
The failures with The macos wheels are also a bit odd. The previous build had two platform tags |
Oh wait, the previous builds worked for Things are running oddly smooth for Windows, however! Additional platforms could be considered. |
67d2b55
to
9041825
Compare
I've enabled cp312 testing to see what happens. Currently testing is only possible on Linux, but all of the platforms show a consistent error. See #277 for this issue. Output of error
|
Finally ready for review. A few notes:
|
Me! Where can I download the wheel? |
Would it be possible to have separate wheels for x86_64 and arm64 on macOS? We might see better performance if binaries aren't running through Rosetta. |
Go to the "Summary" of any build (e.g. here), scroll to the bottom and find the "Artifacts", e.g. macos-latest-whl. As for separate macos builds, sure I can take another look at the repair wheel script. As mentioned previously, I don't really understand much about the macos stuff, so advice would be appreciated. |
I was able to import rtree. Anything else I should test? I don't know much about cibuildwheel but I know some stuff about macOS. I'm going to guess that the macOS platform tag args are an artifact of when macOS arm64 first came out and no one had runners to properly build it so they instead built a single universal wheel. Are there any other repos that do something similar to this (single wheel for all Python versions) without universal wheels? I feel like there should be an easier way to do this than having a repair script... Maybe reach out to the cibuildwheel devs? @pradyunsg @rgommers may also have ideas on how to create platform-specific Python-version-independent wheels with cibuildwheel. |
2fae967
to
90e4990
Compare
* Move before-all to before-build * Remove delocate-wheel --require-archs (for now)
Note the previous macos artifacts have |
@adamjstewart mind testing the latest artifacts again? There are now two macOS wheels, each with only one architecture. Importing rtree is the first smoke test. But I suppose a performance benchmark would be more useful. There is no easy benchmark, unfortunately. The closest is benchmarks.py.off by @hobu |
New artifacts work great:
|
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.
Once this is merged we should think about cutting a 1.0.2 release so we have wheels for Python 3.12
Thanks all for testing and feedback! Last few things to mention.
|
There are a few aims in this PR:
rtree/lib
; close Linux binary wheels have two copies of libspatialindex #270importlib.metadata.files
)The repair_wheel.py script was modified from cmake-python-distributions. Admittedly, there are several things that I don't understand, but have left alone. It uses
wheel unpack
andwheel pack
to modify the binary wheels.