The colcon build command will skip directories containing a COLCON_IGNORE file, which is the expected (and desired) behavior. The colcon build command however also skips directories containing a CATKIN_IGNORE file, which is not necessarily the expected behavior.
My question is whether colcon build should really treat COLCON_IGNORE and CATKIN_IGNORE equivalently and if this is viewed as the desired behavior for colcon.
This lack of a distinction between COLCON_IGNORE and CATKIN_IGNORE seems to impose some unnecessary limitations when laying out a migration path from a ROS1 codebase to ROS2. It doesn't allow for phasing out catkin_make in a codebase having both ROS1 and ROS2 packages. Instead, it seems to assume the adoption of colcon for building all ROS package types (1 & 2) which would require updating all ROS1 CMakeLists.txt with the updated install-space from the get-go -- or otherwise forces a need to maintain migrated ROS2 components in a separate top-level folder that has its own ./src directory.
Is this lack of a distinction between COLCON_IGNORE and CATKIN_IGNORE really the intended and desired behavior for colcon build?
The
colcon buildcommand will skip directories containing a COLCON_IGNORE file, which is the expected (and desired) behavior. Thecolcon buildcommand however also skips directories containing a CATKIN_IGNORE file, which is not necessarily the expected behavior.My question is whether
colcon buildshould really treat COLCON_IGNORE and CATKIN_IGNORE equivalently and if this is viewed as the desired behavior for colcon.This lack of a distinction between COLCON_IGNORE and CATKIN_IGNORE seems to impose some unnecessary limitations when laying out a migration path from a ROS1 codebase to ROS2. It doesn't allow for phasing out
catkin_makein a codebase having both ROS1 and ROS2 packages. Instead, it seems to assume the adoption of colcon for building all ROS package types (1 & 2) which would require updating all ROS1 CMakeLists.txt with the updated install-space from the get-go -- or otherwise forces a need to maintain migrated ROS2 components in a separate top-level folder that has its own ./src directory.Is this lack of a distinction between COLCON_IGNORE and CATKIN_IGNORE really the intended and desired behavior for
colcon build?