locusrobotics/catkin_virtualenv

rospack dependency declaration missing?

gavanderhoorn opened this issue · 9 comments

This may be me doing something that is unsupported, but while building a package that build_depends on catkin_virtualenv in a prerelease build (following this procedure), I get errors about rospack not being a known command during the CMake configuration phase for that package.

Seems to be caused by cmake/catkin_generate_virtualenv.cmake using rosrun to invoke the various Python scripts in catkin_virtualenv (here).

These seem to go away after adding a build_export_depend on rospack to catkin_virtualenvs manifest (I get other errors then, but that's for another issue).

rosrun is part of rosbash, which now depends on rospack as well. (ros/ros#189).
However, this patch is only released for melodic (1.14.6) , but not (yet) for kinetic (1.14.4)...

Thanks @ipa-mdl.

Not sure why that hasn't seen a release yet.

@paulbovbel: would it be an option to add rospack as a dependency to catkin_virtualenv in the meantime? Should not be necessary, but without it catkin_virtualenv will not work in environments where rospack is not installed.

Sure, PRs are welcome.

@paulbovbel: I can't really check with build.ros.org down, but have you released a package using the ROS buildfarm that depends on catkin_virtualenv?

I'm having a hard time getting a prerelease build to succeed. Just catkin_virtualenv and test_catkin_virtualenv in a prerelease build fail for me with catkin_generate_virtualenv(..) because rospack can't find catkin_virtualenv.

I have in the past released the test_* packages, until I was asked to filter them out during bloom (https://github.com/locusrobotics/catkin_virtualenv-release/blob/master/melodic.ignored). I've also released plenty of dependent packages on our internal buildfarm (before we replaced it with a different CI). However, I've never in my life run a pre-release build, I usually just rely on catkin-tools to tell me if something isn't right.

Also, I've reminded myself of the rospack issue. Would it make sense to get a fix by asking upstream to release ros/ros 1.14.6 on kinetic? It is on the kinetic-devel branch after all.

I have in the past released the test_* packages, until I was asked to filter them out during bloom (https://github.com/locusrobotics/catkin_virtualenv-release/blob/master/melodic.ignored). I've also released plenty of dependent packages on our internal buildfarm (before we replaced it with a different CI). However, I've never in my life run a pre-release build, I usually just rely on catkin-tools to tell me if something isn't right.

hm. Interesting.

For some reason the environment seems to be different between catkin_make_isolated and catkin_tools leading to build errors.

I'm hesitant to just release something if I can't get it to pass a prerelease test build.

Also, I've reminded myself of the rospack issue. Would it make sense to get a fix by asking upstream to release ros/ros 1.14.6 on kinetic? It is on the kinetic-devel branch after all.

yes, of course. But knowing the workload of OR I was thinking adding the dependency here would get us going, at least until a release of ros/ros is done.

because rospack can't find catkin_virtualenv.

rospack depends on ros_environment (ros/rospack#88 & ros/rospack#97), but the patch is not yet (?) released for kinetic

Ok. That was indeed the issue. I was honing in on environment setup issues, but hadn't made the connection with those two PRs yet.

Thanks @ipa-mdl.

Guess we'll have to annoy @dirk-thomas a bit for a few releases.

Closing as this should be fixed if/when ros/ros#189 gets released for Kinetic (and related ros/rospack#88 and ros/rospack#97).