You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The templates might use the plugins that are not installed on the local FS. In this case, fabric should be able to download and install the plugins of the specified versions.
Design
when fabric executes, before the template execution, it populates the in-memory registry of available plugins from the plugins present in the FS cache (cache_local_path path set in global settings)
the local cache directory structure is <cache_local_path>/plugins/<data|content>/<name>/<version>/
if the template uses the data / content plugins not present in the cache, download and install the missing plugins:
try fetching the appropriate (latest up to the ceiling) version of the plugin from the local mirror, if mirror_local_path is provided in the global settings. The path schema is <mirror_local_path>/<data|content>/<name>/<version>.zip
try fetching the appropriate (latest up to the ceiling) version of the plugin from the registry using base_url from the global config in the URL schema -- <base_url>/<data|content>/<name>/<version>.zip
if the archive is downloaded, unpack it into <cache_local_path>/plugins/<data|content>/<name>/<version>/ and update the in-memory plugins registry.
there might be a way here to use GitHub releases as a poor-man's plugin registry. Since we control fabric repo, we can pack / release various plugins under different tags (name + version?).
pros:
no need to manage additional infrastructure
release notes are built-in per release
cons:
releases page for the github project might get messy
another note: I think the implicit automatic download of the latest version is a bad idea. I've updated the issue body with the step of explicitly defining the plugins used
Background
The templates might use the plugins that are not installed on the local FS. In this case,
fabric
should be able to download and install the plugins of the specified versions.Design
fabric
executes, before the template execution, it populates the in-memory registry of available plugins from the plugins present in the FS cache (cache_local_path
path set in global settings)<cache_local_path>/plugins/<data|content>/<name>/<version>/
plugin_versions
from the global configuration (Support global configuration #5)mirror_local_path
is provided in the global settings. The path schema is<mirror_local_path>/<data|content>/<name>/<version>.zip
base_url
from the global config in the URL schema --<base_url>/<data|content>/<name>/<version>.zip
<cache_local_path>/plugins/<data|content>/<name>/<version>/
and update the in-memory plugins registry.Some of the plugins must be built-in -- #13
References
The text was updated successfully, but these errors were encountered: