[Distutils] "setup.py needs to go away" (was [PEP 376] - Open questions on python-dev)

P.J. Eby pje at telecommunity.com
Thu Jul 9 19:27:56 CEST 2009


At 06:04 PM 7/9/2009 +0900, David Cournapeau wrote:
>I too would like to see this kind of system, and have been thinking
>quite a bit about it. Looks like I am not the only one.

For reference, here are some previous posts on this topic, suggesting 
some requirements and approaches:

http://mail.python.org/pipermail/distutils-sig/2008-October/010288.html
http://mail.python.org/pipermail/distutils-sig/2008-October/010343.html


>One such system is the haskell build system, cabal:
>
>http://www.haskell.org/cabal/release/cabal-latest/doc/users-guide/
>
>Among other things:
>     - It is based on a mostly static file, parsed by the cabal package.
>     - Installation of 'libraries' (equivalent of our modules and
>packages) and executables (scripts) is covered.
>     - Debug and normal build for compiled extensions is handled,
>metadata as well. Simple conditional for different platforms support.
>     - Optional haskell code ala setup.py can be executed for the
>complicated cases.
>     - optional integration with source control systems
>     - it has command lines option compatible with autotools ->
>FHS-compliant packages would be easier as well.
>     - cabal is integrated with a db of packages, to form hackage: it
>handles installations, dependency handling (but not uninstallation it
>seems). I don't have much experience with this part of the design, though.
>
>I think it is a good and strong baseline as a starting point.

If we really want setup.py to go away, the starting point *can't* be 
replacing it with something else, otherwise all of setup.py's 
requirements will infect it.  The BUILDS concept I proposed is a way 
of separating "build" features from "install" features in such a way 
that neither a standard build system *nor* a standard installation 
system are required in order to achieve interoperability.


>Under this scheme, backward compatibility with
>distutils could be attempted by automatically converting setup.py files
>to this system,

In BUILDS, I suggested that instead offering a distutils command to 
generate the metadata is a more implementable idea, with improved 
backward compatibility.



More information about the Distutils-SIG mailing list