Personal tools
You are here: Home Project Grok Releases 0.13


Feature release: improved directives, martian, grokcore.component. many other improvements and bugfixes

The Grok team is happy to announce the release of Grok 0.13!

This release is available on PyPI and a new index of specific versions of packages used by this release has been frozen at This means that new projects created with grokproject will start using this release right away.

New Features

  • New grok.traversable directive to make individual attributes traversable without having to write a traverse method. Just give it the attribute name and the attribute becomes traversable.
  • grok.require now also accepts the permission class directly as an argument, instead of just the permission name.
  • The view url method has an optional parameter data, which is a dictionary with URL parameters to generate.
  • New grok.OrderedContainer component.
  • Easier test setup infrastructure in z3c.testsetup, see tests-with-grok-testing for more details.
  • Improvements to viewlet support. Viewlet and ViewletManager`` templates now both receives a view namespace which is the view the viewlet is in. This is a difference from how viewlets worked before. Also added viewlet and viewletmanager namespace to the template.


  • The Grok dependencies now make use of the latest known-good ones from Zope 3 (KGS).
  • The basic component base classes (Adapter, MultiAdapter, GlobalUtility), their grokkers, as well as many of the basic directives have been factored out to a reusable grokcore.component package.
  • Ported directives to Martian's new directive implementation. As a result, many helper functions that were available from grok.util were removed. The functionality is mostly available from the directives themselves now.
  • Refactored class grokkers to make use of Martian's new declarative way for retrieving directive data from classes, and Martian's new declarative way to write grokkers. See the upgrade notes (doc/upgrade.txt) for more information.


To upgrade an existing project from 0.12.x to 0.13 you have to:

  1. change the 'extends' directive in your project's buildout.cfg to point to
  2. run bin/buildout in your project, to update the dependencies including the 0.13 egg of Grok itself

For the detailed changelog, see Grok's PyPI entry page.

For detailed upgrade notes, including how to change your application, see

For installation instructions and much more on how to use Grok, see the Grok tutorial:

We hope to hear from you!

If you enjoy Grok, please subscribe to the grok-dev mailing list and join us in the #grok channel on