ros2 tab completion not working after Bouncy
Before the Bouncy release I was developing my Ada client library against some ROS2 indeterminate rolling status, built from source (last checked out about a month ago). I was using ament at the time. Last time I tried, tab completion worked with the ros2 executable; both my packages and the executables within were offered and could be run.
After upgrading to Bouncy (from source, latest stable) tab completion no longer works. Neither the packages nor executables appear on hitting tab. Furthermore, even if I write a proper launch command, it says the package does not exist. Unfortunately, I'm not 100% sure I haven't changed anything important in my CMake files. On the other hand, I'm not sure either how one has to create executables so they're known to tab completion. I'm using plain cmake build method, with add_executable
(which used to work).
Here is a sequence of compilation/sourcing:
$ cd ada4bouncy/
$ source ../ros2_bouncy/install/setup.bash # ros2 installation from source
$ colcon build
Starting >>> rclada_common
Finished <<< rclada_common [3.89s]
Starting >>> rosidl_generator_ada
Finished <<< rosidl_generator_ada [15.70s]
Starting >>> rclada
Finished <<< rclada [13.37s]
Starting >>> rclada_examples
Finished <<< rclada_examples [6.12s]
Summary: 4 packages finished [39.34s]
$ source install/setup.bash
$ find install -name rclada_selftest # Check the executable is where it should be
install/rclada/lib/rclada/rclada_selftest
$ ros2 run rclada rclada_selftest # This fails
Package 'rclada' not found
argcomplete is version 1.8.1 from Ubuntu:
$ apt policy python3-argcomplete
python3-argcomplete:
Installed: 1.8.1-1ubuntu1
that matches the version offered by pip:
$ pip show argcomplete
Name: argcomplete
Version: 1.8.1
Any ideas on how to further diagnose this matter?
In further testing I've created two dummy packages via
ros2 pkg create
and completion works when build method isament_cmake
but not for plaincmake