]> www.infradead.org Git - users/willy/linux.git/commitdiff
docs: kdoc: emit a warning for ancient versions of Python
authorJonathan Corbet <corbet@lwn.net>
Thu, 10 Jul 2025 23:24:07 +0000 (17:24 -0600)
committerJonathan Corbet <corbet@lwn.net>
Tue, 15 Jul 2025 19:43:30 +0000 (13:43 -0600)
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>
scripts/lib/kdoc/kdoc_parser.py

index fdde14b045fe6ac2f584cccbadb160c108535e2a..06f55f38d4a707379fd6a083f8f7afd9280bc1f3 100644 (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"""