[Distutils] pre-PEP : Synthesis of previous threads, and irc talks + proposals

Phillip J. Eby pje at telecommunity.com
Wed Oct 1 19:29:32 CEST 2008


At 02:10 PM 10/1/2008 +0200, Tarek Ziadé wrote:
>Proposals
>========
>
>this is also a synthezis of what I hurd, and some elements I have
>added to respect the needs that were expressed.
>
>0/ a lot of work can be done to clean distutils, no matter what is
>decided (another PEP is built for that) cleanning, removing old-style
>code, testing
>
>1/ let's change the Python Metadata , in order to introduce a better
>dependency system, by
>
>  - officialy introduce "install requires" and "test requires" 
> metadata in there
>  - mark "requires" as deprecated
>
>2/ Let's move part of setuptools code in distutils, to respect those changes.
>
>3/ let's create a simple convention : the metadata should be expressed
>in a python module called 'pkginfo.py'
>    where each metadata is a variable.
>
>    that can be used by setup.py and therefore by any tool that work
>with it, even if it does not run
>    a setup.py command.
>
>    This is simpler, this is cleaner. you don't have to run some setup
>magic to read them.
>    at least some magic introduces by commands

I'm -1 on all of the above.  I think we need a standard for tools 
interop (ala WSGI), not implementation tweaks for the existing 
tools.  I also think that a concrete metadata format proposal is 
premature at this time; we've barely begun to gather -- let alone 
specify -- our requirements for that metadata.  (Essentially, only 
version dependencies have been discussed, AFAICT.)

There have been many people agreeing that the distutils are 
thoroughly broken and a new approach is needed; these  proposals 
sound like minor tweaks to the existing infrastructure, rather than a 
way to get rid of it.  So to me, the above doesn't seem like a 
synthesis of the threads that I've been reading.


>4/ let's change PyPI to make it work with the new metadata and to
>enforce a few things
>
>Enforcements:
>     - a binary distribution cannot be uploaded if a source distrbution
>has not been previously provided for the version

Note that this doesn't allow closed-source packages to be uploaded; 
thus it would need to be a warning, rather than a requirement.


>New features:
>    - we should be able to download the metadata of a package without
>downloading the package
>    - PyPI should display the install and test dependencies in the UI

It could only do this for specific binaries, since dependencies can be dynamic.



More information about the Distutils-SIG mailing list