qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Hanna Reitz" <hreitz@redhat.com>,
	"Ani Sinha" <anisinha@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	qemu-block@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
	"Manos Pitsidianakis" <manos.pitsidianakis@linaro.org>,
	qemu-rust@nongnu.org, "John Snow" <jsnow@redhat.com>,
	"Maksim Davydov" <davydov-max@yandex-team.ru>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Michael Roth" <michael.roth@amd.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Kevin Wolf" <kwolf@redhat.com>
Subject: [PATCH 0/8] Python: Fix 'make check-dev' and modernize to 3.9+
Date: Mon, 19 May 2025 14:21:44 -0400	[thread overview]
Message-ID: <20250519182153.3835722-1-jsnow@redhat.com> (raw)

This series does a couple things that I'll probably end up splitting out
into smaller series if history is any guide, but either way, here it
goes:

A) Convert qemu.git/python/ to a PEP517/pyproject.toml
package. Ultimately this means deleting setup.py and fully migrating to
newer python infrastructure. I think this should be safe to do by now,
but admittedly I am not *confident* as it relies on setuptools versions
in the wild, not python versions. My motivation for trying it is to fix
"make check-dev", which has been broken for the last two Fedora releases
under newer setuptools which have started removing support for the
pre-PEP517 packaging formats, which will only continue to get worse from
here on out.

B) Sync changes from the qemu.qmp package back over to qemu.git. I know
I need to decouple this badly, but in order to do so, I need to make
sure they're synchronized to be assured that the switch to the
standalone version won't break anything, so this is a necessary
step. It's happening here because of the 3.6+ compat crud we are still
carrying in qemu.git that has since been removed from the standalone
library.

C) Move us to 3.9+ style type hints. I know it feels like we just got
the type hints settled and we're already changing them. Sorry about
that. They are deprecated in 3.9, and *could* be removed at any time. I
figured now was a good time as any to get rid of them before they become
a problem randomly some day in the future.

D) Update the mypy configuration to check under multiple Python versions
more effectively and thoroughly.

Whew.
--js

