Contents
Allows a component to state dependencies on other plugins
Description
ComponentDependencyPlugin allows a Component to state a dependency on another Component, via the IRequireComponents interface from componentdependencies.interface:
class IRequireComponents(Interface): def requires(): """list of component classes that this component depends on"""
The Component classes that are returned by the requires method will be enabled upon environment upgrade. This allows very simple dependencies. Of course, for installation, the required components are still required to be part of python (in install_requires in setup.py) and this plugin will not work if there is trouble loading a plugin that is required.
Bugs/Feature Requests
Existing bugs and feature requests for ComponentDependencyPlugin are here.
If you have any issues, create a new ticket.
Download
Download the zipped source from here.
Source
You can check out ComponentDependencyPlugin from here using Subversion, or browse the source with Trac.
Example
The files in test.py illustrate how to use the plugin. Enable the ComponentDependencyPlugin (componentdependencies.componentdependency.componentdependencyplugin = enabled) and enable the TestDependencyPlugin (componentdependencies.test.testdependencyplugin = enabled). Trac will then require an upgrade. The FooBarTest component will be enabled in the upgrade.
You can also enable the AutoUpgradePlugin prior to this to allow for automatic upgrades.
Recent Changes
Author/Contributors
Originally developed at The Open Planning Project
Author: k0s
Maintainer: none
Contributors:

