On 20/6/24 18:57, Daniel P. Berrangé wrote:
Versioned machines live for a long time to provide back compat for
incoming migration and restore of saved images. To guide users away from
usage of old machines, however, we want to deprecate any older than 3
years (equiv of 9 releases), and delete any older than 6 years (equiva
of 18 releases).

To get a standardized deprecation message and avoid having to remember
to manually add it after three years, this introduces two macros to be
used by targets when defining versioned machines.

* MACHINE_VER_DEPRECATION(major, minor)

   Automates the task of setting the 'deprecation_reason' field on the
   machine, if-and-only-if the major/minor version is older than 3 years.

* MACHINE_VER_DELETION(major, minor)

   Simulates the deletion of by skipping registration of the QOM type
   for a versioned machine, if-and-only-if the major/minor version is
   older than 6 years.

By using these two macros there is no longer any manual work required
per-release to deprecate old machines. By preventing the use of machines
that have reached their deletion date, it is also not necessary to
manually delete machines per-release. Deletion can be batched up once a
year or whenever makes most sense.

Reviewed-by: Thomas Huth <th...@redhat.com>
Signed-off-by: Daniel P. Berrangé <berra...@redhat.com>
---
  include/hw/boards.h | 96 +++++++++++++++++++++++++++++++++++++++++++++
  1 file changed, 96 insertions(+)

Nice again.

Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>

Reply via email to