[Zope3-dev] RFC: move 'App' out of 'Zope'

Martijn Faassen faassen@vet.uu.nl
Sat, 21 Dec 2002 14:14:11 +0100


Hi there,

I'd like to call people's attention to the idea I just had concerning
directory hierarchy reorganization, before it's monday and it's too
late. :)

Currently, we have the following:

  python
    Zope
      App
      reusable packages

where 'Zope' is the namespace package for everything developed by the zope
community, and 'App' is the namespace package that contains the actual
Zope 3 application server code. 'App' depends on things in 'Zope', but 
not the other way around.

In the current renaming proposal, this would look essentially unchanged:

  python
    zope
      app
      reusable packages

Though we've already granted that 'zodb' should have its own toplevel
package:

  python
    zope
      app
      reusable packages
    zodb

Now my proposal would be to move 'app' out of 'zope', as it's out of place
among all these reusable packages. While we're at it, let's also rename 'app' 
*to* 'zope', as really when we speak about "Zope 3" we are talking about 
the application server in the 'app' package. Since we then have to rename
the 'zope' namespace to something else, let's pick 'zc' (provisionally,
there are some objections as it could be considered to stand for
"Zope Corporation" and not "Zope Community"). (what about shortening
it to 'z'? Then we have the 'z' everywhere! :)

It'd look like this:

  python
    zc (was zope)
      reusable packages
    zope (was app)
    zodb

How would this affect imports? Imports in the 'zc' package are essentially
unchanged (except that they now import from 'zc' not 'Zope', but we're 
renaming anyway). Imports in the 'zope' package (was App) will become
a bit less complex, though:

>From current to new proposal to amended new proposal:

  from Zope.App.ZopePublication.Browser.PublicationTraverse import PublicationTraverser

  from zope.app.publicatation.browser.traversal import PublicationTraverser

  from zope.publication.browser.traversal import PublicationTraverser

**
 
  from Zope.App.OFS.Content.DTMLPage.Views.Browser.DTMLPageEval import DTMLPageEval

  from zope.app.browser.content.dtml import DTMLPageEval

  from zope.browser.content.dtml import DTMLPageEval

**

  from Zope.Proxy.ContextWrapper import ContextWrapper

  from zope.proxy.context import ContextWrapper

  from zc.proxy.context import ContextWrapper

Thoughts?

Regards,

Martijn