[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