
I'd like to call "Ya aint gonna need it" on the extras feature of setuptools. As far as I can tell, extras are just a way to avoid fine-grained packages. Is this benefit worth the complexity? I don't think so. It violates "There's Only One Way To Do It" and increases the complexity of setuptools. Setuptools is wonderful but it is complex. I think it would be helpful to make it simpler and I really don't see a need for extras. I think a similar argument could be made against the tests_require feature. (In the presence of the extras feature, it's puzzling that this isn't handled as an extra.) Jim -- Jim Fulton mailto:jim@zope.com Python Powered! CTO (540) 361-1714 http://www.python.org Zope Corporation http://www.zope.com http://www.zope.org

On 10/22/06, Jim Fulton <jim@zope.com> wrote:
I'd like to call "Ya aint gonna need it" on the extras feature of setuptools.
actually I find it as a very interesting way of implementing a plugin architecture. in fact I was thinking of trying it out with a project I'm working on like an hour ago. I have 2 main objects Sources and Bots (aka interfaces) and then I have Sources as in MysqldbSource ,SQLObjectSource, SQLAlchemySource,etc. and Bots as in JabberBot, GoogleBot, MSNBot. Also eventually people will subclass std Sources to get their own, set of data "publish" on the system As you can see a "basic" instalation of this will be at least 1 bot and 1 source then everything else will get installed as optional packages.
As far as I can tell, extras are just a way to avoid fine-grained packages. Is this benefit worth the complexity? I don't think so. It violates "There's Only One Way To Do It" and increases the complexity of setuptools.
Setuptools is wonderful but it is complex. I think it would be helpful to make it simpler and I really don't see a need for extras.
I aggree on that, I have been around it for some time now and I'm still confused :)
I think a similar argument could be made against the tests_require feature. (In the presence of the extras feature, it's puzzling that this isn't handled as an extra.)
I have never use/seen that one.
Jim
-- Jim Fulton mailto:jim@zope.com Python Powered! CTO (540) 361-1714 http://www.python.org Zope Corporation http://www.zope.com http://www.zope.org _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig

Jim Fulton wrote:
I'd like to call "Ya aint gonna need it" on the extras feature of setuptools.
As far as I can tell, extras are just a way to avoid fine-grained packages. Is this benefit worth the complexity? I don't think so. It violates "There's Only One Way To Do It" and increases the complexity of setuptools.
FWIW, I find it too difficult to communicate what extras mean, so I haven't used them. If something is really optional, then I just make it optional, and if you want to use that option you have to require the necessary package. Otherwise it's easier to do package refactoring to keep the dependencies straight-forward. For tests I'd rather just produce errors that are useful, and let people figure out from there that they need to add another package. Part of why I find the requirements system hard to depend on is that the errors are very hard to understand, so I'm inclined to keep the requirements fairly course-grained.
Setuptools is wonderful but it is complex. I think it would be helpful to make it simpler and I really don't see a need for extras.
I think a similar argument could be made against the tests_require feature. (In the presence of the extras feature, it's puzzling that this isn't handled as an extra.)
A reluctance to make a specific extra name as special? Otherwise yes, it seems clear enough to just make it an extra. -- Ian Bicking | ianb@colorstudy.com | http://blog.ianbicking.org

At 10:52 AM 10/22/2006, Jim Fulton wrote:
I'd like to call "Ya aint gonna need it" on the extras feature of setuptools.
As far as I can tell, extras are just a way to avoid fine-grained packages. Is this benefit worth the complexity? I don't think so. It violates "There's Only One Way To Do It" and increases the complexity of setuptools.
Setuptools is wonderful but it is complex. I think it would be helpful to make it simpler and I really don't see a need for extras.
I think a similar argument could be made against the tests_require feature. (In the presence of the extras feature, it's puzzling that this isn't handled as an extra.)
tests_require and setup_requires don't get installed; extras are. Also, the mechanism involved is different; you have to have a valid distribution object in order to reference its extras, and when tests_require is being processed, you may not have that yet. (I don't know without looking at the code, and I'm on the road right now.) Anyway, I don't see tests_require as having any relationship to extras; many packages don't have installable tests, for example.
participants (4)
-
Ian Bicking
-
Jim Fulton
-
Jorge Vargas
-
Phillip J. Eby