I've been working on the dependencies to and from zope.publisher. 
Refining the dependencies should make it easier to integrate 
zope.pipeline when it's ready.

I've noticed that nearly all packages that depend on zope.publisher 
depend only on a few pieces of it:

   - zope.publisher.interfaces

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

   - zope.publisher.browser.TestRequest

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?

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

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.


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