[Grok-dev] Grok 0.13 released!

Jan-Wijbrand Kolman janwijbrand at gmail.com
Mon Jun 23 15:56:31 EDT 2008

Hi everybody,

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
http://grok.zope.org/releaseinfo/grok-0.13.cfg. This means that new
projects created with grokproject will start using this release right

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.

.. _`tests-with-grok-testing`: 

* 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.

.. _`upgrade notes`: http://grok.zope.org/project/upgrade-notes


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 http://grok.zope.org/releaseinfo/grok-0.13.cfg
    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 http://grok.zope.org/project/upgrade-notes

For installation instructions and much more on how to use Grok, see the
Grok tutorial: http://grok.zope.org/documentation/book/

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 irc.freenode.net.

.. _`grok-dev mailing list`: 

More information about the Grok-dev mailing list