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, 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, 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.

-- -- Professional Zope documentation and training
Zope3-dev mailing list

Reply via email to