On Mon, Jan 10, 2022 at 6:29 PM John Snow <js...@redhat.com> wrote: > > Based-on: <20220110232521.1922962-1-js...@redhat.com> > (jsnow/python staging branch) > GitLab: https://gitlab.com/jsnow/qemu/-/commits/python-qmp-legacy-switch > CI: https://gitlab.com/jsnow/qemu/-/pipelines/445163212 > > Hi, this series is part of an effort to publish the qemu.qmp package on > PyPI. It is the first of three series to complete this work: > > --> (1) Switch the new Async QMP library in to python/qemu/qmp > (2) Fork python/qemu/qmp out into its own repository, > with updated GitLab CI/CD targets to build packages. > (3) Update qemu.git to install qemu.qmp from PyPI, > and then delete python/qemu/qmp. > > This series swaps out qemu.qmp for qemu.aqmp permanently, instead of > hiding it behind an environment variable toggle. This leaves us with > just one QMP library to worry about. It also implements the rename of > "qemu.aqmp" to "qemu.qmp". > > I suspect the most potential disruption to iotest and avocado > maintainers, as those two subsystems rely on the QMP features the > most. Would appreciate at least an ACK from each of those camps if > you're willing to give benefit-of-the-doubt on the actual Python code. >
Patches 1-4 were already merged. I'm staging patches 5-16, and 18-20. I'm leaving behind patches 17 and 21-23 for further review; patches 24-31 can be staged separately after 17, 21-23 go ahead. --js > V3: > - Rebased on top of jsnow/python (For GitLab CI fixes) > - Added a new patch 001 to fix a typo Vladimir found. > - Tiny change in 006 due to the new patch 001 > - Reworded subject of patch 007 > - Changed import statement in patch 013 (Vladimir) > - Rebase-related changes in patch 021 > - Removed 'aqmp' from internal variable names in 026 > - Added new patch to rename aqmp-tui to qmp-tui in 027 > > V2: > - Integrate the renaming of qemu.aqmp to qemu.qmp in this series > - Minor bits and pieces. > > John Snow (30): > python/aqmp: use absolute import statement > Python/aqmp: fix type definitions for mypy 0.920 > python: update type hints for mypy 0.930 > python/aqmp: fix docstring typo > python/aqmp: add __del__ method to legacy interface > python/aqmp: handle asyncio.TimeoutError on execute() > python/aqmp: copy type definitions from qmp > python/aqmp: add SocketAddrT to package root > python/aqmp: rename AQMPError to QMPError > python/qemu-ga-client: don't use deprecated CLI syntax in usage > comment > python/qmp: switch qemu-ga-client to AQMP > python/qmp: switch qom tools to AQMP > python/qmp: switch qmp-shell to AQMP > python: move qmp utilities to python/qemu/utils > python: move qmp-shell under the AQMP package > python/machine: permanently switch to AQMP > scripts/cpu-x86-uarch-abi: fix CLI parsing > scripts/cpu-x86-uarch-abi: switch to AQMP > scripts/render-block-graph: switch to AQMP > scripts/bench-block-job: switch to AQMP > iotests/mirror-top-perms: switch to AQMP > iotests: switch to AQMP > python: temporarily silence pylint duplicate-code warnings > python/aqmp: take QMPBadPortError and parse_address from qemu.qmp > python/aqmp: fully separate from qmp.QEMUMonitorProtocol > python/aqmp: copy qmp docstrings to qemu.aqmp.legacy > python: remove the old QMP package > python: re-enable pylint duplicate-code warnings > python: rename qemu.aqmp to qemu.qmp > python: rename 'aqmp-tui' to 'qmp-tui' > > Stefan Weil (1): > simplebench: Fix Python syntax error (reported by LGTM) > > python/qemu/qmp/README.rst | 9 - > python/qemu/aqmp/__init__.py | 51 -- > python/qemu/aqmp/legacy.py | 138 ------ > python/qemu/aqmp/py.typed | 0 > python/qemu/machine/machine.py | 18 +- > python/qemu/machine/qtest.py | 2 +- > python/qemu/qmp/__init__.py | 441 ++---------------- > python/qemu/{aqmp => qmp}/error.py | 12 +- > python/qemu/{aqmp => qmp}/events.py | 6 +- > python/qemu/qmp/legacy.py | 319 +++++++++++++ > python/qemu/{aqmp => qmp}/message.py | 0 > python/qemu/{aqmp => qmp}/models.py | 0 > python/qemu/{aqmp => qmp}/protocol.py | 33 +- > python/qemu/{aqmp => qmp}/qmp_client.py | 32 +- > python/qemu/qmp/qmp_shell.py | 31 +- > .../qemu/{aqmp/aqmp_tui.py => qmp/qmp_tui.py} | 14 +- > python/qemu/{aqmp => qmp}/util.py | 0 > python/qemu/{qmp => utils}/qemu_ga_client.py | 24 +- > python/qemu/{qmp => utils}/qom.py | 5 +- > python/qemu/{qmp => utils}/qom_common.py | 9 +- > python/qemu/{qmp => utils}/qom_fuse.py | 11 +- > python/setup.cfg | 23 +- > python/tests/protocol.py | 14 +- > scripts/cpu-x86-uarch-abi.py | 7 +- > scripts/device-crash-test | 4 +- > scripts/qmp/qemu-ga-client | 2 +- > scripts/qmp/qom-fuse | 2 +- > scripts/qmp/qom-get | 2 +- > scripts/qmp/qom-list | 2 +- > scripts/qmp/qom-set | 2 +- > scripts/qmp/qom-tree | 2 +- > scripts/render_block_graph.py | 8 +- > scripts/simplebench/bench-example.py | 2 +- > scripts/simplebench/bench_block_job.py | 5 +- > tests/qemu-iotests/iotests.py | 2 +- > tests/qemu-iotests/tests/mirror-top-perms | 13 +- > 36 files changed, 502 insertions(+), 743 deletions(-) > delete mode 100644 python/qemu/qmp/README.rst > delete mode 100644 python/qemu/aqmp/__init__.py > delete mode 100644 python/qemu/aqmp/legacy.py > delete mode 100644 python/qemu/aqmp/py.typed > rename python/qemu/{aqmp => qmp}/error.py (87%) > rename python/qemu/{aqmp => qmp}/events.py (99%) > create mode 100644 python/qemu/qmp/legacy.py > rename python/qemu/{aqmp => qmp}/message.py (100%) > rename python/qemu/{aqmp => qmp}/models.py (100%) > rename python/qemu/{aqmp => qmp}/protocol.py (97%) > rename python/qemu/{aqmp => qmp}/qmp_client.py (96%) > rename python/qemu/{aqmp/aqmp_tui.py => qmp/qmp_tui.py} (98%) > rename python/qemu/{aqmp => qmp}/util.py (100%) > rename python/qemu/{qmp => utils}/qemu_ga_client.py (94%) > rename python/qemu/{qmp => utils}/qom.py (99%) > rename python/qemu/{qmp => utils}/qom_common.py (95%) > rename python/qemu/{qmp => utils}/qom_fuse.py (97%) > > -- > 2.31.1 >