Allows a component to state dependencies on other plugins

Notice: This plugin is unmaintained and available for adoption.


This plugin allows a Trac 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, as given in install_requires in

This plugin will not work if required plugins are not present or loaded.

The files in illustrate how to use the plugin. In your trac.ini file, enable the following plugins:

  • ComponentDependencyPlugin:
    componentdependencies.componentdependency.componentdependencyplugin = enabled
  • TestDependencyPlugin:
    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 here.

If you have any issues, create a new ticket.


0 / 1


0 / 1


Download the zipped source from here.


You can check out ComponentDependencyPlugin from here using Subversion, or browse the source with Trac.


General instructions on installing Trac plugins can be found on the TracPlugins page.

Recent Changes

6314 by k0s on 2009-07-29 20:47:58
initial import of ComponentDependencyPlugin
6313 by k0s on 2009-07-29 20:47:08
remove erroneously created directory
6312 by k0s on 2009-07-29 20:46:42
create the correct directory


Originally developed at The Open Planning Project

Author: k0s
Maintainer: none (needsadoption)

Last modified 17 months ago Last modified on Jun 6, 2018, 6:05:29 AM