-
Notifications
You must be signed in to change notification settings - Fork 121
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
Fix python setup.py build sdist #84
Comments
I'm taking a look at this now, and the way to handle this is not trivial. Distutils and setuptools expect to have information about extension modules and their sources. Because we're preempting their build logic, we're effectively removing the information that they need to correctly produce a source package. We would need to provide our own mechanism for identifying the files that should be included in an sdist tarball. One possibility is to include (yet another) CMake module with a function that you would call on each of your source files. Then, we can configure the build and inspect the output of that function without having to actually build anything. I'm open to other ideas. |
Currently SimpleITK has a script files it uses to create tar ball [1]. The important thing to determine is what is needed to enable pip to be able to download, build and install from a source or tarball. [1] https://github.com/SimpleITK/SimpleITK/blob/master/Utilities/Maintenance/SourceTarball.bash |
Basically, we need packages that use skbuild to provide their own version of "install_manifest.txt", but for their sources. It could be a created by the CMake project, a package-specific script, or just a flat text file. |
Do you have an example of this structure where the "install_manifest.txt" is used for the source tarball? From scikit-build I don't see install_manifest.txt in sdist? |
For reference, here is the documentation: |
Right, I forgot distutils was already doing this! So, it looks like the best solution is to simply not change the paths to the various If so, this would be much less work than I had originally feared! :) |
Could we generate a sensible default if not explicitly present? If If those defaults do not work for projects, then they could write a MANIFEST.in file... |
@thewtex yes, that sounds reasonable to me. |
* setuptools-topic-reorganized: Refactor tests introducing reusable decorators. See #63, #78 style: Rename distutils_wrap to setuptools_wrap Introduce bdist and bdist_wheel command. Fixes #84, Fixes #85 Add setuptools dependency. Fixes #68 cmaker: Reintroduce exceptions when using sysconfig style: Simplify distutils_wrap removing intermediate var style: Fix indent in cmaker
* setuptools-topic-reorganized: Refactor tests introducing reusable decorators. See #63, #78 style: Rename distutils_wrap to setuptools_wrap Introduce bdist and bdist_wheel command. Fixes #84, Fixes #85 Add setuptools dependency. Fixes #68 cmaker: Reintroduce exceptions when using sysconfig style: Simplify distutils_wrap removing intermediate var style: Fix indent in cmaker
Checking current master, this issue has yet to be addressed. |
@thewtex That's right. sdist handling is still on the todo list. But, building wheels from a manual checkout should work. |
Implement source distributions. fixes #84
Currently this creates a tarbal with the contents of _skbuild/cmake-install.
Instead, it should contain the project source code so that the sdist can be
downloaded and a platform-specific binary wheel can be created from it.
The text was updated successfully, but these errors were encountered: