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

Improve rosdep install #124

Open
xfiderek opened this issue Jan 25, 2024 · 5 comments
Open

Improve rosdep install #124

xfiderek opened this issue Jan 25, 2024 · 5 comments

Comments

@xfiderek
Copy link
Contributor

xfiderek commented Jan 25, 2024

Summary

We are using rosdep to install non-ROS packages from apt, such as uncrustify, eigen, clang-tidy. I suggest adding two improvements:

  1. Add list of installed packages to final artifact produced in CI (ideally with exact versions)
  2. Block installation of ROS packages with rosdep (e.g. by failing whenever we are about to install package with ros-${DISTRO}- prefix), as all ROS packages must be compiled from source in spaceros.
@mkhansenbot
Copy link
Contributor

What about rviz? Do we have to build that from source?

@xfiderek
Copy link
Contributor Author

xfiderek commented Jan 31, 2024

Hi @mkhansenbot, good question.

For now our core spaceros image does not install RVIZ. I remember we had a brief discussion about having base and desktop images in the future, but whatever I stated here is applicable to base, which imo should exclude stuff like gazebo and rviz (gui tools in general). The proposed improvement will make sure that in core image, everything is traceable and subject to code analysis and tests.

I am not sure though what we should do for demos, where rviz and gazebo may be required. My guess would be that such packages are less critical than core ROS middleware etc, so installing debs may be acceptable, but I am of course happy to discuss it further and hear opinion of other people.

@mkhansenbot
Copy link
Contributor

I agree we should be able to install from debs for the demos. I just want to make sure whatever change is made to block rosdep doesn't include demo dependencies like rviz.

@asimonov
Copy link

Summary

We are using rosdep to install non-ROS packages from apt, such as uncrustify, eigen, clang-tidy. I suggest adding two improvements:

1. Add list of installed packages to final artifact produced in CI (ideally with exact versions)

2. Block installation of ROS packages with rosdep (e.g. by failing whenever we are about to install package with `ros-${DISTRO}-` prefix), as all ROS packages must be compiled from source in spaceros.

Yes, I support both!

for 1 I usually use 'simulated' rosdep output then run it like this (this is example from our main Earthfile):

  RUN rosdep install -s -y \
      --from-paths src --ignore-src \
      --rosdistro ${ROSDISTRO} \
      # `urdfdom_headers` is cloned from source, however rosdep can't find it.
      # It is because package.xml manifest is missing. See: https://github.com/ros/urdfdom_headers
      # Additionally, IKOS must be excluded as per: https://github.com/space-ros/docker/issues/99
      --skip-keys "$(tr '\n' ' ' < 'excluded-pkgs.txt') urdfdom_headers ikos" \
      > rosdep-commands.sh && \
      chmod u+x rosdep-commands.sh && \
      ./rosdep-commands.sh

@asimonov
Copy link

Hi @mkhansenbot, good question.

For now our core spaceros image does not install RVIZ. I remember we had a brief discussion about having base and desktop images in the future, but whatever I stated here is applicable to base, which imo should exclude stuff like gazebo and rviz (gui tools in general). The proposed improvement will make sure that in core image, everything is traceable and subject to code analysis and tests.

I am not sure though what we should do for demos, where rviz and gazebo may be required. My guess would be that such packages are less critical than core ROS middleware etc, so installing debs may be acceptable, but I am of course happy to discuss it further and hear opinion of other people.

Think we discussed it on technical meeting since that comment was made...

My view is that in the demos we can build rviz and plugins from source (I do it in one of my current dockers, so it is not an issue).

With gazebo unfortunately it should come from apt, building from source seem to be difficult. But carefully to not pull some ros-* debs...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

3 participants