-
-
Notifications
You must be signed in to change notification settings - Fork 53
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
Package C extension to wheel #225
Conversation
Thanks for your contribution. I have some questions:
I see some remaining TODOs:
|
Thank you for the review.
|
@adamchainz @ringsaturn @joshuadavidthomas Can anyone jump in an help me out here? I am currently too busy to read into this, but I don't want to leave this valid PR pending. |
Thanks for reaching out, however I'm too busy to handle this. I suggest to get in touch with https://github.com/hugovk who help ujson's development a lot ultrajson/ultrajson#343. |
I can make an initial implementation of cibuildwheel next week, but it will be complicated to test it properly. |
@jannikmi Appreciate the ask, and I wish I could lend a hand, but I have only ever worked with pure Python packages and have never written a line of C code in my life. I'm not sure how much help I can be. 🫤 |
Thanks. I am sorry this topic is too far from my area of expertise that I cannot be of much help. What would you need to test the changes? |
Sorry for the delay - I've got sick. I added support for cibuildwheel. Now the pipeline will create sdist (no binaries inside) and a bunch of binary wheels with a prebuilt clang-pip extension for each python version. All of them are uploaded to PyPi. I've added a temporary stage See the experimental setup here |
Thanks a lot for your work! Unfortunately i had to disable the |
Yes, it doesn't allow to publish even to TestPyPi from PRs. It's a proper security measure, I think. Since we've verified that all files are gathered by the last step, you can easily drop verify step, it is not needed anymore. |
We need to drop "test-publish" and a dependency to this step |
Existing published wheels do not include the native C extension
inside_polygon_ext
. The default distribution could be quite slow if the library consumer doesn't install Clang, GCC, and ffi-dev to build dependencies. To clarify, it doesn't relate to Numba support.Added an
auditwheel
check to the GitHub Actions check extension compatibility with manylinux specification. It's probably needed to adjust it based onauditwheel
check.How to verify check C extension support:
assert(TimezoneFinder.using_clang_pip())
. Checked it on a local project with a private PyPi repository.