John Snow (8):
  python: convert packages to PEP517/pyproject.toml
  python: update pylint ignores
  python: sync changes from external qemu.qmp package
  python: use 3.9+ builtin type hints
  python: convert remaining deprecated type hints for 3.9+
  python: clean up requirements for 3.9+
  python: update mkvenv to type-check under different python versions
  python: remove version restriction for mypy

 docs/sphinx/compat.py                         |  11 +-
 docs/sphinx/dbusdoc.py                        |  13 +-
 docs/sphinx/dbusdomain.py                     |  32 ++--
 docs/sphinx/fakedbusdoc.py                    |   4 +-
 docs/sphinx/qapi_domain.py                    |  77 ++++----
 docs/sphinx/qapidoc.py                        |  16 +-
 python/README.rst                             |  33 ++--
 python/Makefile                               |  18 +-
 python/pyproject.toml                         |   8 +
 python/qemu/machine/console_socket.py         |   4 +-
 python/qemu/machine/machine.py                |  32 ++--
 python/qemu/machine/qtest.py                  |  13 +-
 python/qemu/qmp/error.py                      |   7 +-
 python/qemu/qmp/events.py                     |  72 +++++--
 python/qemu/qmp/legacy.py                     |  31 +--
 python/qemu/qmp/message.py                    |  38 ++--
 python/qemu/qmp/models.py                     |  26 ++-
 python/qemu/qmp/protocol.py                   | 179 ++++++++++-------
 python/qemu/qmp/qmp_client.py                 | 147 +++++++++-----
 python/qemu/qmp/qmp_shell.py                  | 180 ++++++++++++------
 python/qemu/qmp/qmp_tui.py                    |  55 +++---
 python/qemu/qmp/util.py                       | 116 +----------
 python/qemu/utils/accel.py                    |   4 +-
 python/qemu/utils/qemu_ga_client.py           |  11 +-
 python/qemu/utils/qom_common.py               |  17 +-
 python/qemu/utils/qom_fuse.py                 |  12 +-
 python/scripts/mkvenv.py                      |  38 ++--
 python/setup.cfg                              |   7 +-
 python/setup.py                               |  40 ----
 python/tests/minreqs.txt                      |   4 +-
 python/tests/protocol.py                      |  10 +-
 scripts/block-coroutine-wrapper.py            |   2 +-
 .../codeconverter/codeconverter/patching.py   |  50 ++---
 .../codeconverter/codeconverter/qom_macros.py |  36 ++--
 .../codeconverter/qom_type_info.py            |  16 +-
 scripts/compare-machine-types.py              |  41 ++--
 scripts/qapi/commands.py                      |  13 +-
 scripts/qapi/common.py                        |  20 +-
 scripts/qapi/events.py                        |   8 +-
 scripts/qapi/expr.py                          |  28 ++-
 scripts/qapi/features.py                      |   2 +-
 scripts/qapi/gen.py                           |  13 +-
 scripts/qapi/introspect.py                    |  44 ++---
 scripts/qapi/parser.py                        |  42 ++--
 scripts/qapi/schema.py                        | 117 ++++++------
 scripts/qapi/source.py                        |  10 +-
 scripts/qapi/types.py                         |  20 +-
 scripts/qapi/visit.py                         |  14 +-
 scripts/rust/rustc_args.py                    |   7 +-
 scripts/u2f-setup-gen.py                      |   3 +-
 tests/functional/qemu_test/ports.py           |   3 +-
 tests/functional/test_acpi_bits.py            |   9 +-
 tests/qemu-iotests/151                        |   4 +-
 tests/qemu-iotests/297                        |   5 +-
 tests/qemu-iotests/300                        |   4 +-
 tests/qemu-iotests/fat16.py                   |  11 +-
 tests/qemu-iotests/findtests.py               |  13 +-
 tests/qemu-iotests/iotests.py                 |  38 ++--
 tests/qemu-iotests/linters.py                 |   7 +-
 tests/qemu-iotests/testenv.py                 |  11 +-
 tests/qemu-iotests/testrunner.py              |  19 +-
 .../qemu-iotests/tests/stream-under-throttle  |   3 +-
 62 files changed, 925 insertions(+), 943 deletions(-)
 create mode 100644 python/pyproject.toml
 delete mode 100755 python/setup.py

-- 
2.48.1




             reply	other threads:[~2025-05-19 18:24 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-19 18:21 John Snow [this message]
2025-05-19 18:21 ` [PATCH 1/8] python: convert packages to PEP517/pyproject.toml John Snow
2025-05-19 18:21 ` [PATCH 2/8] python: update pylint ignores John Snow
2025-05-20  7:41   ` Markus Armbruster
2025-05-22 19:10     ` John Snow
2025-05-19 18:21 ` [PATCH 3/8] python: sync changes from external qemu.qmp package John Snow
2025-05-19 18:21 ` [PATCH 4/8] python: use 3.9+ builtin type hints John Snow
2025-05-20  9:26   ` Markus Armbruster
2025-05-22 19:11     ` John Snow
2025-05-19 18:21 ` [PATCH 5/8] python: convert remaining deprecated type hints for 3.9+ John Snow
2025-05-20  9:31   ` Markus Armbruster
2025-05-22 19:13     ` John Snow
2025-05-19 18:21 ` [PATCH 6/8] python: clean up requirements " John Snow
2025-05-19 18:21 ` [PATCH 7/8] python: update mkvenv to type-check under different python versions John Snow
2025-05-19 18:21 ` [PATCH 8/8] python: remove version restriction for mypy John Snow
2025-05-20  7:53 ` [PATCH 0/8] Python: Fix 'make check-dev' and modernize to 3.9+ Markus Armbruster

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=20250519182153.3835722-1-jsnow@redhat.com \
    --to=jsnow@redhat.com \
    --cc=anisinha@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=crosa@redhat.com \
    --cc=davydov-max@yandex-team.ru \
    --cc=eduardo@habkost.net \
    --cc=hreitz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=manos.pitsidianakis@linaro.org \
    --cc=marcandre.lureau@redhat.com \
    --cc=michael.roth@amd.com \
    --cc=mst@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-rust@nongnu.org \
    --cc=thuth@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).