Missconfiguration leading to missing package?

Hi, I am still doing my first steps with a custom buildfarm. Now I got stuck during the “local” build when runing the script generated by “generate_devel_script.py”. The code gets checkout out fine and building and testing distro packages like rviz etc works. However with my own package it thows:

[…]
Resolved the dependencies to the following binary packages:

  • liblapack-dev
  • ros-kinetic-catkin
  • ros-kinetic-joint-state-publisher
  • ros-kinetic-moveit-core
  • ros-kinetic-moveit-ros-planning
  • ros-kinetic-pluginlib
  • ros-kinetic-robot-state-publisher
  • ros-kinetic-roscpp
  • ros-kinetic-rviz
  • ros-kinetic-tf-conversions
  • ros-kinetic-urdf
  • ros-kinetic-xacro
    Traceback (most recent call last):
    File “/usr/lib/python3/dist-packages/apt/cache.py”, line 194, in getitem
    return self._weakref[key]
    File “/usr/lib/python3.5/weakref.py”, line 131, in getitem
    o = self.datakey
    KeyError: ‘ros-kinetic-moveit-ros-planning’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/apt/cache.py”, line 198, in getitem
rawpkg = self._cache[key]
KeyError: ‘ros-kinetic-moveit-ros-planning’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/tmp/ros_buildfarm/scripts/devel/create_devel_task_generator.py”, line 251, in
main()
File “/tmp/ros_buildfarm/scripts/devel/create_devel_task_generator.py”, line 116, in main
get_binary_package_versions(apt_cache, debian_pkg_names))
File “/tmp/ros_buildfarm/ros_buildfarm/common.py”, line 144, in get_binary_package_versions
pkg = apt_cache[debian_pkg_name]
File “/usr/lib/python3/dist-packages/apt/cache.py”, line 200, in getitem
raise KeyError(‘The cache has no package named %r’ % key)
KeyError: “The cache has no package named 'ros-kinetic-moveit-ros-planning’”

Is the something wrong with my buildfarm configuration or did I make a mistake in my package.xml?
Or can I somehow refresh the cache

sudo apt-get install ros-kinetic-moveit-ros-planning works fine…

Some hint on possible causes would be helpful even if it is just a guess.

I don’t know how you have setup your own buildfarm and what packages you are actually building. But looking at the official build farm and the status of the moveit_ros_planning package: http://repositories.ros.org/status_page/ros_kinetic_default.html?q=moveit_ros_planning

The public repo contains an older release of the package (the blue boxes in the X64 and X32 columns). So if you are using that apt repo you can successfully install the Debian package. But the current version fails to build (red boxes in the X64 and X32 columns) and therefore there is no Debian package available in the building and testing apt repos.

On the official farm that is caused be the latest OpenCV3 release which fails to build the sourcedeb (see http://build.ros.org/view/Kbin_uX64/job/Ksrc_uX__opencv3__ubuntu_xenial__source/). And that package is a transitive dependency of moveit_ros_planning. So until a new OpenCV3 is being made that problem will stay the same.

Ok, thanks for the quick answer!

Seems that I still lack essential understanding of the buildfarm mechanisms I will try to dig depper into it. But so far I understood that:

  • If I currently declare in my package a <build_depend> to moveit_ros_planning the devel job will fail since moveit_ros_planning does currently not build successfully.
  • Because it does not build successfully its debian does not appear in http://repositories.ros.org/ubuntu/testing and http://repositories.ros.org/ubuntu/building and therefor can not be apt inside the devel job.
  • The result will be that my package won’t get “green light” until moveit is fixed and thus I case I would be part of the official buildfarm it would not get included in the official ros release.

Did I get this right so far? The only possible thing is to wait for a fix?

Could I get my package to green using travis as described in: https://github.com/ros-infrastructure/ros_buildfarm/blob/master/doc/jobs/devel_jobs.rst ?

It doesn’t matter where you run it. If a package that your package depends on is not successfully building, your devel job cannot install all the dependencies, and thus your package cannot be successfully built.

You have a few other options:

  • You can wait for a fix.
  • You can try to help fix the issue in the dependency. On your custom buildfarm you can choose to override versions of packages, such as rollback or patching repos too.
  • You can find a way to eliminate that dependency and then you won’t be blocked by it.

Note that we’ve rolled back the latest opencv3 release in the main rosdistro and a rebuild is in progress so if that’s the only issue blocking your tests, the wait for a fix approach is likely to work in the short term.