wiki:ComponentDependencyPlugin

Version 2 (modified by Jeff Hammel, 13 years ago) (diff)

--

allows components to state dependencies on other plugins

Notice: This plugin is unmaintained and available for adoption.

Description

ComponentDependencyPlugin allows a Component to state a dependency on other plugin, via the IRequireComponents 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 [download:componentdependencyplugin 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.

Recent Changes

17722 by rjollos on 2020-05-06 00:24:56
TracComponentDependency 0.3: Add classifiers

Version 0.3 has been released to PyPI.

Fixes #13691.

17595 by rjollos on 2019-11-25 23:35:08
TracComponentDependency 0.2: Prepare to publish on PyPI

Refs #13691.

17562 by rjollos on 2019-11-17 20:06:51
Make compatible with Trac 1.4
(more)

Author/Contributors

Originally developed at The Open Planning Project

Author: k0s
Contributors: