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

Tutorials: package format 2 vs format 1

asked 2017-10-26 09:31:57 -0600

flurin4 gravatar image

updated 2017-10-26 10:34:18 -0600

While I was running through the tutorial "CreatingMsgAndSrv", I ran into problems when trying to use

rosmsg show beginner_tutorials/Num

The terminal displayed a long error with

The manifest (with format version 2) must not contain the following tags: run_depend

This sounded strange, as the tutorial had just told me to add the lines with run_depend. After searching a bit, I found here or here (mirror), that the run_depend tag is deprecated in format 2, and was only used in format 1.

This mistake also is introduced in the "CreatingPackage" tutorial. Should the tutorials maybe mention something about the two different versions, similar to the rosbuild/catkin differences?

Could somebody advise as to where I should report this mistake, or how I can help to get it updated?

edit retag flag offensive close merge delete


You link also uses the docs for ROS Jade which is EOL for a while. You might want to look at the docs for an active ROS distro.

Dirk Thomas gravatar image Dirk Thomas  ( 2017-10-26 11:00:15 -0600 )edit

Actually the links I added were for finding where the problem lies. The errors were in the normal Tutorials =) I saw you already updated most of it, but could you also update the code generated from the GitHub project? It's still in parts 6.1.4 and 6.1.5 of the "CreatingPackage" tutorial

flurin4 gravatar image flurin4  ( 2017-10-26 11:19:35 -0600 )edit

I already updated that code with the PR to catkin_tutorials. The wiki is just still using a cached version of the content.

Dirk Thomas gravatar image Dirk Thomas  ( 2017-10-26 11:24:01 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2017-10-26 10:24:57 -0600

gvdhoorn gravatar image

Format 2 package manifests should indeed not use run_depend, but exec_depend (depending on what the run_depend was for).

I believe this discrepancy between what the tutorial tells you and catkin_create_pkg does was introduced in ros-infrastructure/catkin_pkg#191: "catkin_create_pkg use package.xml format 2". That PR made catkin_create_pkg start using format 2, but apparently the submitter did not update the tutorials to match.

As the ROS wiki is just that, a wiki, you could register for an account and then fix the tutorial(s). That would be very much appreciated.

I've commented on PR 191 (here).

edit flag offensive delete link more


Thanks for the feedback! I'll see whether I manage to update the wiki with the new format version.

In some cases I used exec_depend, while in others I directly went for depend, as the same dependencies were both required during build as runtime.

flurin4 gravatar image flurin4  ( 2017-10-26 10:35:13 -0600 )edit

Fast turn-around: @Dirk Thomas fixed the tutorials as well as the code examples (comment).

gvdhoorn gravatar image gvdhoorn  ( 2017-10-26 11:04:14 -0600 )edit

Question Tools

1 follower


Asked: 2017-10-26 09:31:57 -0600

Seen: 768 times

Last updated: Oct 26 '17