[Distutils] Q about best practices now (or near future)

Daniel Holth dholth at gmail.com
Sun Jul 21 19:52:11 CEST 2013


On Sun, Jul 21, 2013 at 12:10 PM, Paul Moore <p.f.moore at gmail.com> wrote:
> On 21 July 2013 16:46, PJ Eby <pje at telecommunity.com> wrote:
>>
>> Now that I'm thinking about it some more, one of the motivating use
>> cases for extras in entry points was startup performance in
>> plugin-heavy GUI applications like Chandler.  The use of extras allows
>> for late-loading of additions to sys.path.  IOW, it's intended more
>> for a situation where not only are the entry points imported late, but
>> you also want as few plugins as possible on sys.path to start with, in
>> order to have fast startup.
>
>
> This type of complexity is completely outside of my experience. So I'm going
> to have to defer to people who understand the relevant scenarios to assess
> any proposed solutions.
>
> But could I make a general plea for an element of "keep the simple cases
> simple" in both the PEP and the implementations, here? I think it's critical
> that we make sure that the 99% of users[1] who want to do nothing more than
> bundle up an app with a few dependencies can both understand the mechanisms
> for doing so, and can use them straight out of the box.
>
> Paul
>
> [1] Yes, that number is made up - but to put it into context, I don't
> believe I've ever used a distribution from PyPI with entry points depending
> on extras. In fact, the only case I know of where I've seen extras in *any*
> context is in wheel, and I've never used them even there.

The extras system is simple and more importantly ubiquitous with tens
of thousands of releases taking advantage of it. The proposed system
of also having separate kinds of build and test dependencies with
their own extras hasn't been demonstrated.

Entry points having extras is an extension of entry points having
simple distribution-level dependencies "entry point depends on
beaglevote" -> "entry point depends on beaglevote[doghouse]". I can
see how perhaps in the setuptools case it may have been more
straightforward to include extras rather than to exclude them.

Someone else may want to check again but the last time I checked all
pypi-hosted distributions for "entry points depending on extras" I
found none. It would be pretty safe to leave this particular feature
out.


More information about the Distutils-SIG mailing list