# What is the status of catkin-tools?

As a newly starting user of ROS, should I use catkin_make or catkin build?

More in general: What is the status of catkin-tools?

Background: I'm getting started, going through tutorials on https://wiki.ros.org/ , where I mainly see examples of catkin_make. Meanwhile I came across the catkin-tools project, where in the documentation there's an extensive explanation of the history of catkin: from catkin_make to catkin_make_isolated to pcmi to catkin build in the catkin-tools project. Reading that description gave me the idea that it would be better to use catkin build instead of catkin_make.

I've tried searching ROS Discourse and Answers and then Google for an answer to my question, but the most relevant info I found were some issues in the Github issue tracker of catkin-tools, dating back to 2014, but none seemed conclusive to me.

edit retag close merge delete

Sort by » oldest newest most voted

@William may have a more authoritative answer, but afaik, the official status of catkin_tools is currently the same as it was when the issues you link were last commented on. As is stated in the preamble of the catkin_tools documentation (and was merged in catkin/catkin_tools#54):

This package was announced in March 2015 and is still in beta.

However, catkin_tools has been used by many users, and at least since 2015. I use it daily, and I know of quite a few developers who would not change back to any of the other build tools that are available, unless they were forced to do so.

As you can gauge from the issue tracker though, there are still some (complex) issues to solve before catkin_tools can be said to be fully mature. But as I wrote above, for regular usage it's already ok to use.

As a newly starting user of ROS, should I use catkin_make or catkin build?

I believe there isn't really such a big difference between the two, at least not for typical or average users and use-cases. The former will allow you to get away with some shortcuts in your CMakeLists.txt which with the latter will result in failing builds, but build scripts with those issues are essentially 'buggy' and should be fixed regardless of the build tool used.

The major advantage of catkin_tools for most people comes from the convenience it offers when working with multiple workspaces, profiles, more explicit workspace management, support for building workspaces with both plain CMake and Catkin packages and quite a few more things plain catkin_make lacks.

In the end both will build your workspace.

Edit: perhaps important to clarify / emphasise: contrary to what is sometimes stated, the choice for any of the Catkin build tools does not (or: should not) imply that any 'migration' is needed or that they are incompatible with each other. Packages should build, regardless of the choice of build tool.

As convenient as Catkin (any of the mentioned tools) is/can be, in the end it's still CMake doing much of the heavy lifting. This is no different in any of the Catkin tools.

more

This answer is correct. Thanks @gvdhoorn.

( 2018-04-26 12:30:46 -0500 )edit