<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Martin Aspeli wrote:
<blockquote cite="mid:ff60gn$nn0$1@ger.gmane.org" type="cite">
  <pre wrap="">Fred Drake wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">On 10/17/07, Wichert Akkerman <a class="moz-txt-link-rfc2396E" href="mailto:wichert@wiggy.net">&lt;wichert@wiggy.net&gt;</a> wrote:
    </pre>
    <blockquote type="cite">
      <pre wrap="">A common issue we are seeing is that we have eggs depending on each
other, but they still need to load the zcml from those dependencies
somehow. As a temporary solution to play with the concept I added
something simple to the plone.recipe.zope2instance buildout recipe.
      </pre>
    </blockquote>
    <pre wrap="">What's the problem you're seeing?  I'm not sure what you're trying to
solve.  ZCML includes work just fine in the egg world.

As long as you're referring to packaged ZCML using
package="package.name" in your &lt;include&gt; and &lt;includeOverrides&gt;
directives, all is good.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
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.

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).
  </pre>
</blockquote>
<br>
I see a different win. At the moment we are declaring dependencies in
two places: in the egg information and in the zcml files. For every
package I need I need to make sure its zcml is loaded, which means I
need to have a meta.zcml, configure.zcml and overrides.zcml which load
the meta, configure and overrides from all packages I depend on. I also
need to inspect every package I depend on to check if they have a meta,
configure or overrides.zcml, which in my humble opinion should be just
an implementation detail that I, as someone who is just using the zope
stack/framework, should not need to know about. Multiply that with the
number of dependencies you see in zope.* and you see this becomes very
unwieldy.<br>
<br>
So I turned things around: if I state in my egg information that I
require another package that means I need to have that package
available and functional. Which suggests that its zcml has to be loaded
before mine. And that is exactly what I am doing: adding an entry point
that allows a package to say "in order to function I need to have these
zcml files loaded".<br>
<br>
Wichert.<br>
<br>
<pre class="moz-signature" cols="72">-- 
Wichert Akkerman <a class="moz-txt-link-rfc2396E" href="mailto:wichert@wiggy.net">&lt;wichert@wiggy.net&gt;</a>   It is simple to make things.
<a class="moz-txt-link-freetext" href="http://www.wiggy.net/">http://www.wiggy.net/</a>                  It is hard to make things simple.
</pre>
</body>
</html>