We have gotten a bunch of these and have been trying to figure out a good middle-of-the-road solution in Lab, but we are clearly “not there yet”.
The most common problem we are seeing now is conda channel
defaults causing dependency issues with Lab etc.
In short, our recommendation is to have the conda.yaml ´channels:´ -section look like this:
channels: - conda-forge
Having dependencies coming from multiple channels and from pip can cause collisions on many levels. For the Robocorp Lab notebook environment, this is especially hard as that environment not only contains the conda.yaml that you as the user edit but also the environment that the JupyterLab and kernel instances require.
In Lab you can also run full diagnostics on your robot:
File > Terminal > rcc robot diagnostics --robot robot.yaml
… the output provides checks for a bunch of things:
Checks: - Robot ok Tasks are defined in robot.yaml - Robot ok Each task has exactly one definition. - Robot ok PATH settings in robot.yaml are ok. - Robot ok PYTHONPATH settings in robot.yaml are ok. - Robot ok ignoreFiles settings in robot.yaml are ok. - Robot ok Artifacts directory defined in robot.yaml - Robot ok In robot.yaml, 'condaConfigFile:' is present. So this is python robot. - Conda warning Try to avoid defaults channel, and prefer using conda-forge instead. - Conda warning Try to avoid putting defaults channel as first channel. - Conda warning Try to avoid multiple channel. They may cause problems with code compatibility. - Conda ok Conda dependencies in conda.yaml are ok. - Conda ok Pip dependencies in conda.yaml are ok. - Robot ok Dependencies in conda.yaml and dependencies.yaml match. - YAML ok YAML files are readable and can be parsed.
…we’ll look for a good place to put this in a bit easier form.
The latest templates have these setups so another way to get up to date is to create a new robot from template and checkout the conda.yaml.