[Distutils] RFC: Updating PEP 345
Tres Seaver
tseaver at palladion.com
Fri Apr 10 15:19:13 CEST 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Jim Fulton wrote:
> On Apr 9, 2009, at 6:40 PM, Tres Seaver wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Jim Fulton wrote:
>>> On Apr 9, 2009, at 12:55 PM, Tres Seaver wrote:
>>> ...
>>>> I have backed off on the notion of overloading 'Requires:' /
>>>> 'Provides:'
>>>> / 'Obsoletes:', following Jim's notion of deprecating them in
>>>> favor of
>>>> new fields. I named them 'Requires-Dist:', 'Provides-Dist:', and
>>>> 'Obsoletes-Dist'.
>>>>
>>>> "Stock" distutils should probably spell the arguments to
>>>> distutils.core.setup predictably: 'requires_dist', 'provides_dist',
>>>> 'obsoletes_dist'. setuptools can treat 'install_requires' as an
>>>> undeprecated alias for 'requires_dist'.
>>>
>>> What is the rational for this? I'd strongly prefer the "requires"
>>> argument name to be compatible with setuptools. Otherwise, I think
>>> we'll introduce needless confusion.
>> I'm aiming for self-consistency within the 'PKG-INFO' field names:
>>
>> - 'Requires'
>> - 'Requires-Python'
>> - 'Requires-External'
>>
>> The 'Obsoletes' and 'Provides' fields also need
>> distutils-project-oriented versions, so picking a suffix ('-Dist')
>> which
>> matched for them seemed cleanest.
>>
>> Add that to the fact that setuptools has no way (yet) to spell
>> 'provides' or 'obsoletes', and it seemed to me clearer to just make
>> setuptools current argument an alias for the "consistent" version to
>> be
>> landed in distutils.
>
>
> I get that. In fact, I already got that. :) I think backward
> compatibility with existing wide usage is more important and not
> incompatible.
>
> So then I suggest we change the field and option names to (adjusting
> capitalization as necessary): install_requires, install_provides, and
> install_obsoletes.
>
> I'm a very strong -1 to requires_dist.
I think we need to distinguish the spelling of the arguments passed to
setup() from the fields written into PKG-INFO. At the moment, there is
a very widespread usage of 'install_requires' among setuptools-based
packages. How that argument maps onto PKG-INFO fields (which is what
PEP 345 is really about) is open to some debate.
I think consistency *within* PKG-INFO fieldnames is more important than
consistency between setup arguments and the corresponding fieldnames:
for instance, distutils.core.setup already defiens a 'url' argument,
which maps onto 'Homepage-URL' in PKG-INFO.
We could use the names you proposed for arguments to 'setup()', and
still use the names I proposed for PKG-INFO. There is one more new
argument to setup() we should consider, which might be spelled
'build_requires', and which would map onto the 'Requires-External'
PKG-INFO field.
Tres.
- --
===================================================================
Tres Seaver +1 540-429-0999 tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFJ30dR+gerLs4ltQ4RAhYHAKDY971Z0WOVGWMWUaGML42ByTNguwCfb5gX
a6/EZb+J/4T+XgtMBSoCgLs=
=rhm+
-----END PGP SIGNATURE-----
More information about the Distutils-SIG
mailing list