Hi, this series aims to support Python 3.14; a large part of how it achieves this is by backporting various changes that have been made to the python-qemu-qmp standalone library to ensure that our in-tree version is very nearly byte identical to the standalone version.
Several of Dan's patches are appended here which remove all deprecated behavior from our test suite and enables printing warnings whenever deprecated behavior is used so we will be able to catch it more readily in the future. Following this series, I intend to drop the QMP library from the qemu tree once and for all so that they do not desynchronize again. The standalone library needs to drop avocado-framework and cut a v0.0.4 release first, but it's currently my top priority to end this embarrassing patch of duplicated code and maintenance. Reviewers: try applying this series and using diff to compare the qemu.git/python/qemu/qmp and python-qemu-qmp.git/qemu/qmp directories; you should find only five differences: three instances of LICENSE text being slightly different (pointing to LICENSE vs COPYING) and two instances of a pylint ignore that are not needed in qemu.git due to slightly different linter configuration in qemu.git/python/setup.cfg. If further changes are warranted, it is my preference to try to "upstream" them first before backporting them here instead of trying to amend this series. V2: Squashed two commits in order to prevent regressions in qemu.git. --js Adam Dorsey (1): python: backport 'feat: allow setting read buffer limit' Daniel P. Berrangé (5): iotests: drop compat for old version context manager python: ensure QEMUQtestProtocol closes its socket iotests/147: ensure temporary sockets are closed before exiting iotests/151: ensure subprocesses are cleaned up iotests/check: always enable all python warnings John Snow (12): python: backport 'Change error classes to have better repr methods' python: backport 'EventListener: add __repr__ method' python: backport 'kick event queue on legacy event_pull()' python: backport 'protocol: adjust logging name when changing client name' python: backport 'drop Python3.6 workarounds' python: backport 'qmp-shell: add common_parser()' python: backport 'make require() preserve async-ness' python: backport 'qmp-shell-wrap: handle missing binary gracefully' python: backport 'qmp-tui: Do not crash if optional dependencies are not met' python: backport 'Remove deprecated get_event_loop calls' python: backport 'avoid creating additional event loops per thread' python: synchronize qemu.qmp documentation python/qemu/machine/qtest.py | 2 + python/qemu/qmp/__init__.py | 3 +- python/qemu/qmp/error.py | 7 +- python/qemu/qmp/events.py | 50 ++++++-- python/qemu/qmp/legacy.py | 46 +++++--- python/qemu/qmp/message.py | 22 ++-- python/qemu/qmp/models.py | 8 +- python/qemu/qmp/protocol.py | 194 +++++++++++++++++++------------ python/qemu/qmp/qmp_client.py | 155 +++++++++++++++++------- python/qemu/qmp/qmp_shell.py | 165 ++++++++++++++++++-------- python/qemu/qmp/qmp_tui.py | 30 +++-- python/qemu/qmp/util.py | 143 ++++++----------------- python/tests/protocol.py | 10 +- tests/qemu-iotests/147 | 1 + tests/qemu-iotests/151 | 5 + tests/qemu-iotests/check | 4 + tests/qemu-iotests/testenv.py | 7 +- tests/qemu-iotests/testrunner.py | 9 +- 18 files changed, 532 insertions(+), 329 deletions(-) -- 2.50.1