On Sun, Jul 21, 2013 at 12:10 PM, Paul Moore <p.f.moore@gmail.com> wrote:
On 21 July 2013 16:46, PJ Eby <pje@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.