ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Releasing a package with a dependency that is not in ROS ecosystem

asked 2019-01-31 12:08:05 -0500

andres gravatar image

Hi, I'm trying to release a package that depends on other ROS package but is not indexed nor published yet. I use it as a submodule to clone in my repo or simply just adding the dependency packages to the workspace and compile the hole files along mine. Now the build farm fails because it can't resolve the rosdep key. Is it possible to do this release with a non-published dependency? Thanks

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2019-01-31 12:34:32 -0500

gvdhoorn gravatar image

updated 2019-01-31 12:34:48 -0500

Unfortunately, afaik the answer is "no, not at this time".

The ROS buildfarm uses a Debian style approach to building packages, so all dependencies must either be released ROS packages or system dependencies that have been released as well.

Is there a reason the dependency is not released? If there is none, I would first release your dependency and then release the dependent (you could even do it at the same time if they are hosted by the same repository).

edit flag offensive delete link more


I haven't tried this, but I have speculated if you add a git submodule to this dependency in your repo, when the buildfarm clones it, it might grab that code too to build.

stevemacenski gravatar image stevemacenski  ( 2019-01-31 12:46:50 -0500 )edit

Recursive cloning is supported by ros_buildfarm since ros-infrastructure/ros_buildfarm#515, but I'm not sure that is just for locally run jobs or also on the buildfarm, and whether release jobs support it.

gvdhoorn gravatar image gvdhoorn  ( 2019-01-31 13:33:26 -0500 )edit

Perhaps @Dirk Thomas or @nuclearsandwich can say something about that.

gvdhoorn gravatar image gvdhoorn  ( 2019-01-31 13:33:54 -0500 )edit

From a system hygiene perspective, I cannot recommend completely vendoring a non-trivial dependency and I would go as far as saying that to do so for code that will be accessible via ABI/API to package consumers is a no-go. Releasing the dependency via Debian/Ubuntu or the ROS buildfarm is preferred

nuclearsandwich gravatar image nuclearsandwich  ( 2019-03-01 09:23:36 -0500 )edit

Question Tools


Asked: 2019-01-31 12:08:05 -0500

Seen: 111 times

Last updated: Jan 31 '19