Plugin loading refactor, implement BST_MIN_VERSION
This merge request:
-
Refactors plugin loading mechanisms
- All code moved to
_pluginfactory PluginContextbase class renamed toPluginFactory- Added
PluginOrigin
- All code moved to
-
Removes BST_FORMAT_VERSION from plugins
- This will be handled differently, and only for
piporigin plugins which are not explicitly loaded. These will be handled with regularpipstyle 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_VERSIONwhich 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-versionin 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.