-----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@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-----