Hi,
Is there a recommended approach to make use of shared plugins, assuming those shared plugins are available to install via conda. Perhaps that should be, how can we effectively use conda to distribute shared xtriggers and plugins (at least internally). For example, shared
For xtriggers, they seem to need to be in your PYTHONPATH or workflow/lib/python
folder. If we do conda create -n my_workflow cylc-local-xtriggers
then, that may require Cylc, so it will install Cylc, etc, so it seems inefficient. If we are working across multiple projects, I would prefer they just be installed in my shared cylc create -n cylc-8.2.0 cylc-flow==8.2.0
environment and Cylc will just find them. But that environment doesn’t need to be active at install time, so unless we activate it, we can’t make use of activate/deactivate.sh scripts to add to the PYTHONPATH (which is suboptimal as described in the provided bin/cylc
file). Could the local cylc-local-xtriggers
package be installed under cylc-flow
itself or would that not work (I have not checked if multiple conda packages can put things in the same lib/cylc-flow
area). Or could Cylc add some items to the PYTHONPATH when it runs itself (change the last line to: exec PYTHONPATH=${PYTHONPATH:+$PYTHONPATH:}$CYLC_HOME/share/cylc/lib/python "${CYLC_HOME}/bin/{$0##*/}" "$@"
and it be documented that cylc
will look in that spot too?
Similarly for Jinja2 globals/filters/tests, could there be an extension to how they are found to encorprate shared items installed in the conda environment, looking in $CYLC_HOME/share/cylc/Jinja2{Globals,Filters,Tests}
?
Or have I over-thought this and got myself lost and confused?
Thanks.