-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Replace old_build_ext with new_build_ext #4498
Conversation
For now it is work in progress. |
19cc83f
to
dc907dc
Compare
Ready for review. Maybe the question is about tests. I suppose they are needed. |
Co-authored-by: scoder <stefan_ml@behnel.de>
Co-authored-by: scoder <stefan_ml@behnel.de>
8e8f2bb
to
2c5b3ac
Compare
This reverts commit f7b0f7b.
daf42d6
to
ffea638
Compare
Added some additional tests, updated docs, fixed some small issues. Please let me know what is missing in this PR to be accepted. |
…ply an endlessly recursive import.
The only CI fails seems unrelated to this PR, maybe connected to #4503? Is there anything else to be added to this PR? |
…if setuptools gets in the way.
The CI failures also apply to master and other branches, so I'll assume they are unrelated – although I had hoped that the changes would actually help with them. |
Thanks @matusvalo ! |
@scoder @matusvalo This change killed some nasty dynamic A couple of questions:
Thanks! (I can open an issue for this, but if the answers to the above are "no" and "not very long", not much point 😉 ) |
I created #4568 to discuss this. |
@nitzmahone: pyyaml will likely have to move away from |
Would it make sense to move that discussion to issue ( #4568 ) |
I don't think we want to move the discussion back to Cython- this is all on us at this point to just redo PyYAML's build from a clean sheet of paper. That's been exactly the plan all along, but due to the sheer number of "knobs" provided by the old distutils mechanism to affect the build that had no way to be passed through (eg preprocessor defines, include dirs, linker directives, "just give me pure Python"), plus all the "organically-grown" logic that's crept in over the years (much of which is incomplete or plain broken today) we've been kinda stuck. Now that pip and setuptools have (somewhat recently) agreed on passing through options via config_settings, it's "only" a matter of completely obliterating most of The other thing that keeps me in "analysis paralysis" mode on this project is that some folks are poking at a libfyaml extension, which would be awesome to integrate, but that probably needs to be accounted for in the build design as well. The current distutils stuff sorta supports dynamic selection/build of multiple extensions (though it's been just libyaml for so long that in reality it's probably busted anyway). Doing libfyaml support as a separate top-level package or a namespace package causes all sorts of cross-pollination problems with OS packaged libs and stuff, so IMO if we're going to do that, it really needs to happen all in the main package build, with the extensions being embedded as proper subpackages. |
Yeah the Python build story is definitely going through some upheaval 😅 Though do think we will be happier with those changes eventually (maybe after things settle a bit) Was more wondering if this discussion made sense to track in an open issue (instead of a merged PR). Though maybe this info is already tracked in other places |
This PR adds options from
old_build_ext
tonew_build_ext
. Moreover, nowcython.Build.built_ext
points tonew_build_ext
.Fixes #3541