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

Revision history [back]

As far as I can tell this is a bug with colcon. I created a ament_python and ament_cmake package as per the tutorials and did a colcon build --symlink-install. Looking at the install/ directory, the ament_cmake package has its launch files symlinked to the ones in my source tree, but for the ament_python package, there is a copy of the launch, so I suspect colcon is also just copying the .yaml files every time you build.

That's all I have for now, unfortunately I don't know python's setuptools etc. well enough to figure out what needs to be changed.

As far as I can tell this is a bug with colcon. I created a ament_python and ament_cmake package as per the tutorials and did a colcon build --symlink-install. Looking at the install/ directory, the ament_cmake package has its launch files symlinked to the ones in my source tree, but for the ament_python package, there is a copy of the launch, so I suspect colcon is also just copying the .yaml files every time you build.

That's all I have for now, unfortunately I don't know Here are some other issue reports from github with the same complaint: https://github.com/colcon/colcon-core/issues/407

Apparently it has to do with the way python's setuptoolsament_python etc. well enough to figure out what needs to be changed.handles the "symlinking" (it does not actually use symlinks): https://github.com/colcon/colcon-core/issues/482

As far as I can tell this This is a bug with colcon. the build tools.

To verify, I created a ament_python and ament_cmake package as per the tutorials and did a colcon build --symlink-install. . Looking at the install/ directory, the ament_cmake package has its launch files symlinked to the ones in my source tree, tree, but for the ament_python package, there is a copy of the launch, so I suspect colcon is also launch. In other words when you call colcon build --symlink-install, your .yaml files are just copying the .yaml files every time you build.copied to the right place in the install/ directory.

Here are some other issue reports from github with the same complaint: https://github.com/colcon/colcon-core/issues/407

https://github.com/colcon/colcon-core/issues/407. Apparently it has to do with the way ament_python handles the "symlinking" (it does not actually use symlinks): https://github.com/colcon/colcon-core/issues/482symlinks): https://github.com/colcon/colcon-core/issues/482. You can join the conversation there and try to resolve the issue if you are interested. Otherwise, you could try to manually symlink the files in the install directory as a workaround, but that would break every time you call colcon build.

This is a bug with the build tools.

To verify, I created a ament_python and ament_cmake package as per the tutorials and did a colcon build --symlink-install. Looking at the install/ directory, the ament_cmake package has its launch files symlinked to the ones in my source tree, but for the ament_python package, there is a copy of the launch. In other words when you call colcon build --symlink-install, your .yaml files are just copied to the right place in the install/ directory.

Here are some other issue reports from github with the same complaint: https://github.com/colcon/colcon-core/issues/407. Apparently it has to do with the way ament_python handles the "symlinking" (it does not actually use symlinks): https://github.com/colcon/colcon-core/issues/482. You can join the conversation there and try to resolve the issue if you are interested.

You could use ament_cmake instead of ament_python since this seems to be handling the linking in the expected way. Otherwise, depending on your needs, you could try to manually symlink the files in the install directory as a workaround, but workaround. Take note that would this will break every time you call colcon build.