Given that the solution proposed is to ship a custom patch, I'm going to bump this to a FFe to get acceptance of the release-team and also unblock the excuses transition in existing Noble development cycle. * Merge request: https://code.launchpad.net/~j-rivero/ubuntu/+source/python-pytest-flake8/+git/python-pytest-flake8/+merge/464197 * Build tested: https://code.launchpad.net/~j-rivero/+recipe/python-pytest-flake8-daily [Justification] This package is stopping the transition in Noble from noble-proposed to noble of python3-flake8, see https://ubuntu-archive-team.ubuntu.com/proposed-migration/update_excuses.html#python-flake8 If you install python3-flake8 in regular Noble right now, you get version 5.0.4. flake8 depends on pydocstyle, which was updated to a newer version (6.3.0), which changed API. So attempting to run flake8 fails at startup, trying to call an invalid API. python3-flake8 7.0.0 and 8.1.1 (the latest) both fix this issue. 8.1.1 is currently the version in noble-proposed. However, it has been stuck in proposed for several months because pythonpytest-flake8 fails tests when used against that version. See the problem in the long build of the ROS buildfarm: https://build.ros2.org/view/Rdev/job/Rdev__ros2cli__ubuntu_noble_amd64/2/console ---- 8< ----------------------------- 08:29:45 _________________________________ test_flake8 __________________________________ 08:29:45 /usr/lib/python3/dist-packages/flake8/plugins/finder.py:296: in _load_plugin 08:29:45 obj = plugin.entry_point.load() 08:29:45 /usr/lib/python3.12/importlib/metadata/__init__.py:205: in load 08:29:45 module = import_module(match.group('module')) 08:29:45 /usr/lib/python3.12/importlib/__init__.py:90: in import_module 08:29:45 return _bootstrap._gcd_import(name[level:], package, level) 08:29:45 /usr/lib/python3/dist-packages/flake8/plugins/pycodestyle.py:25: in 08:29:45 from pycodestyle import missing_whitespace_around_operator as _missing_whitespace_around_operator # noqa: E501 08:29:45 E ImportError: cannot import name 'missing_whitespace_around_operator' from 'pycodestyle' (/usr/lib/python3/dist-packages/pycodestyle.py). Did you mean: 'whitespace_around_operator'? ---- 8< ----------------------------- [Testing done] We have been injecting the python3-flake version in noble-proposed into the ROS buildfarm build, see that there are no failures any more, software run as expected: https://ci.ros2.org/job/ci_linux/20828/console ---- 8< ------------------------------ =============================== warnings summary =============================== test/test_flake8.py::test_flake8 test/test_flake8.py::test_flake8 test/test_flake8.py::test_flake8 test/test_flake8.py::test_flake8 test/test_flake8.py::test_flake8 test/test_flake8.py::test_flake8 test/test_flake8.py::test_flake8 test/test_flake8.py::test_flake8 /usr/lib/python3.12/multiprocessing/popen_fork.py:66: DeprecationWarning: This process (pid=259742) is multi-threaded, use of fork() may lead to deadlocks in the child. self.pid = os.fork() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html --- ---- 8< ------------------------------ The ROS buildfarm is a large project for testing lot of software packages in open source robotics and the use of flake8 is integrated into each python package. We have been using it last weeks without problems.