[Product-Developers] RFC: Venusian-based Python-syntax alternative for ZCML-configuration
asko.soukka at iki.fi
Fri Jan 3 08:17:33 UTC 2014
last year there was (again) a long discussion about pros and cons of
TL;DR; It seems that Grok will never have feature parity with ZCML, but
it has use cases and we have nothing to replace it.
I've been experimenting with an alternative lately: a venusian-based
configuration library for zope.configuration; All python, minimal
dependencies, uses the same directive code as ZCML (= feature parity),
no conventions - just IDE-friendly Python-based configuration.
I'm not forcing this to anyone. An another way to configure may be the
last thing we need. Yet, I want to try this approach as a
grok-replacement for our (my employer) internal packages during this
spring (we'll have new developers and grok has always been easier to
teach than ZCML). Only for add-on-packages.
So, before spending too much time polishing the code, I'd like to
request for your comments about the configuration syntax, which I've
So, it's not grok. It's a Python-syntax for zope.configuration with
optional support for limited set of decorators (directives with class,
factory or handler).
Venusian-library is used to make all configuration directives lazy:
venusian creates "registration callbacks" during module import, but
those callbacks are only executed when packages is imported by
The current catch is that this needs one line in zope.conf (for
monkeypatching zope.configuration) and custom site.zcml (for
z3c.autoinclude also Python-configured packages). These are required to
work around hardcoded zcml-expectations.
Waiting for your comments.
More information about the Product-Developers