<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/buildstream.git/src/buildstream/_pluginfactory/pluginoriginlocal.py, branch master</title>
<subtitle>gitlab.com: buildstream/buildstream.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/'/>
<entry>
<title>_pluginfactory: Make list_plugins() report new display information</title>
<updated>2020-08-10T08:33:55+00:00</updated>
<author>
<name>Tristan van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2020-08-06T12:13:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=6798ea276cdabe668c3868253af9409663e85c46'/>
<id>6798ea276cdabe668c3868253af9409663e85c46</id>
<content type='text'>
Now the PluginFactory.list_plugins() API also reports a human readable
explanation of where the plugin was loaded from for each plugin.

This is internally supported by an extension of the abstract
PluginOrigin.get_plugin_paths() APIs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now the PluginFactory.list_plugins() API also reports a human readable
explanation of where the plugin was loaded from for each plugin.

This is internally supported by an extension of the abstract
PluginOrigin.get_plugin_paths() APIs.
</pre>
</div>
</content>
</entry>
<entry>
<title>_pluginfactory: Delegating the work of locating plugins to the PluginOrigin</title>
<updated>2020-05-28T06:02:23+00:00</updated>
<author>
<name>Tristan van Berkom</name>
<email>tristan.vanberkom@codethink.co.uk</email>
</author>
<published>2020-05-20T10:17:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/buildstream.git/commit/?id=3f418029af80591d7a4592ee7e5a9312dfdf2d54'/>
<id>3f418029af80591d7a4592ee7e5a9312dfdf2d54</id>
<content type='text'>
This way we split up the logic of how to load plugins from different
origins into their respective classes.

This commit also:

  o Introduces PluginType (which is currently either SOURCE or ELEMENT)

  o Reduces the complexity of the PluginFactory constructor

  o Kills the loaded_dependencies list and the all_loaded_plugins API,
    and replaces both of these with a new list_plugins() API.

    Consequently the jobpickler.py from the scheduler, and the
    widget.py from the frontend, are updated to use list_plugins().

  o Split up the PluginOrigin implementations into separate files

    Instead of having all PluginOrigin classes in pluginorigin.py, split
    it up into one base class and separate files for each implementation,
    which is more inline with BuildStream coding style.

    This has the unfortunate side effect of adding load_plugin_origin()
    into the __init__.py file, because keeping new_from_node() as
    a PluginOrigin class method cannot be done without introducing a
    cyclic dependency with PluginOrigin and it's implementations.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This way we split up the logic of how to load plugins from different
origins into their respective classes.

This commit also:

  o Introduces PluginType (which is currently either SOURCE or ELEMENT)

  o Reduces the complexity of the PluginFactory constructor

  o Kills the loaded_dependencies list and the all_loaded_plugins API,
    and replaces both of these with a new list_plugins() API.

    Consequently the jobpickler.py from the scheduler, and the
    widget.py from the frontend, are updated to use list_plugins().

  o Split up the PluginOrigin implementations into separate files

    Instead of having all PluginOrigin classes in pluginorigin.py, split
    it up into one base class and separate files for each implementation,
    which is more inline with BuildStream coding style.

    This has the unfortunate side effect of adding load_plugin_origin()
    into the __init__.py file, because keeping new_from_node() as
    a PluginOrigin class method cannot be done without introducing a
    cyclic dependency with PluginOrigin and it's implementations.
</pre>
</div>
</content>
</entry>
</feed>
