diff options
Diffstat (limited to 'buildstream/_sourcefactory.py')
-rw-r--r-- | buildstream/_sourcefactory.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/buildstream/_sourcefactory.py b/buildstream/_sourcefactory.py index 88a130e10..1d959a140 100644 --- a/buildstream/_sourcefactory.py +++ b/buildstream/_sourcefactory.py @@ -31,9 +31,13 @@ from .source import Source # class SourceFactory(PluginContext): - def __init__(self, plugin_base, plugin_origins=None): + def __init__(self, plugin_base, *, + format_versions={}, + plugin_origins=None): - super().__init__(plugin_base, Source, [_site.source_plugins], plugin_origins) + super().__init__(plugin_base, Source, [_site.source_plugins], + format_versions=format_versions, + plugin_origins=plugin_origins) # create(): # @@ -54,4 +58,7 @@ class SourceFactory(PluginContext): # def create(self, context, project, meta): source_type, _ = self.lookup(meta.kind) - return source_type(context, project, meta) + source = source_type(context, project, meta) + version = self._format_versions.get(meta.kind, 0) + self._assert_plugin_format(source, version) + return source |