-
-
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
RFE: option to ignore pep517 and force the use of setup.py sdist (was: Problem with v0.41 and poetry) #111
Comments
AFAIU Poetry is a setuptools replacement that doesn't use MANIFEST.in. I don't think check-manifest is a useful tool for Poetry users. (It's been brought up before in #103.) I haven't used Poetry myself. I'm not sure if its include/exclude settings are used for source distributions, or just binary distributions. In any case, MANIFEST.in is a setuptools feature and I wouldn't expect all other build backends to consider it. I'm curious that you mentioned the check-manifest version number. Are you saying that check-manifest 0.40 worked better for you on a project that uses poetry? But I thought poetry didn't use setup.py at all, so how could have check-manifest even work? Was your project actually using two alternative build systems (setuptools and poetry) at the same time? |
@mgedmin thanks for the quick response. Yes, I am using both pyproject.toml and setup.py for backward compatibility. Regarding the What concerns check-manifest: If you say MANIFEST.in is a setuptools feature only, then shouldn't you build the source distribution with setuptools, or use pep517 only in case that the build-backend is known to support MANIFEST.in? |
That is a use-case I hadn't considered before. It makes sense to support it. Perhaps a command-line option (
Well, people requested PEP 517 build support (#105), so I added it. I think it makes sense to check if source distributions contain all the files you expect them to contain, no matter what build system you use to produce the source distributions. And "manifest" can be used in the general sense of list of things inside a package, so even check-manifest's name still makes sense. (I'll have to change the documentation to de-emphasize MANIFEST.in, to reduce confusion.) |
Yes, it boils down to the question how to build the sdist when both setup.py and pyproject.toml exist. The suggested option would be a solution. Or just build both ways and check whether in both cases the sdist contains the necessary files. If both are incomplete, count this as an error. If both are complete, count it as no error. If only one of them is complete, the igrore-pep517 option could then determine whether this case should be considered an error or just a warning. |
This appears to cause an issue with Edit: I think this is pebkac, please ignore! |
Thanks for providing check-manifest. This is really useful.
However, I ran into a problem with v0.41. Since this version, when a
pyproject.tom
file is detected which hasbuild-backend
specified, then the sdist is built withpep517.build --source
instead of the usualsetup.py sdist
.However, this does not seem to work with poetry. In my
pyproject.tom
I havebuild-backend = "poetry.masonry.api"
, so check-manifest usespep517.build --source
. However, that command does not seem to care about theMANIFEST.in
file, and does not put the files listed there in the sdist.I'm not sure what's going wrong here. Should build backends generally consider
MANIFEST.in
and poetry just fails to do this? Or am I supposed to specify my sdist files differently fromMANIFEST.in
, maybe somewhere inpyproject.toml
?The text was updated successfully, but these errors were encountered: