Ask Your Question
0

Buildfarm addon fork requires ros-"my_distribution"-catkin

asked 2017-08-20 01:30:48 -0500

Bo Li gravatar image

updated 2017-08-20 01:31:23 -0500

Hi, me again.

Have achieved great progress last several weeks in deploying a buildfarm. Thanks for the help on my previous questions. I am doing an addon fork with a customized distribution e.g. "my-kinetic". My ros_buildfarm_config/index.yaml is like:

distributions:
  my-kinetic:
    doc_builds:
      default: my-kinetic/doc-build.yaml
      released-packages-without-doc-job: my-kinetic/doc-released-build.yaml
    notification_emails:
    - libo@somewhere
    release_builds:
      default: my-kinetic/release-build.yaml
    source_builds:
      default: my-kinetic/source-build.yaml

My rosdistro/index.yaml is like

distributions:
  my-kinetic:
    distribution: [my-kinetic/distribution.yaml]
    distribution_cache: http://162.243.151.49/rosdistro_cache/my-kinetic-cache.yaml.gz

My rosdistro only contains thirdparty packages, the original packages are imported from official repo and ported to rosdeps using mikepurvis' rosdep-generator.

When I ran a dev job, one of the "generic dependencies", catkin is resolved to ros-my-kinetic-catkin due to [ https://github.com/ros-infrastructure... ]. But there is obviously no ros-"my"-kinetic-catkin anywhere. So I would like to know what the formal way to solve this for an addon fork. (The other ROS dependencies are correctly resolved to ros-kinetic-*, though).

I tried to add catkin into my rosdistro and try to compile a copy for my buildfarm. But this requires the catkin-release repo to have a debian/ros-"my"-kinetic-catkin_0.7.6-0_xenial branch, which obviously not the case.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2017-09-29 20:06:58 -0500

tfoote gravatar image

It looks like the logic for the devel job is not complete enough.

It's injecting catkin as a dependency since there are a lot of packages that implicitly depend upon it. However for your use case it is being injected incorrectly. For your use case you could disable that injection in the line of code linked if catkin is not actually needed. Or I believe that if you add a dependency on catkin explicitly which would mean that catkin would be in the list and the injection would be skipped. This is probably the shortest solution.

In the long run we should probably only do this injection if catkin is in the rosdistro selected. Which is unfortunately not something that we necessarily have access to.

The other real solution is to make sure that this dependency is actually accurately declared, and not assumed so that we don't have to add the dependency it will already be in the list.

edit flag offensive delete link more

Comments

tfoote gravatar imagetfoote ( 2018-01-17 15:09:08 -0500 )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

2 followers

Stats

Asked: 2017-08-20 01:30:48 -0500

Seen: 60 times

Last updated: Sep 29 '17