docs: kdoc: emit a warning for ancient versions of Python

Versions of Python prior to 3.7 do not guarantee to remember the insertion
order of dicts; since kernel-doc depends on that guarantee, running with
such older versions could result in output with reordered sections.

Python 3.9 is the minimum for the kernel as a whole, so this should not be
a problem, but put in a warning just in case somebody tries to use
something older.

Suggested-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
Jonathan Corbet
2025-07-10 17:24:07 -06:00
parent 636d4d9ec6
commit 40020fe8e3

View File

@@ -12,6 +12,7 @@ Read a C language source or header FILE and extract embedded
documentation comments
"""
import sys
import re
from pprint import pformat
@@ -238,6 +239,14 @@ class KernelDoc:
# Place all potential outputs into an array
self.entries = []
#
# We need Python 3.7 for its "dicts remember the insertion
# order" guarantee
#
if sys.version_info.major == 3 and sys.version_info.minor < 7:
self.emit_msg(0,
'Python 3.7 or later is required for correct results')
def emit_msg(self, ln, msg, warning=True):
"""Emit a message"""