-
Notifications
You must be signed in to change notification settings - Fork 149
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
Modernize Python bindings build system #2025
Conversation
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.
Awesome @amadio! I just scanned this now, so this isn't really a review, but just some things that hit me right away.
If you really don't want to use scikit-build(-core), I'd recommend looking at https://github.com/pybind/cmake_example/blob/master/setup.py, which still handles more situations than this does, like macOS ARM/Universal support. Though no editable installs and other features. |
At least for 5.x, I'd like to not add new dependencies, as @abh is rightly a fan of keeping dependencies to a minimum. For 6.0, we can look into moving to scikit-build, if the platforms we support have it readily available (i.e. via package manager). Indeed, I'm sure scikit-build covers more than what I did here, as I'm kind of new to the Python packaging ecosystem. This just covers the OSs we already support and what I identified and tested on my own machine and macOS. |
This is a rewrite of the packaging of the Python bindings. The new packaging supports building the Python bindings both as part of a standard CMake build, as well as against a previously installed version of XRootD without the Python bindings. A new setup.py at the top level has been created to replace the old one from packaging/wheel. It can be used to drive the main CMake build using pip to create source and binary distributions of XRootD. Closes: xrootd#1768, xrootd#1807 xrootd#1833, xrootd#1844, xrootd#2001, xrootd#2002.
This reverts commit eeb85d2. This should not be necessary anymore now that the build system has been updated.
This is a rewrite of the build system of the Python bindings, to solve some of the open tickets we have.
@henryiii Could you please review these changes? I'd appreciate your input.
@adriansev Could you also have a look to check that it would work for your use cases? Some of the open tickets this solves were filed by you. Thank you!
@matthewfeickert Since you've filed #1844, maybe you also want to review these changes.