Skip to content

Plugin lifecycle

Peter Razumovsky edited this page Jul 17, 2018 · 1 revision

This page describes lifecycle of every new plugin - from release to deprecation.

Plugin release

New implemented plugin surely has documentation with description of how to use it and list of arguments.

Arguments of plugin could be required or optional. If argument is optional, it has default value or None by default.

Plugin surely has task config samples with it. Required arguments passed in it.

Plugin arguments changing

There are several cases for this section:

  • Existent required argument becomes obsolete. So we need to deprecate it. It becomes optional (i.e. now argument has default value arg=None) and is removed from sample task config. Documentation contains note that this argument is DEPRECATED.
  • Add new argument. It always would be optional (i.e. argument has default value arg=None).
  • Replace one argument with another. Both arguments becomes optional, so compatibility is maintained. Documentation contains note that old argument replaced with new.

Plugin deprecation

If plugin becomes deprecated (because new plugin replaces it or just because it already obsolete), we need to deprecate it everywhere, so use log_deprecated method on run function of deprecated plugin. Documentation should contains note about plugin is DEPRECATED.

Such lifecycle approach retains backward compatibility without any heavy solutions.

Clone this wiki locally