All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	Kevin Wolf <kwolf@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
	Daniel Berrange <berrange@redhat.com>,
	Beraldo Leal <bleal@redhat.com>,
	qemu-block@nongnu.org, Andrea Bolognani <abologna@redhat.com>,
	Wainer Moschetta <wainersm@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Hanna Reitz <hreitz@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>, Cleber Rosa <crosa@redhat.com>,
	John Snow <jsnow@redhat.com>
Subject: [PATCH v2 00/25] Python: delete synchronous qemu.qmp package
Date: Wed, 15 Dec 2021 14:39:14 -0500	[thread overview]
Message-ID: <20211215193939.3768033-1-jsnow@redhat.com> (raw)

GitLab: https://gitlab.com/jsnow/qemu/-/commits/python-qmp-legacy-switch
CI: https://gitlab.com/jsnow/qemu/-/pipelines/430491195

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".

Who should review what?
  - iotests/block maintainers (Hanna, Vladimir, and Kevin):
    please look at patches 15-18.
  - Dan, please glance at patches 13-14.
  - Anyone who cares about Python: whatever you're willing to
    stomach. We're recently down Willian and Eduardo, so there's not
    many dedicated Python reviewers...

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.

V2:
 - Integrate the renaming of qemu.aqmp to qemu.qmp in this series
 - Minor bits and pieces.

John Snow (25):
  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: update instructions to newer CLI syntax
  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/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}/aqmp_tui.py        |   2 +-
 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        |  28 +-
 python/qemu/{aqmp => qmp}/qmp_client.py      |  32 +-
 python/qemu/qmp/qmp_shell.py                 |  31 +-
 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     |   3 +-
 python/qemu/{qmp => utils}/qom_fuse.py       |  11 +-
 python/setup.cfg                             |  21 +-
 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_block_job.py       |   5 +-
 tests/qemu-iotests/iotests.py                |   2 +-
 tests/qemu-iotests/tests/mirror-top-perms    |  13 +-
 35 files changed, 490 insertions(+), 728 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}/aqmp_tui.py (99%)
 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 => 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 (98%)
 rename python/qemu/{qmp => utils}/qom_fuse.py (97%)

