Skip to content

Plugin loading refactor, implement BST_MIN_VERSION

Tristan Van Berkom requested to merge tristan/plugin-versions-refactor into master

This merge request:

  • Refactors plugin loading mechanisms

    • All code moved to _pluginfactory
    • PluginContext base class renamed to PluginFactory
    • Added PluginOrigin
  • 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 regular pip style versioning statements in the plugin origin declarations
  • 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 old BST_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.

Edited by Tristan Van Berkom

Merge request reports