Barbican/Plugin Development

Plugin Status
A Barbican plugin may be considered stable, experimental or out-of-tree.
 * A stable status indicates that the plugin is fully supported by the OpenStack Barbican Team
 * An experimental status indicates that we intend to support the plugin, but it may be missing features or may not be fully tested at the gate. Plugins in this status may occasionally break.
 * An out-of-tree status indicates that no formal support will be provided, and the plugin may be removed in a future release.

Graduation Process
By default all plugins proposed to be in-tree will be in the experimental status. To be considered for stable status, a plugin must have 100% unit test coverage, including branch coverage. It should also have a gate job that runs the functional test suite against an instance of Barbican configured to use the plugin. The gate may be either a devstack gate or a third-party gate. The plugin should also implement new features within one cycle after the new feature blueprint is approved.

Demotion Process
It is not intended that plugins should stay in the experimental status for a long time. Plugins that stay in experimental for more than two releases are expected to move into stable, as described in the Graduation Process, or move to out-of-tree. Plugins that stay in the out-of-tree status for more than tworeleases may be removed from the tree.