docs/about/deprecated: auto-generate a note for versioned machine types

We deprecate versioned machine types on a fixed schedule. This allows us
to auto-generate a paragraph in the deprecated.rst document that always
has accurate version info.

Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2025-02-25 19:39:12 +00:00
parent f59ee04406
commit ae8ac80c50
2 changed files with 39 additions and 1 deletions

View file

@ -278,6 +278,13 @@ CPU implementation for a while before removing all support.
System emulator machines
------------------------
Versioned machine types (aarch64, arm, i386, m68k, ppc64, s390x, x86_64)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
In accordance with our versioned machine type deprecation policy, all machine
types with version |VER_MACHINE_DEPRECATION_VERSION|, or older, have been
deprecated.
Arm ``virt`` machine ``dtb-kaslr-seed`` property (since 7.1)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

View file

@ -117,6 +117,27 @@ finally:
else:
version = release = "unknown version"
bits = version.split(".")
major = int(bits[0])
minor = int(bits[1])
micro = int(bits[2])
# Check for a dev snapshot, so we can adjust to next
# predicted release version.
#
# This assumes we do 3 releases per year, so must bump
# major if minor == 2
if micro >= 50:
micro = 0
if minor == 2:
major += 1
minor = 0
else:
minor += 1
ver_machine_deprecation_version = "%d.%d.0" % (major - 3, minor)
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
@ -145,7 +166,17 @@ suppress_warnings = ["ref.option"]
# environment variable is not set is for the benefit of readthedocs
# style document building; our Makefile always sets the variable.
confdir = os.getenv('CONFDIR', "/etc/qemu")
rst_epilog = ".. |CONFDIR| replace:: ``" + confdir + "``\n"
vars = {
"CONFDIR": confdir,
"VER_MACHINE_DEPRECATION_VERSION": ver_machine_deprecation_version,
}
rst_epilog = "".join([
".. |" + key + "| replace:: ``" + vars[key] + "``\n"
for key in vars.keys()
])
# We slurp in the defs.rst.inc and literally include it into rst_epilog,
# because Sphinx's include:: directive doesn't work with absolute paths
# and there isn't any one single relative path that will work for all