Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add robotology-distro conda metapackage #727

Closed
traversaro opened this issue May 12, 2021 · 11 comments · Fixed by #1030
Closed

Add robotology-distro conda metapackage #727

traversaro opened this issue May 12, 2021 · 11 comments · Fixed by #1030

Comments

@traversaro
Copy link
Member

Details to be inserted.

@traversaro
Copy link
Member Author

The overall idea of having a package such that is that we could do release of it corresponding to the releases of the superbuild. This package will not depend directly on any other package, but it would just list all the specific version required by a distro as run_constrained entries, see https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#run-constrained .

In this way, if somebody wanted for example to install yarp, icub-main, gazebo-yarp-plugins and icub-models corresponding to the 2021.08 distro, they could do it easily by doing

conda install -c conda-forge -c robotology robotology-superbuild=2021.05 yarp icub-main  gazebo-yarp-plugins icub-models

The alternative (that we currently suggest in the docs added in #852) is that the user need to manually inspect the tables in https://icub-tech-iit.github.io/documentation/sw_versioning_table/ to extract the version for each package that they need, so the previous install step will be instead:

conda install -c conda-forge -c robotology yarp=3.4.5 icub-main=1.20.0  gazebo-yarp-plugins=3.6.1 icub-models=1.20.0

But this is far from user friendly.

@traversaro
Copy link
Member Author

conda install -c conda-forge -c robotology robotology-superbuild=2021.05 yarp icub-main gazebo-yarp-plugins icub-models

Reading this line makes me wonder if perhaps it is more clear if we call the metapackage robotology-distro instead of robotology-superbuild, as it effectively has nothing related to build anymore, and this may be more clear:

conda install -c conda-forge -c robotology robotology-distro=2021.05 yarp icub-main gazebo-yarp-plugins icub-models

@traversaro traversaro changed the title Add robotology-superbuild conda metapackage Add robotology-distro conda metapackage Sep 3, 2021
@traversaro
Copy link
Member Author

To simplify this, it has been agreed to name future releases that copy from latest.releases.yaml as YYYY.MM.0, while then patch releases as YYYY.MM.1, etc etc.

@traversaro
Copy link
Member Author

See icub-tech-iit/documentation#172 .

@traversaro
Copy link
Member Author

I added some steps in this direction in https://github.com/traversaro/robotology-superbuild/tree/fix727 .

@traversaro
Copy link
Member Author

The work on https://github.com/traversaro/robotology-superbuild/tree/fix727 has progressed, and now the two recipes robotology-distro and robotology-distro-all are correctly generated. The only missing step is that now the build of the robotology-distro-all does not build with this error (on all platforms):

- Encountered problems while solving:
-   - package idyntree-4.3.1-py310h8e675de_1 requires assimp >=5.2.0,<5.3.0a0, but none of the providers can be installed

see https://github.com/traversaro/robotology-superbuild/actions/runs/1757345540 .

The strange thing is that assimp 5.2.0 is indeed available in conda-forge.

@traversaro
Copy link
Member Author

traversaro commented Jan 29, 2022

I isolated the problem in gazebo-yarp-plugins= 4.1.2 osqp-eigen=0.7.0 idyntree=4.3.1:

mamba create -n test2 -c conda-forge -c robotology gazebo-yarp-plugins=
4.1.2 osqp-eigen=0.7.0 idyntree=4.3.1
Looking for: ['gazebo-yarp-plugins=4.1.2', 'osqp-eigen=0.7.0', 'idyntree=4.3.1']

robotology/noarch        [====================] (00m:00s) Done
robotology/linux-64      [====================] (00m:00s) Done
conda-forge/noarch       [====================] (00m:03s) Done
conda-forge/linux-64     [====================] (00m:06s) Done
Encountered problems while solving:
  - package idyntree-4.3.1-py310h8e675de_1 requires assimp >=5.2.0,<5.3.0a0, but none of the providers can be installed

My guess is that the latest build of iDynTree compiled with osqp-eigen=0.7.0 are compiled with assimp 5.2.0, but gazebo-yarp-plugins in some way requires the latest dart, that is compiled with an earlier version of assimp. A rebuild of dart is a short term solution, but the proper solution is to add assip to conda-forge-pinnings.

@traversaro
Copy link
Member Author

but the proper solution is to add assip to conda-forge-pinnings.

Proposed in conda-forge/conda-forge-pinning-feedstock#2455 .

@traversaro
Copy link
Member Author

A rebuild of dart is a short term solution

conda-forge/dartsim-feedstock#24

@traversaro
Copy link
Member Author

A rebuild of dart is a short term solution

conda-forge/dartsim-feedstock#24

After this, now mamba create -n test2 -c conda-forge -c robotology gazebo-yarp-plugins=4.1.2 osqp-eigen=0.7.0 idyntree=4.3.1 works fine. I triggered a new build of the metapackages in https://github.com/traversaro/robotology-superbuild/actions/runs/1769304514 .

@traversaro
Copy link
Member Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant