[Zope3-dev] Re: zope.testbrowser packaging

Philipp von Weitershausen philipp at weitershausen.de
Sat Sep 15 10:43:53 EDT 2007


Benji York wrote:
> I have a small issue with zope.testbrowser packaging I'd like to get 
> some input on.  If I were to have started the project today, it would 
> likely have been zc.testbrowser, which would have no Zope 3 dependencies 
> (or functionality) and zc.testbrowser.zope, which would have, and 
> depended on zc.testbrowser.  Well, that didn't happen, but there are 
> parallels to the current situation that might be informative.
> 
> There is a configuration bug in testbrowser that means that unless you 
> include the "test" extra, you won't get the Zope 3 dependencies.  I 
> suspect most people either include that extra, or accidentally include 
> the dependencies through other packages.  I have two ideas for fixing this:
> 
> 1) introduce a "zope" extra that everyone will have to use (basically 
> just rename "test" to "zope";
> 
> 2) take a lesson from the fictional zc.testbrowser and introduce another 
> package (zope.testbrowser.zope) that contains the Zope 3 bits and 
> depends on zope.testbrowser.

I think this would be very hard if not impossible to do from a packaging 
perspective (declaring zope.testbrowser a namespace package *and* have 
it contain things like README, configure.zcml, etc.).

> I think I prefer the second, despite it's strange appearance.  Thoughts?

Let's look at this from the beginning. zope.testbrowser contains

a) a reusable, completely Zope-independent test browser

b) integration with zope.app.testing.functional, in other words a test
    browser for testing web applications based on zope.publisher.

I think in its current use, zope.testbrowser is *mostly* used as b). 
When used as a), I don't think anybody is bothered by the fact that it 
might or might not have more dependencies (other than the inconvenience 
of having to install more stuff than actually necessary).

So here's what I suggest: Factor out a) to a new package 
'zc.testbrowser' (or whatever) and make 'zope.testbrowser', the 
remaining b), depend on zc.testbrowser, zope.app.testing and all that 
other stuff properly.

That way

- packaging and nomenclature are straight-forward,

- we don't have to break backwards compatibility anywhere,

- people who have used 'zope.testbrowser' because of a) until now won't 
experience any problems, even though we should probably tell them to 
switch to zc.testbrowser.



-- 
http://worldcookery.com -- Professional Zope documentation and training


More information about the Zope3-dev mailing list