-
-
Notifications
You must be signed in to change notification settings - Fork 38
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
Does not work with setup.py-less packaging? #105
Comments
Currently I run The other part -- recognizing a PEP-517 package -- is simple: instead of checking for setup.py, I'd have to check for pyproject.toml. |
It's a Python API - so any way you want to invoke the hook within isolated build environment. That could be It’s likely that we’ll get a “pip build” command if pypa will ever finish bikeshedding whether this should belong to pip, twine, or separate tool entirely.. |
pep517 seems workable, despite the "experimental" warning at the bottom. |
One more request: can you link me to a public GitHub repository of a project that uses PEP-517 builds so I have something I can test with? |
I've just pushed a minimal one for you to test with: Does that help? |
Thank you, that was very helpful! I've a working prototype in #106. |
@mgedmin Hi Marius, thanks for the prompt fix. I've tried it out this morning, it works good for setuptools. For other build systems such as flit and poetry the approach might not work. That's because check-manifest copies source files to a temporary directory before build, but those newer build systems use the VCS subdirs in order to auto-detect which files to include in sdist. There may be an exception during sdist build if the VCS dirs are missing. It's a moot point because the whole point of using vcs here is to avoid reinventing manifest (i.e. if you use something other than distutils/setuptools then you don't have or want a |
Yeah, Poetry was already mentioned in #103. MANIFEST.in seems like a very setuptools-specific thing, so perhaps it would make sense to check if pyproject.toml is using setuptools, and silently skip (without exiting with an error code) projects that use different build systems. I think I'll wait for people to ask for that explicitly before I start doing any more work. |
@mgedmin Just a heads up, the link back to this issue from |
Thank you! I'd created a vim snippet that generates these bad issue URLs, oops! |
As the PEP itself says, if pyproject.toml exists but doesn't have the build-system table or the build-backend key in it, then tools should fall back to legacy behaviour of running python setup.py. See #110 (comment) See also #105.
I use setuptools with declarative config (i.e. defined in
setup.cfg
) and build system inpyproject.toml
:This works fine to build wheels and sdist using the PEP 517 hooks (here).
But check-manifest doesn't recognize this as valid Python project.
The text was updated successfully, but these errors were encountered: