[[PageOutline(2-5,Contents,pullout)]] = Allows a component to state dependencies on other plugins == Description This plugin allows a Trac [trac:TracDev/ComponentArchitecture component] to state a dependency on another `Component`, via the `IRequireComponents` interface from `componentdependencies.interface`: {{{#!python 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 the very simple creation of dependencies between components. Of course, for installation, the required components are still required to be part of Python, as given in `install_requires` in `setup.py`. This plugin will not work if required plugins are not present or loaded. The files in [source:componentdependencyplugin/0.11/componentdependencies/test.py test.py] illustrate how to use the plugin. In your `trac.ini` file, enable the following plugins: * `ComponentDependencyPlugin`: {{{#!ini componentdependencies.componentdependency.componentdependencyplugin = enabled }}} * `TestDependencyPlugin`: {{{#!ini componentdependencies.test.testdependencyplugin = enabled }}} Trac will then require an upgrade. The `FooBarTest` component will be enabled in the upgrade. == Bugs/Feature Requests Existing bugs and feature requests for ComponentDependencyPlugin are [report:9?COMPONENT=ComponentDependencyPlugin here]. If you have any issues, create a [/newticket?component=ComponentDependencyPlugin new ticket]. [[TicketQuery(component=ComponentDependencyPlugin&group=type,format=progress)]] == Download Download the zipped source from [export:componentdependencyplugin here]. The plugin is also available on [pypi:TracComponentDependency PyPI]. == Source You can check out ComponentDependencyPlugin from [/svn/componentdependencyplugin/0.11 here] using Subversion, or [source:componentdependencyplugin browse the source] with Trac. == Installation General instructions on installing Trac plugins can be found on the [TracPlugins#InstallingaTracplugin TracPlugins] page. == Recent Changes [[ChangeLog(componentdependencyplugin, 3)]] == Author/Contributors ''Originally developed at [http://openplans.org The Open Planning Project]'' '''Author:''' [wiki:k0s] [[BR]] '''Maintainer:''' [[Maintainer]] [[BR]] '''Contributors:'''