Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Automatically resolve source dependencies?

We have a set of ros packages that depend on each other, but are all still in development, i.e. not released. This means the only way to get them is to check out their latest versions from git and build them in the local catkin workspace.

But then, one has to manually find the repository URLs for all dependencies and clone those too.

Actually, the same is true for system dependencies on a system where one does not have apt permissions (i.e. a lab computer).

Now, I'm aware I could set up a workspace with all the packages using wstool and then share that, but this is inconvenient for developers who only need an independent subset of packages.

What I'd instead like to do is resolve dependencies automatically, like rosdep does, but instead of using a package manager to globally install them, have their source checked out into a local catkin workspace.

This is what I imagine the workflow looking like:

$ mkdir -p catkin_workspace/src && cd catkin_workspace/src
$ catkin_init_workspace
$ git clone https://company_server.com/ourcoolpackage.git
$ cd ourcoolpackage
$ rospack deps | rosdep --download-source --target-folder=..
$ # recursive solving of dependencies would be great, too
$ cd ../..
$ catkin_make # everything magically works!

Adding a custom source to rosdep seems like a step in the right direction, but I can't find a way to have rosdep just download sources.

Is there already some tool that does this and that I overlooked?