-
Notifications
You must be signed in to change notification settings - Fork 129
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
Fix installation of dependencies #820
base: master
Are you sure you want to change the base?
Conversation
Dependencies of the extended workspace are available by construction.
I think both your commits must get mixed. So that we ignore packages in |
Maybe, you are right. We would need the following paths:
|
4d7b6d5
to
6cba5b2
Compare
6cba5b2
to
e97b6c0
Compare
I have no clue why the installation of
The changes of this PR become effective much later... |
@@ -173,10 +173,12 @@ function run_source_tests { | |||
ici_step "setup_rosdep" ici_setup_rosdep | |||
|
|||
extend=${UNDERLAY:?} | |||
export ROSDEP_SOURCE_FOLDERS=("${UNDERLAY:?}") # source folders to be ignored for rosdep install |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should go into env.sh
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This variable is configured only here (incrementally for all stages).
Moving the initialization into another file seems odd.
@@ -386,7 +386,7 @@ function ici_build_workspace { | |||
fi | |||
|
|||
ici_step "setup_${name}_workspace" ici_prepare_sourcespace "$ws/src" "${sources[@]}" | |||
ici_step "install_${name}_dependencies" ici_install_dependencies "$extend" "$ROSDEP_SKIP_KEYS" "$ws/src" | |||
ici_step "install_${name}_dependencies" ici_install_dependencies "$extend" "$ROSDEP_SKIP_KEYS" "$ws/src" "${ROSDEP_SOURCE_FOLDERS[@]}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We might even move this into ici_install_dependencies, then it would always use the UNDERLAY by default
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The key is that this variable incrementally changes. Using UNDERLAY
always is not intended. I would have made the variable local in run_source_tests
but it needs to propagate here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I meant that it will always start from UNDERLAY
, just like you intended.
The current version couples Right now I am leaning towards making |
I think I know why it is stalling.. |
I have been digging a little bit deeper:
As far as I can tell, ici_install_dependencies does not install them directly
And those packages will be excluded by rosdep, because they are list in ROS_PACKAGE_PATH. Your example builds Your counter-example (which didn't work before) installs Works fine with the current master version:
|
ici_install_dependencies shouldn't install dependencies that are available in an underlay. Usually, this is ensure by construction, starting from a clean /opt/ros and then installing dependencies for upstream, target, and downstream in turn. However, there is the
UNDERLAY
variable, which allows to use another underlay than /opt/ros. In that case, the underlay might provide packages, which would be required for install.Here is an example using
UNDERLAY=/root/ws_moveit/install
from a custom docker image. In that case, installation shouldn't care aboutmoveit-*
packages, which didn't work before.