- Add support for Python 3.12.
- Drop support for Python 3.7.
Breaking changes:
- Drop support for Python 2.7, 3.5, 3.6.
New features:
- Add support for Python 3.9, 3.10, 3.11.
Bug fixes:
- zc.buildout is not an install dependency, only used in testing.
Breaking changes:
- Drop support for Python 3.4.
New features:
- When environment variable
Z3C_AUTOINCLUDE_DEBUG
is set, log which packages are being automatically included. Do this in a form that you can copy to aconfigure.zcml
file. - Add support for Python 3.8.
Bug fixes:
- Catch and ignore AttributeError for
module.__file__
. Fixes issue 6. [maurits]
New features:
- Add support for Python 3.6 and 3.7.
Bug fixes:
- Fix the
includePlugins
directive to read filenames as native strings in Python 3.
- Add support for Python 3.4, Python 3.5 and PyPy.
- When choosing between multiple (equivalent) packages that offer the
same namespace and there are no namespace-only packages, choose
either the one whose project name matches the namespace (if there
are no dots in the namespace), or the first when sorted by project
name. Previously, the first in the list generated from the
combination of iterating
sys.path
and askingpkg_resources
for distributions was picked. This should increase test repeatability but is not expected to be otherwise noticeable. See PR 3 for discussion.
- Standardize namespace __init__.
- Fix broken tests.
- If a module cannot be resolved, but raises
ImportError
, log a warn and continue. This fixes an issue where the determining the includable packages would fail due to a problem with the importation of one or potentially more modules. An example is thegobject
module which provides a Python binding toGObject
. In a recent API deprecation, one is no longer allowed to both importgi
andgobject
.
- Remove unnecessary distribution lookup in the PluginFinder.
- Ignore case in tests in order to pass tests on Windows.
- Clearly specify license as ZPL (not public domain, as it was claiming before).
- Let
subpackageDottedNames
always return a sorted list of package names asos.listdir
doesn't on some platforms.
- z3c.autoinclude no longer (spuriously) depends on PasteScript.
- Allow virtual namespace packages like 'plone' to be specified for the package. I think this may need more thought for the dependency case.
- Allow ZCML
includePlugins
directive to specify a particular ZCML file to try to load from plugins, so that loading of meta, configure and overrides can be split across three ZCML files if desired. You can specify a file like: <includePlugins package="." file="silly.zcml" />. - Provide a separate
includePluginsOverrides
directive to be used when loading overrides, and no longer look for 'overrides.zcml' files by default withincludePlugins
. - Removed the deprecated
autoinclude
andautoincludeOverrides
directives. - Allow autoinclusion to be disabled by setting
os.environ['Z3C_AUTOINCLUDE_PLUGINS_DISABLED']
andos.environ['Z3C_AUTOINCLUDE_DEPENDENCIES_DISABLED']
, potentially useful for test runners or debugging sessions.
For context on many of these changes, see the PLIP #247 discussion.
- Gracefully catch KeyErrors in
namespaceForDottedName
; get_metadata_lines will sometimes throw this for certain distribution types, apparently. In particular, some systems' version of Python itself will be wrapped in a distribution which throws this error, resulting in system-dependent unresumable breakage of z3c.autoinclude prior to this fix.
- Fixed bug which prevented proper inclusion of packages when the base package's namespace has been extended by other installed packages.
- Rewrote
distributionForPackage
function. - Added additional tests for
includePlugins
and utility functions. - Fixed bug which made z3c.autoinclude look for ZCML in namespaces of nested namespace packages (eg, if there happened to -- improperly -- be an x/y/configure.zcml in a x.y.z package with an x.y namespace, it would have been included; this is incorrect.)
- Added new directive
includePlugins
. - Renamed
autoinclude
directive toincludeDependencies
. - Deprecated
autoinclude
directive.
- Initial public release.