wolverdude / GenSON

GenSON is a powerful, user-friendly JSON Schema generator built in Python.
MIT License
584 stars 64 forks source link

MANIFEST.in: Add test fixtures #53

Closed jayvdb closed 3 years ago

wolverdude commented 3 years ago

Hi @jayvdb, thanks for submitting this fix. Could you say more about what the fix is for? I'm guessing that you're of the school that all of the source is part of the package?

Based on my own quick looking into this, it appears that we may not even need a MANIFEST.in at all, and can instead just use setuptools_scm.

jayvdb commented 3 years ago

Hi @wolverdude , the rationale is that the sdist on PyPI already has the tests, and only excludes these two very small .json files which some of the tests rely on.

I have created a package for openSUSE, and needed to manually add the those two json files. c.f. https://build.opensuse.org/package/show/devel:languages:python/python-genson

openSUSE will appear on https://repology.org/project/python:genson/versions soon as the package makes its way through the QA systems into the Tumbleweed distribution.

I am of the school that PyPI sdists should be testable, like R and Perl and rust and nearly every other language package archive. If this makes the sdist prohibitively larger, that is an additional argument for also distributing wheels, which should be done anyway. But that argument doesnt appear especially relevant here.

I only know if setuptools-scm 's capacity for organising the versioning. Its readme says that it includes all the SCM files, but I am not familiar with that. IMO it is still better to explicitly list all files. I use check-manifest in CI to handle includes/excludes and also ignores.

wolverdude commented 3 years ago

CI is blocking merge at the moment, but it has nothing to do with this PR. It appears that the culprit is nose as a test dependency. I'll see if I can remove it, but I probably won't have time to do that for a couple weeks. I'll go ahead and merge this now anyway.