[Distutils] Q about best practices now (or near future)

Nick Coghlan ncoghlan at gmail.com
Thu Jul 18 14:13:23 CEST 2013

On 18 Jul 2013 21:48, "Oscar Benjamin" <oscar.j.benjamin at gmail.com> wrote:
> On 17 July 2013 22:43, Nick Coghlan <ncoghlan at gmail.com> wrote:
> >
> > On 18 Jul 2013 01:46, "Daniel Holth" <dholth at gmail.com> wrote:
> >>
> >> On Wed, Jul 17, 2013 at 11:12 AM, Brett Cannon <brett at python.org>
> >> > I'm going to be pushing an update to one of my projects to PyPI this
> >> > week
> >> > and so I figured I could use this opportunity to help with patches to
> >> > the
> >> > User Guide's packaging tutorial.
> >> >
> >> > But to do that I wanted to ask what the current best practices are.
> >> >
> >> > * Are we even close to suggesting wheels for source distributions?
> >>
> >> No, wheels don't replace source distributions at all. They just let
> >> you install something without having to have whatever built the wheel
> >> from its sdist. It is currently nice to have them available.
> >>
> >> I'd like to see an ambitious person begin uploading wheels that have
> >> no traditional sdist.
> >
> > Argh, don't even suggest that. Such projects could never be included in
> > Linux distribution - we need the original source to push into a trusted
> > build system.
> What do you mean by this?
> I interpret Daniel's comment as meaning that there's no setup.py in
> the sdist. And I think it's a great idea and that lots of others would
> be very happy to ditch the setup.py concept in favour of something
> entirely different from the distutils way of doing things.

No, that's not what he said, he said no sdist at all. Wheel fills the role
of a prebuilt binary format, it's not suitable as the *sole* upload format
for a project.

Tarball, sdist, wheel. Three different artifacts for three different phases
of distribution.

> In another thread you mentioned the idea that someone would build
> without using distutils/setuptools by using a setup.py that simply
> invokes an alternate build system that is build-required by the sdist.
> That's fine for simple cases but how many 'python setup.py <command>'s
> should the setup.py support?

Please read PEP 426, as I cover this in detail. If anything needs further
clarification, please let me know.


> Setuptools setup() supports the following:
> build, build_py, build_ext, build_clib, build_scripts, clean, install,
> install_lib, install_headers, install_scripts, install_data, sdist,
> register, bdist, bdist_dumb, bdist_rpm, bdist_wininst, upload, check,
> rotate, develop, setopt, saveopts, egg_info, upload_docs,
> install_egg_info, alias, easy_install, bdist_egg, test
> (Presumably bdist_wheel would be there if I had a newer setuptools).
> Oscar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20130718/c15f9d63/attachment.html>

More information about the Distutils-SIG mailing list