On 10/17/07, Martin Aspeli <optilude@gmx.net> wrote:
The main win, IMHO, is to avoid the requirement for people to install slugs for third party products. Slugs suck - they are confusing to explain and people forget them all the time. Buildout makes it a bit easier, but it's still not a terribly good solution.
Slugs are evil; agreed. We never use them. They were an accident of the "instance" tree inherited from older versions of Zope, and how that tree was re-interpreted for Zope 3. They never worked well, and did no one any favors.
For example, say you want to install oi.plum. You need to add the line 'oi.plum' twice - once under 'eggs' and once under 'zcml' in your buildout.cfg. Forget the latter, and the package doesn't work properly (or at all).
I actually really like this; I don't get the configuration for a package unless I ask for it. It's not unusual to want only the code and not the default configuration for a package.
If we had entry points, we could just load the egg. Internally, oi.plum may use <include /> as much as necessary to load *its* dependencies, but that's not something the user of the package needs to worry about.
Requiring a package doesn't say anything about how it's going to be used; making an assumption about that is really bad.
If Zope loaded entry-point ZCML automatically (maybe with an on/off switch in zope.conf for those who need more fine grained control) that'd be a pretty nice solution.
I suspect I'd always want it off. Picking up configuration willy-nilly is too dangerous. -Fred -- Fred L. Drake, Jr. <fdrake at gmail.com> "Chaos is the score upon which reality is written." --Henry Miller