Releasing a package with a dependency that is not in ROS ecosystem
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
Asked by andres on 2019-01-31 13:08:05 UTC
Answers
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).
Asked by gvdhoorn on 2019-01-31 13:34:32 UTC
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.
Asked by stevemacenski on 2019-01-31 13:46:50 UTC
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.
Asked by gvdhoorn on 2019-01-31 14:33:26 UTC
Perhaps @Dirk Thomas or @nuclearsandwich can say something about that.
Asked by gvdhoorn on 2019-01-31 14:33:54 UTC
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
Asked by nuclearsandwich on 2019-03-01 10:23:36 UTC
Comments