[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:
>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
>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
> - 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.
> - 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