[Zope-dev] refactoring site functionality

Martijn Faassen faassen at startifact.com
Thu May 28 11:00:52 EDT 2009


Hey,

Jim Fulton wrote:
> 2. I think local configuration address use cases that most people  
> don't have but introduce complexity that I bet a lot of developers  
> trip over.

I think there are two cases where people typically deal with local 
configuration:

* setting up local utilities (for authentication, the catalog, 
application-specific configuration storage + UI)

* writing tests that involve local utilities. (a more advanced case, but 
still quite common)

> 3. I think the right word here is "local registry".  I think the whole  
> concept should be labeled as advanced and we should discourage people  
> from even pondering it unless they have a strong use case, like  
> wanting to host multiple web sites with different configs in the same  
> application. :)

I don't think "hosting multiple web sites with different configs in the 
same application" is the only use case.

* the catalog. This can be done using a global component that somehow 
stuffs information in the ZODB, but there are no common patterns for 
this that people can follow, so local utilities are currently easier to use.

* often it is nice to have application configuration to have a user 
interface, so that end users can configure aspects of the application. 
This may be filling in an email address or customizing a template or 
adding a user, etc. Local utilities are a nice solution for this, even 
if there is just a single application installed.

> 4. I think we should step back (re)think how we handle the goals that  
> drive this.  If we do, we might  come up with something so different  
> that we'd make this discussion moot.

My goals are:

* I do care about local component configuration

* I'm a simple person and want to make my life easier

* I want to be able to write and test local utilities without having to 
depend on zope.site for my testing (right now I have a hacked up version 
  that I just copy and paste). An example of the hacked up version of 
site management is here:

http://svn.zope.org/hurry.custom/trunk/src/hurry/custom/testing.py?rev=99648&view=auto

And I'd like to put that code somewhere proper.

* I'd like to change the dependency structure so that a minor dependency 
on site management doesn't require a package to pull in zope.container 
(which pulls in quite a bit itself)

Regards,

Martijn

P.S. As of this point I'm dropping my proposal to rename anything to 
anything. Let's indeed focus on the wider discussion (as indicated by 
Roger and Jim)



More information about the Zope-Dev mailing list