Currently idyntree has a run-dependency on meshcat-python, that anyhow brings in a lot of "big" transitive dependencies such as ipython, tornado, pillow . This big dependencies increase the possibilities of having problems in package managers, as the one tricky to debug in https://github.com/conda-forge/bipedal-locomotion-framework-feedstock/pull/17 .
Comment:
Currently idyntree has a run-dependency on meshcat-python, that anyhow brings in a lot of "big" transitive dependencies such as ipython, tornado, pillow . This big dependencies increase the possibilities of having problems in package managers, as the one tricky to debug in https://github.com/conda-forge/bipedal-locomotion-framework-feedstock/pull/17 .
As meshcat is only required for a simple self-contained class (see https://github.com/robotology/idyntree/blob/7ecf7b536be9e03fe05a0d49c8e7adbc5f84dc31/bindings/python/visualize/meshcat_visualizer.py#L26). A possible alternative is to not decleare a meshcat-python dependency, but instead just wrap the
import meshcat
call in https://github.com/robotology/idyntree/blob/7ecf7b536be9e03fe05a0d49c8e7adbc5f84dc31/bindings/python/visualize/meshcat_visualizer.py#L26 so that it prints a clearto run this, call conda/mamba install meshcat-python
, so that the user that want to use that functionality know that the need to install meshcat-python manually together with idyntree. An alternative is to split idyntree in different outputs, and have a separate idyntree-meshcat-python output, but I would prefer to avoid that.fyi @giulioromualdi