[ros-users] [Discourse.ros.org] [Next Generation ROS] Colcon / amend_tools /?

Dirk Thomas ros.discourse at gmail.com
Wed Jan 2 20:19:51 UTC 2019

[quote="sam, post:6, topic:4685"]

Is there any equivalent to `catkin config` , `catkin clean` in colcon?


`colcon` doesn't have profiles but offers different concepts:

* `metadata` to provide information about packages

* `defaults` to set the default values of command line arguments

* `mixins` to define sets of configuration options which can be combines

The most significant reason why mixins are favored over profiles is that they are combinable which makes it feasible to share mixins between users encouraging reuse (e.g. https://github.com/colcon/colcon-mixin-repository). Supporting something similar than a default profile would certainly be good - I guess it has not been implemented yet since it is not yet clear how best to do so / how best to use such a feature.

[quote="sam, post:6, topic:4685"]

Building a single package without `--packages-select` would be nice too


It should be fairly straight forward to add this feature to the [package-selection](https://github.com/colcon/colcon-package-selection) extension. Please consider to create a PR for it.

One thing to consider is that there can only be one kind of positional arguments like this. Package names to be selected seems like an obvious choice. It might just be that for other use cases other positional args would make more sense. That is why currently all command line options are named arguments (and also have pretty verbose names to avoid collisions of the numerous options).

[quote="sam, post:6, topic:4685"]

So far colcon looks like a bad version of catkin tools to me. I hope its only because Im not used to it yet.


That might highly depend on your point of view. `catkin_tools` has certainly some nice usability features which `colcon` doesn't have at the moment.

But on the other hand there is a pretty long list of features in `colcon` which go beyond what `catkin_tools` can do (just a short excerpt):

* works on all targeted platforms (Linux, macOS, Windows)

* supports the current features of package manifest files including group dependencies

* supports packages without a `package.xml` file (e.g. Gazebo)

* is supported by the `ros_buildfarm`

* highly modular architecture which enables / encourages implementing plugins externally and many are being developed by external people which is great: `bazel`, `bundle`, `cargo`, `gradle`, `lcov-result`

* using more modern tools, e.g. `pytest` including several of its plugins to run Python tests

* being actively maintained since it is the default build tool of ROS 2

* ...

[quote="sam, post:6, topic:4685"]

Are there plans for more features in colcon?


Features are simply being developed on demand so whenever there is a use case which needs something. For many use cases the current state works pretty well and there is no list of features we are planning to work on soon. But as always please feel free to contribute whatever features you consider necessary / important / valuable.


[Visit Topic](https://discourse.ros.org/t/colcon-amend-tools/4685/7) or reply to this email to respond.

More information about the ros-users mailing list