[Grok-dev] libraries to use with Grok

Martijn Faassen faassen at startifact.com
Fri Nov 20 03:51:33 EST 2009

Kent Tenney wrote:
> On Thu, Nov 19, 2009 at 5:35 AM, Santiago Videla
> <santiago.videla at gmail.com> wrote:
>> Hey,
>> I think that the list could become really large...
>> megrok.*
>> : http://pypi.python.org/pypi?:action=search&term=megrok&submit=search
>> hurry.*
>> : http://pypi.python.org/pypi?:action=search&term=hurry&submit=search
>> dolmen.* http://pypi.python.org/pypi?:action=search&term=dolmen&submit=search
> I would welcome a brief description of the namespace collections, who is
> behind them, a bit of history, target niche etc.
> hurry, megrok, dolmen, zc, z3c, zope, repoze, lazr ...

It'll have to go into another document, but here goes some sketch:

First a general disclaimer: the namespace doesn't really *mean* all that 
much. The goal of having a namespace is to make it easier to create a 
package of some name without conflicting with another package. I.e. if 
we had no namespaces if I made a package 'resource' there'd be a good 
chance someone else would want to do the same thing, and what would we 
do then?

zope.*: the namespace used originally by the Zope 3 project. Now the 
namespace of the Zope Toolkit. Generally core framework packages, though 
there's a lot of stuff that isn't.

zope.app.*: the idea was to make the Zope 3-specific things reside here, 
the more general things in zope.*. This wasn't maintained very well, as 
nobody quite agrees on what is what anyway. Now it is a mostly 
deprecated namespace that contains the old Zope 3 ZMI user interface 
code. We've been moving more general stuff out of it into zope.*

grokcore.*: bits of Grok that we've split out of it into more reusable 
libraries. The five.grok project uses the same libraries to enable Grok 
support in Zope 2.

grokui.*: user interfaces for Grok. The admin UI and the introspector 
end up here.

megrok.*: "Module Extension Grok". Extension code for Grok. Often 
depends on Grok itself, but note that due to Grok's splitting up into 
pieces this code only needs to depend on grokcore.* packages, and could 
be seen as more generally reusable.

zc.*: a space for Zope Corporation to create packages in. There's a 
diverse collection of stuff in there.

z3c.*: a space where the Zope 3 community started to place packages. A 
diverse colletion of stuff.

hurry.*: I started using this for some Zope 3 extensions back in 2005 or 
so. I've continued to use this namespace in the last few years as well 
for some more code I've written. Again, a diverse collection of stuff.

dolmen.*: Souheil has been using this namespace. Much of it, I 
understand, is to support CMS-like applications on top of Grok. Designed 
also be more generally reusable.

repoze.*: the Repoze project is working in its own repository and 
generally Repoze-related libraries are in there. Contains WSGI-related 
packages and the BFG framework, and other diverse stuff.

plone.*: some packages developed by the Plone project. Much of this 
relies either on Zope 2 and/or Plone, but some of it is designed to be
more generally useful.

collective.*: a general namespace used by the Plone community. Again, 
some of it is designed to be more generally useful, a lot of it ties 
into Plone, however.

lazr.*: a namespace used by Launchpad developers at Canonical. Some of 
it is designed to plug into Zope Toolkit applications.

five.*: generally used as a namespace to place in compatibility code, to 
help use Zope Toolkit or Grok related libraries in Zope 2.

Can someone clean this up and create a document on grok.zope.org out of 



More information about the Grok-dev mailing list