Ask Your Question
0

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

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

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
1

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

gvdhoorn gravatar image

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

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

Comments

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 imagestevemacenski ( 2019-01-31 12:46:50 -0600 )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 imagegvdhoorn ( 2019-01-31 13:33:26 -0600 )edit

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

gvdhoorn gravatar imagegvdhoorn ( 2019-01-31 13:33:54 -0600 )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 imagenuclearsandwich ( 2019-03-01 09:23:36 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

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

Seen: 43 times

Last updated: Jan 31