Ignore CATKIN_IGNORE paths only when build_type is catkin (same for AMENT_IGNORE)#127
Ignore CATKIN_IGNORE paths only when build_type is catkin (same for AMENT_IGNORE)#127janstrohbeck wants to merge 1 commit into
Conversation
|
Not sure why the CI fails, |
|
FWIW, the current behavior prevents the parsing of the manifest in a directory blocked by a I'm not sure that's a common situation, but I thought I'd mention it. |
|
By the change, CATKIN_IGNORE or AMENT_IGNORE files are only considered, if the build type matches catkin/ament. |
|
The author's outlined use-case seems in some ways like it should really be the expected behavior for If colcon's expected behavior in this case seems ambiguous, then I think it makes sense to at least allow for a CLI way to remove If this PR isn't going to be merged, then is there a command-line way to remove |
|
While colcon is primarily used for ROS 2, there have been issues in mixed ROS 1/ROS 2 workspaces or during migration periods where colcon unintentionally recognizes CATKIN_IGNORE, causing packages to be excluded from the build. This PR allows colcon build to ignore CATKIN_IGNORE. This clarifies the distinction between CATKIN_IGNORE (for catkin build tools) and COLCON_IGNORE (for colcon), reducing potential user confusion. I expect this to significantly improve usability, especially in environments where ROS 1 and ROS 2 packages coexist. |
My use case: I have a shared source space in which both ROS1 and ROS2 packages reside (the migration to ROS2 is ongoing). Now I want to build the ROS1 packages using catkin_tools, same as before, and the ROS2 packages using colcon. To do this, I place CATKIN_IGNORE files in the ROS2 packages, and COLCON_IGNORE files in the ROS1 packages.
Problem: colcon-ros ignores the ROS2 packages due to an existing CATKIN_IGNORE.
I think colcon should ignore ROS2 packages only when there is a COLCON_IGNORE file present (or AMENT_IGNORE), and respect CATKIN_IGNORE only when the build_type is catkin, as indicated by the package.xml. This PR implements this behavior.