Plugin loading refactor, implement BST_MIN_VERSION
This merge request:
-
Refactors plugin loading mechanisms
- All code moved to
_pluginfactory
-
PluginContext
base class renamed toPluginFactory
- Added
PluginOrigin
- All code moved to
-
Removes BST_FORMAT_VERSION from plugins
- This will be handled differently, and only for
pip
origin plugins which are not explicitly loaded. These will be handled with regularpip
style versioning statements in the plugin origin declarations
- This will be handled differently, and only for
-
Removes
BST_REQUIRED_VERSION_[MAJOR/MINOR]
from plugins, which was not extensively used, and had an incorrect implementation where it was presumed to be okay if the installed buildstream major version is not an exact match with the major version your plugin requires. -
Adds
BST_MIN_VERSION
which plugins must use to specify the minimum version of the core they intend to run against, replacing the oldBST_REQUIRED_VERSION_[MAJOR/MINOR]
variables.This will also be used to distinguish between BuildStream 1 and BuildStream 2 plugins, in the same way we now do with
min-version
in the project.conf, with the same semantics.
WIP STATUS: This is now only WIP because of the last tox.ini
commit which sets the bst-plugins-experimental
version we test against to a git sha; we should first merge the bst-plugins-experimental
branch and possibly tag it before adjusting this tox.ini
commit and merging this.