[PATCH v3 00/31] Python: delete synchronous qemu.qmp package

John Snow posted 31 patches 2 years, 3 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220110232910.1923864-1-jsnow@redhat.com
Maintainers: Hanna Reitz <hreitz@redhat.com>, Cleber Rosa <crosa@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Eduardo Habkost <eduardo@habkost.net>, Markus Armbruster <armbru@redhat.com>, Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>, John Snow <jsnow@redhat.com>
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%)
[PATCH v3 00/31] Python: delete synchronous qemu.qmp package
Posted by John Snow 2 years, 3 months ago
Based-on: <20220110232521.1922962-1-jsnow@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.

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



Re: [PATCH v3 00/31] Python: delete synchronous qemu.qmp package
Posted by John Snow 2 years, 3 months ago
On Mon, Jan 10, 2022 at 6:29 PM John Snow <jsnow@redhat.com> wrote:

> Based-on: <20220110232521.1922962-1-jsnow@redhat.com>
>           (jsnow/python staging branch)
>

Sorry, I goofed. This series accidentally re-includes these patches. You
can ignore the first four patches, or apply directly on top of
origin/master. Sorry for the inconvenience.

--js


> 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.
>
> 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
>
>
>
Re: [PATCH v3 00/31] Python: delete synchronous qemu.qmp package
Posted by John Snow 2 years, 3 months ago
Hi Hanna, Kevin:

I think this series is pretty close, it's mostly reviewed by Vladimir
and Beraldo. Only patches 22 and 23 touch iotests, and quite
minimally. Everything appears to test fine on my end, but I don't
wanna sneak any changes past you without an ACK.

(OK, admittedly, patch 22 is a touch hacky, and I think I will spend
some time today improving it, but I think it will be a follow-up, if
that's okay.)

Thanks,
--js

On Mon, Jan 10, 2022 at 6:33 PM John Snow <jsnow@redhat.com> wrote:
>
>
>
> On Mon, Jan 10, 2022 at 6:29 PM John Snow <jsnow@redhat.com> wrote:
>>
>> Based-on: <20220110232521.1922962-1-jsnow@redhat.com>
>>           (jsnow/python staging branch)
>
>
> Sorry, I goofed. This series accidentally re-includes these patches. You can ignore the first four patches, or apply directly on top of origin/master. Sorry for the inconvenience.
>
> --js
>
>>
>> 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.
>>
>> 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
>>
>>


Re: [PATCH v3 00/31] Python: delete synchronous qemu.qmp package
Posted by John Snow 2 years, 2 months ago
On Mon, Jan 10, 2022 at 6:29 PM John Snow <jsnow@redhat.com> wrote:
>
> Based-on: <20220110232521.1922962-1-jsnow@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
>