-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Include pyproject.toml in sdist #1650
Conversation
We should probably defer this until at least |
Is this still deferred? |
@gaborbernat Yeah. As it stands now I also suspect that making this change will break many things because, right now, there are a decent number of projects out there that will break if they use PEP 517 in some situations, and they may be relying on the fact that they are not including the We should probably defer this until PEP 517 is more stable, possibly until PEP 517 is the default for all builds. |
In that case, let's close it and we can revive it later if needed. |
I'm not sure I understand what this means? More stable, default? It's already out for at least a year and the default build mechanism in pip for 6 months. In my view no better time than today. |
Agreed, if " a decent number of projects [...] may be relying on the fact that they are not including the pyproject.toml in their sdist", then they are relying on faulty behavior. That shouldn't deter setuptools from doing it right. Especially since this does not seem to work:
|
That issue was addressed in #1927.
I agree also. It should be possible to make progress without waiting (essentially forever) for usage of the old behavior to drop to zero. I notice that setuptools excludes pyproject.toml. Is that a viable workaround for projects that wish to retain this undesirable behavior? |
Tentatively confirmed - when building setuptools sdist against this PR, it does not include pyproject.toml, suggesting that the I'm inclined to proceed with this PR. |
@jaraco I think we might need more details here. This is yet another case where having a docker container or some other mechanism for making a change and then installing the top 100 packages on PyPI would be very helpful. If we do this and it breaks source installs of one of a popular but infrequently-released package on PyPI, we're going to get a lot of people pinning One possible "soft launch" version of this is to start by only including Things that break when installed via PEP 517 are somewhat rare, but most of the complaints come from people who are not using If we could test both changes against a random smattering of PyPI projects I'd probably be able to form a stronger opinion here. |
Does the filelist logic allow for something like “include pyproject.toml by default, unless the user lists it as |
@uranusjr IIRC that is how |
So I was thinking about this and I realized that I had the people this could affect wrong. I was thinking that this change might break projects already uploaded to PyPI when built from source distributions, but this will only change new source distributions built with Since there's no chance of it hitting anyone installing from existing PyPI distributions, the most likely "this causes breakage" scenario is that someone cuts a release that includes I think we can probably skip the "only include it if it has a The main thing we really have to worry about is people who blacklist |
This is a re-submit of #1634, which was backed out due to an unexpected regression.
Closes #1632
Pull Request Checklist