-- 
2.31.1




             reply	other threads:[~2021-12-15 19:43 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-15 19:39 John Snow [this message]
2021-12-15 19:39 ` [PATCH v2 01/25] python/aqmp: add __del__ method to legacy interface John Snow
2021-12-16  9:31   ` Vladimir Sementsov-Ogievskiy
2021-12-16 17:09     ` John Snow
2021-12-16 12:26   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 02/25] python/aqmp: handle asyncio.TimeoutError on execute() John Snow
2021-12-16  9:51   ` Vladimir Sementsov-Ogievskiy
2021-12-16 17:22     ` John Snow
2021-12-16 17:59       ` Vladimir Sementsov-Ogievskiy
2021-12-16 12:39   ` Beraldo Leal
2021-12-16 17:26     ` John Snow
2021-12-15 19:39 ` [PATCH v2 03/25] python/aqmp: copy type definitions from qmp John Snow
2021-12-16 10:00   ` Vladimir Sementsov-Ogievskiy
2021-12-16 10:19   ` Daniel P. Berrangé
2021-12-16 17:31     ` John Snow
2021-12-15 19:39 ` [PATCH v2 04/25] python/aqmp: add SocketAddrT to package root John Snow
2021-12-16 10:01   ` Vladimir Sementsov-Ogievskiy
2021-12-16 13:16   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 05/25] python/aqmp: rename AQMPError to QMPError John Snow
2021-12-16 10:08   ` Vladimir Sementsov-Ogievskiy
2021-12-16 17:01     ` John Snow
2021-12-15 19:39 ` [PATCH v2 06/25] python/qemu-ga-client: update instructions to newer CLI syntax John Snow
2021-12-16 10:14   ` Vladimir Sementsov-Ogievskiy
2021-12-16 17:36     ` John Snow
2021-12-16 10:16   ` Daniel P. Berrangé
2021-12-15 19:39 ` [PATCH v2 07/25] python/qmp: switch qemu-ga-client to AQMP John Snow
2021-12-16 10:31   ` Vladimir Sementsov-Ogievskiy
2021-12-16 17:43     ` John Snow
2021-12-16 13:21   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 08/25] python/qmp: switch qom tools " John Snow
2021-12-16 10:43   ` Vladimir Sementsov-Ogievskiy
2021-12-16 13:26   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 09/25] python/qmp: switch qmp-shell " John Snow
2021-12-16 10:45   ` Vladimir Sementsov-Ogievskiy
2021-12-15 19:39 ` [PATCH v2 10/25] python: move qmp utilities to python/qemu/utils John Snow
2021-12-16 10:48   ` Vladimir Sementsov-Ogievskiy
2021-12-15 19:39 ` [PATCH v2 11/25] python: move qmp-shell under the AQMP package John Snow
2021-12-16 10:49   ` Vladimir Sementsov-Ogievskiy
2021-12-16 13:31   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 12/25] python/machine: permanently switch to AQMP John Snow
2021-12-16 10:51   ` Vladimir Sementsov-Ogievskiy
2021-12-16 17:49     ` John Snow
2021-12-16 13:33   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 13/25] scripts/cpu-x86-uarch-abi: fix CLI parsing John Snow
2021-12-16 10:13   ` Daniel P. Berrangé
2021-12-16 10:55   ` Vladimir Sementsov-Ogievskiy
2021-12-15 19:39 ` [PATCH v2 14/25] scripts/cpu-x86-uarch-abi: switch to AQMP John Snow
2021-12-16 10:14   ` Daniel P. Berrangé
2021-12-16 10:56   ` Vladimir Sementsov-Ogievskiy
2021-12-16 13:46   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 15/25] scripts/render-block-graph: " John Snow
2021-12-16 10:57   ` Vladimir Sementsov-Ogievskiy
2021-12-16 20:48     ` John Snow
2021-12-16 13:47   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 16/25] scripts/bench-block-job: " John Snow
2021-12-16 10:58   ` Vladimir Sementsov-Ogievskiy
2021-12-16 13:49   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 17/25] iotests/mirror-top-perms: " John Snow
2021-12-16 11:01   ` Vladimir Sementsov-Ogievskiy
2021-12-16 13:50   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 18/25] iotests: " John Snow
2021-12-16 11:02   ` Vladimir Sementsov-Ogievskiy
2021-12-16 13:55   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 19/25] python: temporarily silence pylint duplicate-code warnings John Snow
2021-12-16 11:02   ` Vladimir Sementsov-Ogievskiy
2021-12-15 19:39 ` [PATCH v2 20/25] python/aqmp: take QMPBadPortError and parse_address from qemu.qmp John Snow
2021-12-16 11:05   ` Vladimir Sementsov-Ogievskiy
2021-12-16 14:03   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 21/25] python/aqmp: fully separate from qmp.QEMUMonitorProtocol John Snow
2021-12-16 11:11   ` Vladimir Sementsov-Ogievskiy
2021-12-16 14:11   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 22/25] python/aqmp: copy qmp docstrings to qemu.aqmp.legacy John Snow
2021-12-16 11:28   ` Vladimir Sementsov-Ogievskiy
2021-12-16 14:15   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 23/25] python: remove the old QMP package John Snow
2021-12-16 11:30   ` Vladimir Sementsov-Ogievskiy
2021-12-16 14:17   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 24/25] python: re-enable pylint duplicate-code warnings John Snow
2021-12-16 11:31   ` Vladimir Sementsov-Ogievskiy
2021-12-16 14:18   ` Beraldo Leal
2021-12-15 19:39 ` [PATCH v2 25/25] python: rename qemu.aqmp to qemu.qmp John Snow
2021-12-16 11:41   ` Vladimir Sementsov-Ogievskiy
2021-12-16 21:10     ` John Snow
2021-12-17  7:39       ` Vladimir Sementsov-Ogievskiy
2021-12-17 16:28         ` John Snow
2021-12-16 10:50 ` [PATCH v2 00/25] Python: delete synchronous qemu.qmp package Daniel P. Berrangé
2021-12-16 16:27   ` John Snow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211215193939.3768033-1-jsnow@redhat.com \
    --to=jsnow@redhat.com \
    --cc=abologna@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=bleal@redhat.com \
    --cc=crosa@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=hreitz@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=vsementsov@virtuozzo.com \
    --cc=wainersm@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.