Em Tue, 06 Feb 2024 10:57:36 +0200 Jani Nikula <jani.nikula@xxxxxxxxx> escreveu: > On Mon, 05 Feb 2024, Vegard Nossum <vegard.nossum@xxxxxxxxxx> wrote: > > As of commit 3e893e16af55 ("docs: Raise the minimum Sphinx requirement > > to 2.4.4"), we can use Sphinx's built-in logging facilities. > > > > Gotchas: > > - remove first argument 'app' from all calls > > - instead of (fmt % (args)), use (fmt, args) > > - instead of ("<fmt>: " + str) use ("<fmt: %s>", str) > > If you're doing this, why not go directly to f-strings? IMO the above > are inferior to it. Hmm... f-strings require at least python 3.6. Not sure what's the current requirement. On a quick check wit vermin: <snip> $ vermin -v $(git ls-files "*.py"|grep -v tools) !2, 3.3 Documentation/conf.py 2.6, 3.0 Documentation/networking/device_drivers/atm/cxacru-cf.py !2, 3.6 Documentation/sphinx/automarkup.py 2.4, 3.0 Documentation/sphinx/cdomain.py 2.7, 3.1 Documentation/sphinx/kernel_abi.py 2.7, 3.1 Documentation/sphinx/kernel_feat.py 2.3, 3.0 Documentation/sphinx/kernel_include.py 2.5, 3.0 Documentation/sphinx/kerneldoc.py ~2, ~3 Documentation/sphinx/kernellog.py !2, 3.3 Documentation/sphinx/kfigure.py 2.5, 3.0 Documentation/sphinx/load_config.py 2.3, 3.0 Documentation/sphinx/maintainers_include.py 2.3, 3.0 Documentation/sphinx/rstFlatTable.py !2, 3.0 Documentation/sphinx/translations.py 2.0, !3 Documentation/trace/postprocess/decode_msr.py File with incompatible versions: Documentation/trace/postprocess/decode_msr.py 2.3, 3.0 Documentation/userspace-api/media/conf_nitpick.py !2, 3.5 drivers/gpu/drm/ci/check-patch.py !2, 3.6 drivers/gpu/drm/ci/xfails/update-xfails.py !2, 3.7 scripts/bpf_doc.py !2, 3.3 scripts/checkkconfigsymbols.py ~2, ~3 scripts/gdb/linux/__init__.py 2.2, 3.0 scripts/gdb/linux/clk.py 2.5, 3.0 scripts/gdb/linux/config.py 2.7, 3.0 scripts/gdb/linux/cpus.py 2.7, 3.0 scripts/gdb/linux/device.py 2.6, 3.0 scripts/gdb/linux/dmesg.py 2.7, 3.0 scripts/gdb/linux/genpd.py 2.7, 3.0 scripts/gdb/linux/interrupts.py 2.7, 3.0 scripts/gdb/linux/lists.py 2.3, 3.0 scripts/gdb/linux/mm.py 2.6, 3.0 scripts/gdb/linux/modules.py 2.3, 3.0 scripts/gdb/linux/page_owner.py !2, 3.6 scripts/gdb/linux/pgtable.py 2.7, 3.0 scripts/gdb/linux/proc.py 2.7, 3.0 scripts/gdb/linux/radixtree.py 2.7, 3.0 scripts/gdb/linux/rbtree.py 2.7, 3.0 scripts/gdb/linux/slab.py ~2, ~3 scripts/gdb/linux/stackdepot.py 2.7, 3.0 scripts/gdb/linux/symbols.py 2.7, 3.0 scripts/gdb/linux/tasks.py 2.7, 3.0 scripts/gdb/linux/timerlist.py 2.7, 3.0 scripts/gdb/linux/utils.py 2.2, 3.0 scripts/gdb/linux/vfs.py 2.2, 3.0 scripts/gdb/linux/vmalloc.py 2.3, 3.0 scripts/gdb/vmlinux-gdb.py !2, 3.6 scripts/generate_rust_analyzer.py ~2, ~3 scripts/kconfig/tests/auto_submenu/__init__.py ~2, ~3 scripts/kconfig/tests/choice/__init__.py ~2, ~3 scripts/kconfig/tests/choice_value_with_m_dep/__init__.py !2, 3.2 scripts/kconfig/tests/conftest.py ~2, ~3 scripts/kconfig/tests/err_recursive_dep/__init__.py ~2, ~3 scripts/kconfig/tests/err_recursive_inc/__init__.py ~2, ~3 scripts/kconfig/tests/inter_choice/__init__.py ~2, ~3 scripts/kconfig/tests/new_choice_with_dep/__init__.py ~2, ~3 scripts/kconfig/tests/no_write_if_dep_unmet/__init__.py ~2, ~3 scripts/kconfig/tests/preprocess/builtin_func/__init__.py ~2, ~3 scripts/kconfig/tests/preprocess/circular_expansion/__init__.py ~2, ~3 scripts/kconfig/tests/preprocess/escape/__init__.py ~2, ~3 scripts/kconfig/tests/preprocess/variable/__init__.py !2, 3.9 scripts/rust_is_available_test.py !2, 3.2 scripts/spdxcheck.py 2.3, 3.0 scripts/tracing/draw_functrace.py </snip> It sounds that automarkup is already requiring 3.6, so it should be ok to use it here too (also because it uses f-strings): $ vermin -vv Documentation/sphinx/automarkup.py Detecting python files.. Analyzing using 8 processes.. !2, 3.6 /new_devel/v4l/media_tree/Documentation/sphinx/automarkup.py 'itertools' module requires 2.3, 3.0 'sorted' member requires 2.4, 3.0 'sorted(key)' requires 2.4, 3.0 `with` requires 2.5, 3.0 f-strings require !2, 3.6 ... There are still: scripts/bpf_doc.py requires 3.7 rust_is_available_test.py requires 3.9. But those don't seem to be part of the build. Anyway, I would expect that the minimal python version to be listed at: Documentation/process/changes.rst Apparently, it isn't. IMO, we need to document there that python 3.6 is the minimal version required to build the Kernel - or at least the documentation. Thanks, Mauro