On Tuesday 24 February 2009, Shane Hathaway wrote:
> I've noticed that nearly all packages that depend on zope.publisher
> depend only on a few pieces of it:
>    - zope.publisher.interfaces

Can you give examples?

>    - zope.publisher.browser.Browser{View|Page}
>    - zope.publisher.browser.TestRequest

Packages that depend on those classes usually more or less implicitly depend 
on zope.publisher. So the split might be arbitrary for this example.

> One simple, low-risk refactoring I would like to do is move
> zope.publisher.interfaces into its own package, make zope.publisher a
> namespace package, and make zope.publisher depend on
> zope.publisher.interfaces.  The __init__.py in zope.publisher is already
> empty, so I expect the namespace conversion to be safe.  Then I'd like
> to refine the dependency list of various packages that only require
> zope.publisher.interfaces.  Any objections?

I want to see some motivation, because I fail to see how this helps. 

> It is less clear what we should do with BrowserView and BrowserPage.
> They depend on zope.location, unlike the rest of zope.publisher, so they
> don't really fit there.  Perhaps those two belong in a new package,
> "zope.publisher.browserbase". 

I do agree moving BrowserView and BrowserPage out of the publisher because 
they introduce the zope.location dependency.

> There is also the tiny new "zope.browser" 
> package.  Would it make sense to move them there?  (It's hard to tell
> what the intent of the new package is.)  I'd love to hear other
> suggestions.

I think the purpose of the package is still defining itself. I think it will 
be defined by the things that we move into it. I am very tempted to say that 
it is a good home for BrowserView and BrowserPage.

> As for TestRequest, I could update the setup.py of various packages that
> currently depend on zope.publisher just for TestRequest.  I would make
> zope.publisher a test-only requirement.

TestRequest does not add any additional dependencies to the system, so what's 
the point? It will depend on zope.publisher.browser anyways.

Stephan Richter
Web Software Design, Development and Training
Google me. "Zope Stephan Richter"
Zope-Dev maillist  -  Zope-Dev@zope.org
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to