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.
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig