ament / ament_lint

Apache License 2.0
38 stars 107 forks source link

TypeError on debian11 #468

Open christophfroehlich opened 10 months ago

christophfroehlich commented 10 months ago

Hi! I'm currently working on a docker image with debian 11 (humble, iron) and debian 12 for a CI job for ros2_control. With the default python package versions on debian 11/humble, I get this error when running colcon test on any msg definition packages, e.g. for control_msgs

27: Test timeout computed to be: 60
27: -- run_test.py: invoking following command in '/root/ros2_ws/src/ros-controls/control_msgs/control_msgs':
27:  - /opt/ros2_ws/install/ament_flake8/bin/ament_flake8 --xunit-file /root/ros2_ws/build/control_msgs/test_results/control_msgs/flake8_rosidl_generated_py.xunit.xml --linelength 999 /root/ros2_ws/build/control_msgs/rosidl_generator_py/control_msgs
27: Traceback (most recent call last):       
27:   File "/opt/ros2_ws/install/ament_flake8/bin/ament_flake8", line 33, in <module>
27:     sys.exit(load_entry_point('ament-flake8==0.12.9', 'console_scripts', 'ament_flake8')())
27:   File "/opt/ros2_ws/install/ament_flake8/lib/python3.9/site-packages/ament_flake8/main.py", line 31, in main
27:     rc, _ = main_with_errors(argv=argv)
27:   File "/opt/ros2_ws/install/ament_flake8/lib/python3.9/site-packages/ament_flake8/main.py", line 88, in main_with_errors
27:     report = generate_flake8_report(
27:   File "/opt/ros2_ws/install/ament_flake8/lib/python3.9/site-packages/ament_flake8/main.py", line 250, in generate_flake8_report
27:     opts, _ = parse_config_file(config_file)
27:   File "/opt/ros2_ws/install/ament_flake8/lib/python3.9/site-packages/ament_flake8/main.py", line 236, in parse_config_file
27:     return aggregator.aggregate_options(
27:   File "/usr/lib/python3/dist-packages/flake8/options/aggregator.py", line 45, in aggregate_options
27:     parsed_config = config_parser.parse()
27:   File "/usr/lib/python3/dist-packages/flake8/options/config.py", line 310, in parse
27:     return self.parse_cli_config(self.config_finder.config_file)
27:   File "/usr/lib/python3/dist-packages/flake8/options/config.py", line 266, in parse_cli_config
27:     return self._parse_config(config, os.path.dirname(config_path))
27:   File "/usr/lib/python3.9/posixpath.py", line 152, in dirname
27:     p = os.fspath(p)
27: TypeError: expected str, bytes or os.PathLike object, not list
27: -- run_test.py: return code 1

But the same is working on debian 12 with rolling version.

I know, debian 11 is "only" Tier 3 but maybe there is an easy fix for this. Do I have installed a wrong package (version) of any dependency? pip_list output

audrow commented 10 months ago

Hi @christophfroehlich, I'm going to mark this as help wanted. If you find an easy fix for this, feel free to make a PR and @ me or the repo maintainers for a review.