This is a series of issues wrt all the pure CMake packages in RMF.
rmf_traffic
rmf_battery
rmf_task
rmf_utils
After compiling all these repositories from source in workspace A and sourcing the workspace.
The following behavior could be observed
Package path exists in CMAKE_PREFIX_PATH
echo $CMAKE_PREFIX_PATH | sed "s/:/\n/g" | grep rmf_utils
And during CMake, the package can be autodiscovered through find_package.
Package path doesn't exists in AMENT_PREFIX_PATH
echo $AMENT_PREFIX_PATH | sed "s/:/\n/g" | grep rmf_utils
Packages cannot be discovered by ros2pkg
ros2 pkg list | grep rmf_utils
When running rosdep in a new workspace with workspace A sourced, an older binary release version will installed.
After creating a new workspace, which contains a package that depends on the aforementioned packages, (e.g. rmf_ros2 in a new workspace), and run the following command,
The correct behavior is no output, since all the required dependencies are built in workspace A and sourced.
However, an old version of the following repositories will be installed instead through apt
This is mainly breaking our CI and making setup instructions of our bootstrap development environment difficult due to the issue of rosdep. Otherwise, if everything is in the same workspace, this should not cause any problems.
Bug report
This is a series of issues wrt all the pure CMake packages in RMF.
After compiling all these repositories from source in workspace A and sourcing the workspace. The following behavior could be observed
Package path exists in
CMAKE_PREFIX_PATH
And during CMake, the package can be autodiscovered through
find_package
.Package path doesn't exists in
AMENT_PREFIX_PATH
Packages cannot be discovered by
ros2pkg
When running rosdep in a new workspace with workspace A sourced, an older binary release version will installed.
After creating a new workspace, which contains a package that depends on the aforementioned packages, (e.g.
rmf_ros2
in a new workspace), and run the following command,The correct behavior is no output, since all the required dependencies are built in workspace A and sourced. However, an old version of the following repositories will be installed instead through
apt
Regarding potential solution, I think prepending the package path to AMENT_PREFIX_PATH may help. See discussion https://github.com/ros-industrial/industrial_ci/issues/475 and https://github.com/ros-infrastructure/rosdep/issues/724#issuecomment-641037499.
This is mainly breaking our CI and making setup instructions of our bootstrap development environment difficult due to the issue of rosdep. Otherwise, if everything is in the same workspace, this should not cause any problems.
Required information: