[Grok-dev] libraries to use with Grok
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:
>> I think that the list could become really large...
>> : http://pypi.python.org/pypi?:action=search&term=megrok&submit=search
>> : 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
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