[Zope-dev] RFC: proposal to split zope.configuration into ZCML and non-ZCML related packages
Chris McDonough
chrism at plope.com
Mon Aug 29 01:35:21 EST 2011
Rationale
--------
Like the previous proposal by Tres Seaver related to
zope.component, this is a step that
will help port crucial Pyramid dependencies to Python3:
https://github.com/Pylons/pyramid/wiki/Python-3-Porting
At the end of this year's US PyCon, Lennart Regebro described
the zope.configuration porting effort as mostly dependent on
the porting of zope.schema (see
http://permalink.gmane.org/gmane.comp.web.zope.devel/26373).
In the meantime, Pyramid doesn't actually require ZCML or
zope.schema; it only uses the parts of zope.configuration related
to actions, conflict resolution, and the "ConfigurationMachine"
itself. These bits have proven useful outside the context of ZCML
and other schema-driven configuration.
An Pyramid add-on named pyramid_zcml still has a dependency
on zope.component as it provides ZCML analogues of built-in
Pyramid configuration directives. We will likely end up
eventually helping to port zope.schema to Python 3 as a
result. But splitting the zope.configuration package in
two parts seems to make sense regardless, as the Pyramid core
just doesn't need the extra zope.schema dependency, it
just "comes along for the ride".
I have tackled this issue by factoring zope.configuration into
two pieces:
- I have moved the bits that don't rely on ZCML or zope.schema
into a new 'zope.configmachine' package, now hosted in the
Zope SVN repository:
http://svn.zope.org/zope.configmachine/trunk
Notes on the new package:
- The tests in this package are incomplete. I intend to
provide full coverage once discussion concludes, as
well as some documentation for the package as
a standalone entity.
- The branch is not yet Python 3 compatible. It's
trivial to make it so, once discussion concludes that
the configuration/configmachine division is acceptable.
- I have made zope.configuration which depends on
zope.configmachine in a branch:
http://svn.zope.org/zope.configuration/branches/chrism-configmachine
This branch leaves BBB imports intact.
Proposal
--------
I would like to propose the following changes to the ZTK trunk,
after test coverage and documentation for zope.configmachine
land:
- Land 'zope.configmachine' as a full ZTK package, with its own
Launchpad artifacts, etc. This step may also involve moving bugs from
zope.configuration to zope.configmachine.
- Merge the 'chrism-configmachine' branch of zope.configuration to the
trunk, and bump its major version accordingly.
- Cut releases of both packages.
More information about the Zope-Dev
mailing list