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

Using Bloom to generate binaries for multiple packages

asked 2016-03-24 17:49:24 -0500

skycoop gravatar image


I'm trying to use bloom to generate binaries for a repository containing multiple packages that are interdependent. However, I don't want to make the packages public (i.e. push to the build farm and make a PR). From my understanding, this leaves me in a gap within bloom.

Since I don't want the package public, bloom-release isn't an option for me, but just running bloom-generate as explained in this answer doesn't work because rosdep is not aware of the other packages.

Is there a way to bridge this gap such that I can obtain binaries for all my packages without pushing to the build farm?


edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2016-03-24 19:00:21 -0500

William gravatar image

You can use a custom rosdistro:

That will make sure your packages are in the rosdep database after releasing them. Also you could just have a local rosdep file which defined translations from your package names to the equivalent debian package names. See:

edit flag offensive delete link more

answered 2018-03-01 03:41:13 -0500

zcm gravatar image

Hi, I encounter the same problem.

When I use the git-bloom-release, it report an error:

==> git-bloom-generate -y rosdebian --prefix release/kinetic kinetic -i 0

Could not resolve rosdep key 'costly-um'

(costly-um is another package in our catkin workspace)

So as William said, should I write the rosdep keys of our packages to the custom distro yaml file before run git-bloom-generate ??

Although I feel this way is not good....

edit flag offensive delete link more


What about these methods don't you feel good about? Using a custom rosdistro is the best-supported method for using bloom to generate release and packaging info for your packages. You should even be able to use file:// urls to keep everything local.

nuclearsandwich gravatar image nuclearsandwich  ( 2018-03-01 07:27:07 -0500 )edit

If you want to avoid creating a custom rosdistro, the workaround is to add keys to the rosdep database on your local machine that hard-code the generated package name for other packages in your workspace.

nuclearsandwich gravatar image nuclearsandwich  ( 2018-03-01 07:29:57 -0500 )edit

Hi, thanks for your reply. Using a local rosdep database is a quick workaround. I just think the way how bloom work isn't good to me... Writing rosdep keys to rosdistro file is necessary, because build-farm need this info to git-buildpackage , but I think it should happen after bloom-release.

zcm gravatar image zcm  ( 2018-03-01 19:53:12 -0500 )edit

bloom-release shouldn't need this info to create release-repo. Any way, I think should split the release process... First, creating the release-repo. Second, release the release-repo to the rosdistro, notify the build-farm. Maybe I am wrong somewhere :)

zcm gravatar image zcm  ( 2018-03-01 19:57:34 -0500 )edit

I think your workflow and friction points are a little different than the original question.Can you create a new question that describes the steps you're taking. Are you using a private buildfarm or building packages with git-buildpackage after running bloom commands? Thanks.

nuclearsandwich gravatar image nuclearsandwich  ( 2018-03-01 21:43:20 -0500 )edit

Sure, creating a new question seems better. Yes, I use the buildbot-ros to setup a private buildfarm for our private project. Everything is fine, except that when there are inter-dependent packages in the workspace, the official approach isn't good... Thanks for your advice.

zcm gravatar image zcm  ( 2018-03-03 00:01:49 -0500 )edit

Question Tools

1 follower


Asked: 2016-03-24 17:49:24 -0500

Seen: 1,543 times

Last updated: Mar 24 '16