[Distutils] Comments on PEP 426 and 459
dholth at gmail.com
Tue Apr 8 14:44:35 CEST 2014
On Mon, Apr 7, 2014 at 11:59 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
> On 7 Apr 2014 23:15, "Daniel Holth" <dholth at gmail.com> wrote:
>> I read through the latest versions of PEP 426 and 459 "Metadata 2.0
>> and extensions". Here are my comments.
>> The PEP suggests "setup.py dist_info" is a thing. Only "setup.py
>> egg_info" works. It might make sense to refactor bdist_wheel to
>> include a dist_info command, but if done badly it would break
>> distributions that rely on the pluggable nature of .egg-info
>> generation (most every part of the egg-info directory is written by a
>> separate plugin).
>> Why do we care about "Source labels MUST be unique within each project
>> and MUST NOT match any defined version for the project."?
> Hmm, I think that stems from an earlier versions that allowed requiring a
> source label. I'll double check.
>> I still think meta distributions are unnecessary and hard to
>> understand. It's either a lot of trouble to try to discourage ==
>> dependencies while still allowing them sometimes, or an
>> overcomplicated way to try to define requirements.txt 2.0 by allowing
>> distributions that aren't exactly distributions.
> PyObjC at least needs them, and things like OpenStack releases would need it
> (if published through PyPI).
> Meta distribution is an essential part of encouraging decoupled component
> design, without increasing the complexity of consuming an overall "release".
Is the entire justification for this feature not "we don't trust you
to put == in run_requires", while exposing the same now-frustated
users to the same problem once they rename run_ to meta_? Instead of
having a separate but nearly identical top-level key, the == in
run_requires and not providing any actual modules could cause a
meta-distribution, and unwanted == in poorly written upstream
dependencies could be handled by a "patch" directive in the install
tool (like in buildout).
More information about the Distutils-SIG