[Zope-dev] package dependency refactoring progress report

Martijn Faassen faassen at startifact.com
Sat May 23 14:59:34 EDT 2009

Hey Shane,

Shane Hathaway wrote:
> Shane Hathaway wrote:
>> Martijn Faassen wrote:
>>> So, the only dependency cycles left in zope.app.publisher are these:
>>> zope.app.publisher <--> zope.app.publication <--> zope.app.http
>> I fixed those tonight.  On the trunk, there are no longer any 
>> dependencies between zope.app.publisher, zope.app.publication, and 
>> zope.app.http, except testing dependencies.
> I should take a moment to describe the different purposes of these 
> packages as I see them now.  Conceptually, they are really quite 
> independent.

Thanks for doing this analysis, and considering improved naming. I think 
good naming is very important, and it will help get this functionality 
out of the 'zope.app' ghetto.

> - zope.app.publisher: A library of ZCML directives for configuring 
> views.  Also provides generic view classes.  A better name for this 
> package might be "zope.basicviews".  A lot of packages depend on this.

I'm not sure 'basic' needs to be in there. Do we have anything less basic?

What about simply calling it zope.view? (I don't like the plural in 
package names either generally)

> - zope.app.publication: Provides IPublication implementations and a 
> mechanism/registry for choosing a different publication class for each 
> request.  Most packages should not depend on this.  A better name might 
> be "zope.publicationregistry".

I'm fine with this. I was considering 'zope.publication', but we already 
have 'zope.publisher' so that'd get very confusing again, something we 
should avoid.

> - zope.app.http: Provides generic views that translate HTTP verbs like 
> PUT, DELETE, and OPTIONS into map operations.  The idea is clever, but 
> not everyone needs a REST-style API.  A better name might be 
> "zope.httpverbs".

Even though I don't really like the plural, I think 'zope.http' would 
promise a bit too much, so 'zope.httpverbs' sound better.

So if we get some consensus about this, we need volunteers that can help 
move the code over to these new packages and leave backwards compatible 
imports in the old places. Is there anything in these packages we can 
safely leave behind do you think? (ZMI related, perhaps?)



More information about the Zope-Dev mailing list