On Jun 1, 2017, at 7:53 PM, Jeremy Stanley <fungi@yuggoth.org> wrote:

On 2017-06-01 20:45:53 +0000 (+0000), Brett Cannon wrote:
I think *twine* is the tool that needs a way to specify how to
produce an sdist. If we want to view twine as the tool to upload
artifacts to PyPI then we need twine to know how to produce sdists
and wheels in a PEP 517 world, not pip.

Why do you think that? Because traditionally you could call setup.py
to upload an sdist as well as build it?

One thing I really like about twine, as the tool I trust with my
PyPI creds, is that it's a very simple tool unencumbered by
unrelated features. While I agree that the tool which retrieves and
installs packages doesn't necessarily also need to be the tool which
builds packages, I don't see why the tool which securely uploads
packages should take on that function either. In the UNIX sense of
doing one thing well, I'd much rather see a separate tool for each
of these roles.

I think a separate tool for each of these roles is somewhat user unfriendly TBH.

Splitting things across multiple projects tends to confuse users and increases the conceptual overhead. I sometimes wonder if we should be folding twine into pip itself, although keeping the split between twine == package authoring tool and pip == package installing tool seems like a reasonable enough divide.

Donald Stufft