NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #5997 most downloaded on PyPI
Zope Configuration Markup Language (ZCML)
Last release 5 months ago
10 Apr 2026
Ships fairly regularly
a new release about every 13 months
Nearly every release is documented
notes for 28 of 29 stable releases
Nothing withdrawn
no release was ever pulled
20 years old
29 releases · first in 2007
Move package metadata from setup.py to pyproject.toml.
Move package metadata from setup.py to pyproject.toml.
Add support for Python 3.14.
Drop support for Python 3.9.
Remove run-time dependency on setuptools.
Replace pkg_resources namespace with PEP 420 native namespace.
Replace pkg_resources namespace with PEP 420 native namespace.
One column per quarter.
Add support for checking environment variables in zcml conditions. Use envvar or not-envvar. not-envvar is true when the variable is not set, is empty
Add support for checking environment variables in zcml conditions. Use envvar or not-envvar. not-envvar is true when the variable is not set, is empty, or has one of the usual 'false' values like '0'.
Add support for Python 3.12, 3.13.
Drop support for Python 3.7.
Fix tests when running from a distribution.
Fix tests when running from a distribution.
Drop support for Python 2.7, 3.5, 3.6.
Drop support for Python 2.7, 3.5, 3.6.
Add support for Python 3.11.
Avoid creating reference cycles through tracebacks in reraise (change imported from six).
Avoid creating reference cycles through tracebacks in reraise (change imported from six).
Add support for Python 3.9, 3.10.
Ensure a consistent interface resolution order for all objects. See issue 49 _.
Ensure a consistent interface resolution order for all objects. See issue 49.
Drop support for Python 3.4.
Add support for Python 3.8.
Do not break when running the tests from a wheel.
Do not break when running the tests from a wheel.
Simplify exception chaining and nested exception error messages. See issue 43 _.
Simplify exception chaining and nested exception error messages. See issue 43.
Fix GlobalObject (and GlobalInterface) no longer allowing multiple leading dots. See issue 41 _.
Fix GlobalObject (and GlobalInterface) no longer allowing multiple leading dots. See issue 41.
Add __all__ to all modules listing the documented members of the module. Note that this is currently a broad list and may be reduced in the future.
Fix GlobalObject (and GlobalInterface) no longer allowing just a single '.'. See issue 35 _.
Fix GlobalObject (and GlobalInterface) no longer allowing just a single '.'. See issue 35.
Reach 100% automated test coverage.
Reach 100% automated test coverage.
Add support for Python 3.7.
Drop support for Python 3.3 and remove internal compatibility functions needed to support it. See issue 20 and issue 26.
Drop support for python setup.py test.
Make zope.configuration.fields.Path and zope.configuration.config.ConfigurationContext expand environment variables and expand user home directories in paths. See issue 3.
Fix resolving names from a Python 2 package whose __init__.py has unicode elements in __all__.
Make GroupingContextDecorator stop shadowing builtins in its __getattr__. These were not intended as arguments to be used by subclasses, and the signature caused confusion.
Fix the doctests with zope.schema 4.7 and above, and run the doctests on both Python 2 and Python 3. See issue 21.
Fix GlobalObject and GlobalInterface fields to only accept dotted names instead of names with /. Previously, slash delimited names could result in incorrect imports. See issue 6.
Fix the schema fields to include the value and field values on exceptions they raise.
Make zope.configuration.fields.PythonIdentifier subclass PythonIdentifier from zope.schema. It now implements fromBytes, always produces a native string, and validates the value in fromUnicode. See issue 28.
Add ConfigurationMachine.pass_through_exceptions to allow customizing the exceptions that ConfigurationMachine.execute_actions wraps in a ConfigurationExecutionError. See issue 10.
Stop catching BaseException and wrapping it in either ConfigurationExecutionError or ZopeXMLConfigurationError. SystemExit and KeyboardInterrupt were always allowed to propagate; now GeneratorExit and custom subclasses of BaseException are also allowed te propagate.
Drop support for Python 2.6 and 3.2.
Drop support for Python 2.6 and 3.2.
Add support for Python 3.5 and 3.6.
Fix the domain of MessageID fields to be a native string. Previously on Python 3 they were bytes, which meant that they couldn't be used to find translation utilities registered by zope.i18n. See issue 17.
Add explicit support for Python 3.4.
Add explicit support for Python 3.4.
Flesh out PyPI Trove classifiers.
Flesh out PyPI Trove classifiers.
Remove spurious declaration of 'test' dependency on zope.testing.
Remove the deprecated 'zope.configuration.stxdocs' script. and made the 'zope.configuration.tests.conditions' helper module (used in running Sphinx do…
Add support for Python 3.3.
Remove the deprecated 'zope.configuration.stxdocs' script. and made the 'zope.configuration.tests.conditions' helper module (used in running Sphinx doctest snippets) Py3k compatible. https://bugs.launchpad.net/zope.configuration/+bug/1025390
Bring unit test coverage to 100%.
Bring unit test coverage to 100%.
Automate build of Sphinx HTML docs and running doctest snippets via tox.
Drop hard testing dependency on zope.testing.
Add explicit support for PyPy.
Add explicit support for Python 3.2.
Drop explicit support for Python 2.4 / 2.5.
Add support for continuous integration using tox and jenkins.
Add Sphinx documentation.
Add setup.py docs alias (installs Sphinx and dependencies).
Add setup.py dev alias (runs setup.py develop plus installs nose and coverage).
Fix Python 2.4 backwards incompat (itemgetter used with multiple args); Python 2.4 now works (at least if you use zope.schema == 3.8.1). This is the l…
Fix Python 2.4 backwards incompat (itemgetter used with multiple args); Python 2.4 now works (at least if you use zope.schema == 3.8.1). This is the last release which will support Python 2.4 or 2.5.
Change action structures from tuples to dictionaries to allow for action structure extensibility (merged chrism-dictactions branch).
Change action structures from tuples to dictionaries to allow for action structure extensibility (merged chrism-dictactions branch).
- Apply test fixes for Windows.
Apply test fixes for Windows.
Correctly locate packages with a __path__ attribute but no __file__ attribute (such as namespace packages installed with setup.py install --single-ver
Correctly locate packages with a __path__ attribute but no __file__ attribute (such as namespace packages installed with setup.py install --single-version-externally-managed).
Allow "info" and "includepath" to be passed optionally to context.action.
Prefer the standard libraries doctest module over zope.testing.doctest.
Prefer the standard libraries doctest module over zope.testing.doctest.
Jython support: use __builtin__ module import rather than assuming __builtins__ is available.
Jython support: use __builtin__ module import rather than assuming __builtins__ is available.
Jython support: deal with the fact that the Jython SAX parser returns attribute sets that have an empty string indicating no namespace instead of None.
Allow setup.py test to run at least a subset of the tests that would be run when using the zope testrunner: setup.py test runs 53 tests, while bin/test runs 156.
Adjust testing output to newer zope.schema.
Adjust testing output to newer zope.schema.
Prefer zope.testing.doctest over doctestunit.
Removed dependency of zope.deprecation package.
Removed dependency of zope.deprecation package.
Don't suppress deprecation warnings any more in 'zope.configuration' package level. This makes it more likely other packages will generate deprecation warnings now, which will allow us to remove more outdated ones.
Don't fail when zope.testing is not installed.
Added missing processFile method to IConfigurationContext. It is already implemented in the mix-in class, zope.configuration.config.ConfigurationContext, and used by implementations of include and exclude directives.
Added the exclude directive to standard directives. It was previously available via zc.configuration package and now it's merged into zope.configurati
Added the exclude directive to standard directives. It was previously available via zc.configuration package and now it's merged into zope.configuration.
Changed package's mailing list address to zope-dev at zope.org, change "cheeseshop" to "pypi" in the package's url.
Use built-in 'set' type, rather than importin the 'sets' module, which is deprecated in Python 2.6.
Use built-in 'set' type, rather than importin the 'sets' module, which is deprecated in Python 2.6.
Added support to bootstrap on Jython.
Initial release as a standalone package.
Initial release as a standalone package.
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →