This series moves patman to use asyncio instead of ThreadPoolExecutor since it makes it easier to handle requests sent from different parts of the code.
It also includes some updates to bring patman in line with the other major Python tools (buildman and binman). With this series, we have a better basis to add support for syncing more data from a patchwork server. After this, the next step it to add a new 'patman series' subcommand, to track and manage series workflow. Simon Glass (30): patman: Move all non-test logic into control module patman: Move capture_sys_output() into terminal and rename binman: Correct a typo in the toolpath comment u_boot_pylib: Allow control of capturing u_boot_pylib: Improve ANSI-colour output with backgrounds u_boot_pylib: Add a pager u_boot_pylib: Avoid concurrent execution of only one test u_boot_pylib: Allow disabling colour output tools: Plumb in capture control patman: Correct a stray quote patman: Rename test_basic() in test_checkpatch patman: Tidy up the start-up code patman: Support extra test features patman: Move code for sending into its own module CI: Add a dependency file for patman patman: Create a module for handling patchwork patman: Move Patch and Review to patchwork module patman: Add reading of series and patch status patman: Rename check_patchwork_status() patman: Split up check_and_show_status() patman: Split out the processing of find_new_responses() patman: Adjust how the fake request() function is provided patman: Simplify test_find_new_responses() patman: Show patches in yellow patman: Add more information to Patch patman: Use defaultdict directly patman: Switch over to asyncio patman: Provide an option to run in single-threaded mode patman: Use a pager when outputting status patman: Drop the old status code .azure-pipelines.yml | 2 + .gitlab-ci.yml | 2 + doc/develop/binman_tests.rst | 6 +- tools/binman/bintool_test.py | 20 +- tools/binman/cbfs_util_test.py | 15 +- tools/binman/elf_test.py | 3 +- tools/binman/fip_util_test.py | 11 +- tools/binman/ftest.py | 106 ++++---- tools/binman/image_test.py | 4 +- tools/binman/main.py | 4 +- tools/buildman/func_test.py | 10 +- tools/buildman/main.py | 2 +- tools/buildman/test.py | 6 +- tools/dtoc/main.py | 5 +- tools/dtoc/test_dtoc.py | 11 +- tools/dtoc/test_fdt.py | 2 +- tools/dtoc/test_src_scan.py | 25 +- tools/patman/__main__.py | 61 +---- tools/patman/cmdline.py | 8 + tools/patman/control.py | 223 +++++---------- tools/patman/func_test.py | 143 +++++----- tools/patman/patchwork.py | 425 +++++++++++++++++++++++++++++ tools/patman/pyproject.toml | 2 +- tools/patman/requirements.txt | 1 + tools/patman/send.py | 179 ++++++++++++ tools/patman/status.py | 463 ++++++++++++-------------------- tools/patman/test_checkpatch.py | 2 +- tools/u_boot_pylib/__main__.py | 2 +- tools/u_boot_pylib/terminal.py | 105 ++++++-- tools/u_boot_pylib/test_util.py | 29 +- tools/u_boot_pylib/tout.py | 5 +- 31 files changed, 1170 insertions(+), 712 deletions(-) create mode 100644 tools/patman/patchwork.py create mode 100644 tools/patman/requirements.txt create mode 100644 tools/patman/send.py -- 2.43.0 base-commit: b5d6220dd2f4612912989f3c2b5a710f2248cb36 branch: pata