From: "Daniel P. Berrangé" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Harsh Prateek Bora" <harshpb@linux.ibm.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Nicholas Piggin" <npiggin@gmail.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Thomas Huth" <thuth@redhat.com>,
"Cédric Le Goater" <clegoate@redhat.com>,
"Halil Pasic" <pasic@linux.ibm.com>,
"Laurent Vivier" <laurent@vivier.eu>,
qemu-arm@nongnu.org,
"Daniel Henrique Barboza" <danielhb413@gmail.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
qemu-ppc@nongnu.org, "David Gibson" <david@gibson.dropbear.id.au>,
"Ilya Leoshkevich" <iii@linux.ibm.com>,
"Eric Farman" <farman@linux.ibm.com>,
"Christian Borntraeger" <borntraeger@linux.ibm.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"David Hildenbrand" <david@redhat.com>,
qemu-s390x@nongnu.org, "Daniel P. Berrangé" <berrange@redhat.com>
Subject: [PATCH 00/14] hw: define and enforce a standard lifecycle for versioned machines
Date: Wed, 1 May 2024 19:27:45 +0100 [thread overview]
Message-ID: <20240501182759.2934195-1-berrange@redhat.com> (raw)
Thomas proposed a new deprecation and removal policy for versioned
machine types that would see them liable for deletion after 6 years:
https://lists.nongnu.org/archive/html/qemu-devel/2024-04/msg04683.html
This suggest was met with broad approval, however, I suggested that we
could take it further and actually mark them deprecated sooner, at the
3 year timeframe, and also fully automate the enablement of the runtime
deprecation warning without developer intervention on every release
cycle.
This series implements my suggestions.
The first patch introduces some helper macros and documents a standard
code pattern for defining versioned machine types across targets.
The next 6 patches convert existing targets with versioned machine
types (arm, s390x, ppc, m68k, i386) to use the new helper macros and
code patterns.
A further patch introduces some helper macros for automating the
handling of deprecation and deletion of versioned machine types.
Two more patches then enable the deprecation and deletion logic
across all versioned machines
Finally we do some cleanup and document the new policy.
........a tangent about VERSION file handling.......
One oddity here, is that during the development and release
candidate phases the automatic logic in this series has an off-by-1
error.
This is because when we, for example, add the "9.1" machine type
versions, the VERSION file is still reporting '9.0.50', and then
'9.0.9{1,2,3,4}'.
IOW, during development and in rc candidates, we fail to deprecate
and delete 1 machine type. We should already have deprecated the
6.1 machine types, but the most recently deprecated is 6.0.
This is pretty harmless since the final release does the right
thing.
I wonder, however, whether we would benefit from changing how we
update the VERSION file.
eg instead of re-using the micro digit to indicate a dev or rc
snapshot, represent those explicitly. eg "9.1.0-dev" and
"9.1.0-rc1", "9.1.0-rc2", etc in VERSION.
We don't use the full QEMU_VERSION in the code in all that many
places. It appears in some help messages for command line tools,
and in QMP query-version response, and in a few other misc places.
At a glance it appears all of those places would easily handle a
tagged version.
For release candidates in particular I think it would be saner
to show the user the actual version the release is about to become,
rather than the previous release's version. This would make the
reported version match the rc tarball naming too which would be
nice.
Anyway, this isn't a blocker for this machine type versioning
proposal, just a thought....
Daniel P. Berrangé (14):
include/hw: add helpers for defining versioned machine types
hw/arm: convert 'virt' machine definitions to use new macros
hw/s390x: convert 'ccw' machine definitions to use new macros
hw/ppc: convert 'spapr' machine definitions to use new macros
hw/m68k: convert 'virt' machine definitions to use new macros
hw/i386: convert 'i440fx' machine definitions to use new macros
hw/i386: convert 'q35' machine definitions to use new macros
include/hw: add macros for deprecation & removal of versioned machines
hw: temporarily disable deletion of versioned machine types
hw: set deprecation info for all versioned machine types
hw: skip registration of outdated versioned machine types
hw/ppc: remove obsolete manual deprecation reason string of spapr
machines
hw/i386: remove obsolete manual deprecation reason string of i440fx
machines
docs: document special exception for machine type deprecation &
removal
docs/about/deprecated.rst | 12 ++
hw/arm/virt.c | 30 +++--
hw/i386/pc_piix.c | 252 +++++++++++++++-------------------
hw/i386/pc_q35.c | 215 +++++++++++++----------------
hw/m68k/virt.c | 53 +++++---
hw/ppc/spapr.c | 96 +++++++------
hw/s390x/s390-virtio-ccw.c | 98 ++++++++------
include/hw/boards.h | 268 +++++++++++++++++++++++++++++++++++++
include/hw/i386/pc.h | 32 +++++
9 files changed, 666 insertions(+), 390 deletions(-)
--
2.43.0
next reply other threads:[~2024-05-01 18:29 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-01 18:27 Daniel P. Berrangé [this message]
2024-05-01 18:27 ` [PATCH 01/14] include/hw: add helpers for defining versioned machine types Daniel P. Berrangé
2024-05-02 10:34 ` Thomas Huth
2024-05-09 14:39 ` Daniel P. Berrangé
2024-05-02 14:57 ` Eric Blake
2024-05-02 16:54 ` Thomas Huth
2024-05-09 14:39 ` Daniel P. Berrangé
2024-05-01 18:27 ` [PATCH 02/14] hw/arm: convert 'virt' machine definitions to use new macros Daniel P. Berrangé
2024-05-02 12:11 ` Thomas Huth
2024-05-01 18:27 ` [PATCH 03/14] hw/s390x: convert 'ccw' " Daniel P. Berrangé
2024-05-02 11:12 ` Thomas Huth
2024-05-01 18:27 ` [PATCH 04/14] hw/ppc: convert 'spapr' " Daniel P. Berrangé
2024-05-02 11:57 ` Thomas Huth
2024-05-01 18:27 ` [PATCH 05/14] hw/m68k: convert 'virt' " Daniel P. Berrangé
2024-05-02 12:00 ` Thomas Huth
2024-05-01 18:27 ` [PATCH 06/14] hw/i386: convert 'i440fx' " Daniel P. Berrangé
2024-05-01 18:27 ` [PATCH 07/14] hw/i386: convert 'q35' " Daniel P. Berrangé
2024-05-01 18:27 ` [PATCH 08/14] include/hw: add macros for deprecation & removal of versioned machines Daniel P. Berrangé
2024-05-02 10:59 ` Thomas Huth
2024-05-09 14:42 ` Daniel P. Berrangé
2024-05-01 18:27 ` [PATCH 09/14] hw: temporarily disable deletion of versioned machine types Daniel P. Berrangé
2024-05-02 11:05 ` Thomas Huth
2024-05-02 11:13 ` Daniel P. Berrangé
2024-05-01 18:27 ` [PATCH 10/14] hw: set deprecation info for all " Daniel P. Berrangé
2024-05-02 11:06 ` Thomas Huth
2024-05-01 18:27 ` [PATCH 11/14] hw: skip registration of outdated " Daniel P. Berrangé
2024-05-02 12:02 ` Thomas Huth
2024-05-01 18:27 ` [PATCH 12/14] hw/ppc: remove obsolete manual deprecation reason string of spapr machines Daniel P. Berrangé
2024-05-02 12:04 ` Thomas Huth
2024-05-01 18:27 ` [PATCH 13/14] hw/i386: remove obsolete manual deprecation reason string of i440fx machines Daniel P. Berrangé
2024-05-02 12:08 ` Thomas Huth
2024-05-02 12:15 ` Daniel P. Berrangé
2024-05-01 18:27 ` [PATCH 14/14] docs: document special exception for machine type deprecation & removal Daniel P. Berrangé
2024-05-02 9:47 ` Thomas Huth
2024-05-02 9:53 ` Daniel P. Berrangé
2024-05-03 11:46 ` [PATCH 00/14] hw: define and enforce a standard lifecycle for versioned machines Cédric Le Goater
2024-05-03 12:14 ` Peter Maydell
2024-05-03 12:34 ` Daniel P. Berrangé
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=20240501182759.2934195-1-berrange@redhat.com \
--to=berrange@redhat.com \
--cc=borntraeger@linux.ibm.com \
--cc=clegoate@redhat.com \
--cc=danielhb413@gmail.com \
--cc=david@gibson.dropbear.id.au \
--cc=david@redhat.com \
--cc=eduardo@habkost.net \
--cc=farman@linux.ibm.com \
--cc=harshpb@linux.ibm.com \
--cc=iii@linux.ibm.com \
--cc=laurent@vivier.eu \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=npiggin@gmail.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
--cc=wangyanan55@huawei.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).