From nobody Sat Jun 20 13:03:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C2CA0393DDC; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243149; cv=none; b=UZSm70XZUqFQxYL/quFc+JSBI9Ar/MMjX1Sgb7BGMgX1drVmJLkKgOZ7v4MMbjeeDmAuxVWL4UpWlQSsPOT/VX9sP6w5c9ATjMGZYi/GrVwmJS4WmewrxKhUyJ2cQzpLnpSbnIWKX4NqspRUo1zA7iF6gdJclWH1g6ZuGNcQH60= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243149; c=relaxed/simple; bh=lpFijLl6DOvM61uAD6IUooTPFM8/pj/MpyljGy4dY4Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VIOUVh3VTlODApOhNSBFECG8yWjJF3uPwg0UUQuhim5d6BM76wBOf7qV97N6fPGzHE8F9POEjkIx4BTBEKLxL9BVlWa6LIdu5j49ohlyhqgEO6HQ1TZgdEr9fepH7GyzVTHkGvqi6NUEeCAk93zHp4QobDHLp8tx2dDt8HOuXtI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uDKL7NxD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uDKL7NxD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8DB24C4AF09; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776243149; bh=lpFijLl6DOvM61uAD6IUooTPFM8/pj/MpyljGy4dY4Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uDKL7NxDmm163b6kPrL9KktyY2HjQSldrB9WSa+uc+4TvIV2DMjxVykN6Ef0usRHP J5jqSbO2X/V+I7j5BbxalPuGUhUeHYxGcFd34rT5RjfalFkns/wp6xKKcfW315RTIJ Qwpp0u/GVqHIn3RbK2XI/jfGB56KP7EmeZKPjw2mkZK9fqEdSH3CkrZD5DHPih/5AR E6taTn6XkyJkpO8ENH+NaTAITWceoa9/EYt0W+A0H85eZzaitbHuKcr8EUB2l3tXPD qRlIZBwcuba5Wktsbdxpk6cQk04gHf7fjWHfEvwKv441YIAU1KwOfbOjwzDCu2QIhk wh3hHDribWCVg== Received: from mchehab by mail.kernel.org with local (Exim 4.99.1) (envelope-from ) id 1wCvz1-0000000ELvW-2Gr0; Wed, 15 Apr 2026 10:52:27 +0200 From: Mauro Carvalho Chehab To: Jonathan Corbet , Linux Doc Mailing List , Mauro Carvalho Chehab Cc: Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, workflows@vger.kernel.org, Dan Williams , Randy Dunlap , Shuah Khan Subject: [PATCH 1/8] docs: maintainers_include: auto-generate maintainer profile TOC Date: Wed, 15 Apr 2026 10:52:17 +0200 Message-ID: <494dce19c289a8d4f5bfb8c694d81bfd5b809800.1776242739.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab Add a feature to allow auto-generating media entry profiles from the corresponding field inside MAINTAINERS file(s). Suggested-by: Dan Williams Closes: https://lore.kernel.org/linux-doc/69dd6299440be_147c801005b@djbw-de= v.notmuch/ Acked-by: Dan Williams Signed-off-by: Mauro Carvalho Chehab Message-ID: <4e9512a3d05942c98361d06d60a118d7c78762b6.1776176108.git.mcheha= b+huawei@kernel.org> Reported-by: Randy Dunlap --- Documentation/sphinx/maintainers_include.py | 93 +++++++++++++++++---- 1 file changed, 76 insertions(+), 17 deletions(-) diff --git a/Documentation/sphinx/maintainers_include.py b/Documentation/sp= hinx/maintainers_include.py index 519ad18685b2..1dac83bf1a65 100755 --- a/Documentation/sphinx/maintainers_include.py +++ b/Documentation/sphinx/maintainers_include.py @@ -21,6 +21,8 @@ import sys import re import os.path =20 +from textwrap import indent + from docutils import statemachine from docutils.parsers.rst import Directive from docutils.parsers.rst.directives.misc import Include @@ -30,20 +32,11 @@ def ErrorString(exc): # Shamelessly stolen from docuti= ls =20 __version__ =3D '1.0' =20 -def setup(app): - app.add_directive("maintainers-include", MaintainersInclude) - return dict( - version =3D __version__, - parallel_read_safe =3D True, - parallel_write_safe =3D True - ) +class MaintainersParser: + """Parse MAINTAINERS file(s) content""" =20 -class MaintainersInclude(Include): - """MaintainersInclude (``maintainers-include``) directive""" - required_arguments =3D 0 - - def parse_maintainers(self, path): - """Parse all the MAINTAINERS lines into ReST for human-readability= """ + def __init__(self, base_path, path): + self.profiles =3D list() =20 result =3D list() result.append(".. _maintainers:") @@ -78,6 +71,12 @@ class MaintainersInclude(Include): # Drop needless input whitespace. line =3D line.rstrip() =20 + match =3D re.match(r"P:\s*(Documentation/\S+)\.rst", line) + if match: + fname =3D os.path.relpath(match.group(1), base_path) + if fname not in self.profiles: + self.profiles.append(fname) + # Linkify all non-wildcard refs to ReST files in Documentation= /. pat =3D r'(Documentation/([^\s\?\*]*)\.rst)' m =3D re.search(pat, line) @@ -165,12 +164,23 @@ class MaintainersInclude(Include): for separated in field_content.split('\n'): result.append(separated) =20 - output =3D "\n".join(result) + self.output =3D "\n".join(result) + + # Create a TOC class + +class MaintainersInclude(Include): + """MaintainersInclude (``maintainers-include``) directive""" + required_arguments =3D 0 + + def emit(self, base_path, path): + """Parse all the MAINTAINERS lines into ReST for human-readability= """ + + output =3D MaintainersParser(base_path, path).output + # For debugging the pre-rendered results... #print(output, file=3Dopen("/tmp/MAINTAINERS.rst", "w")) =20 - self.state_machine.insert_input( - statemachine.string2lines(output), path) + self.state_machine.insert_input(statemachine.string2lines(output),= path) =20 def run(self): """Include the MAINTAINERS file as part of this reST file.""" @@ -186,12 +196,61 @@ class MaintainersInclude(Include): =20 # Append "MAINTAINERS" path =3D os.path.join(path, "MAINTAINERS") + base_path =3D os.path.dirname(self.state.document.document.current= _source) =20 try: self.state.document.settings.record_dependencies.add(path) - lines =3D self.parse_maintainers(path) + lines =3D self.emit(base_path, path) except IOError as error: raise self.severe('Problems with "%s" directive path:\n%s.' % (self.name, ErrorString(error))) =20 return [] + +class MaintainersProfile(Include): + required_arguments =3D 0 + + def emit(self, base_path, path): + """Parse all the MAINTAINERS lines looking for profile entries""" + + profiles =3D MaintainersParser(base_path, path).profiles + + output =3D ".. toctree::\n" + output +=3D " :maxdepth: 2\n\n" + output +=3D indent("\n".join(profiles), " ") + + self.state_machine.insert_input(statemachine.string2lines(output),= path) + + def run(self): + """Include the MAINTAINERS file as part of this reST file.""" + if not self.state.document.settings.file_insertion_enabled: + raise self.warning('"%s" directive disabled.' % self.name) + + # Walk up source path directories to find Documentation/../ + path =3D self.state_machine.document.attributes['source'] + path =3D os.path.realpath(path) + tail =3D path + while tail !=3D "Documentation" and tail !=3D "": + (path, tail) =3D os.path.split(path) + + # Append "MAINTAINERS" + path =3D os.path.join(path, "MAINTAINERS") + base_path =3D os.path.dirname(self.state.document.document.current= _source) + + try: + self.state.document.settings.record_dependencies.add(path) + lines =3D self.emit(base_path, path) + except IOError as error: + raise self.severe('Problems with "%s" directive path:\n%s.' % + (self.name, ErrorString(error))) + + return [] + +def setup(app): + app.add_directive("maintainers-include", MaintainersInclude) + app.add_directive("maintainers-profile-toc", MaintainersProfile) + return dict( + version =3D __version__, + parallel_read_safe =3D True, + parallel_write_safe =3D True + ) --=20 2.53.0 From nobody Sat Jun 20 13:03:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F27013D5255; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243150; cv=none; b=Nta84W5cmpKP5RC9XTgSAHAq3BL9WYrIgpqBNYb/7szc2rnrOJ9f3zKQgr/layufSX73T3Lxdyg7zP/3OBbkgNP6GS80qTnaNwqD5OKraJbcE6yEwxRiG3xtWGt5STo9/uIMlT9pV5bcvsTDh1vNXc8Zl8ClGjhEBXTxhmmZyAc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243150; c=relaxed/simple; bh=yhHzbQrXLXYtWB/ywVwFbSxzVS5ND+M7WVXUQWu6cT4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fOQIpaaBuAWZDGz0p+9QuTTZHBmsOmrS6Gu19KEpz8jHYc35uUTGHeRcLPSOKRAGEhchtn+0GnWmsYbt9ciNc+DSqwd/u+OrLBpHEnfoHvcZtcveAw6jaFxab7k8E2d0WMwwlX1QUWlobC13IKmIofNMkCk3tbBxONGm+CKF4KY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=c9Ta/L36; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="c9Ta/L36" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 925B7C2BCB8; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776243149; bh=yhHzbQrXLXYtWB/ywVwFbSxzVS5ND+M7WVXUQWu6cT4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c9Ta/L36wPR2nkPiihUI7qToFa7fXWKVCcCXv+WT7Gsuf5Cq22Ze3fIOlr/ugLip6 S1Ff8bAV1nysfbf2YBiFUXm3bkkuwb97YOb9xB3vlux0cckGB4XJlgDjLftf0vrcr5 kMW2BGElFq5GsMpbNFnYTpmCAOwMfHdoy2Z2YyphJkeOu4JYph/brtz1JzeBmdD57I Qugqg5gTX2/5r9LtNwZ6gdDhpyuq+76YuypHBuhxbqdNXn16YgWBI0gV4WlHxfMPnW Wg8B9dl71vAPM3hXvUMwDfJ4MP6RxB1uEaN5NHoZZZOkwYsohsshn1Un7mAPTE6/tM 4MZeQS6Oz4tAw== Received: from mchehab by mail.kernel.org with local (Exim 4.99.1) (envelope-from ) id 1wCvz1-0000000ELva-2O15; Wed, 15 Apr 2026 10:52:27 +0200 From: Mauro Carvalho Chehab To: Jonathan Corbet , Linux Doc Mailing List Cc: Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, workflows@vger.kernel.org, Dan Williams , Mauro Carvalho Chehab , Randy Dunlap Subject: [PATCH 2/8] MAINTAINERS: add an entry for media maintainers profile Date: Wed, 15 Apr 2026 10:52:18 +0200 Message-ID: <3582b8cbba28e014d27ab6b25a2361e6e2590055.1776242739.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab The media subsystem has a maintainers entry profile, but its entry is missing at MAINTAINERS. Add it. Acked-by: Randy Dunlap Signed-off-by: Mauro Carvalho Chehab Message-ID: <5af4aa6a716228eea4d59dc26b97d642e1e7d419.1776176108.git.mcheha= b+huawei@kernel.org> Reported-by: Randy Dunlap Suggested-by: Dan Williams --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index f0b106a4dd96..620219e48f98 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -16115,6 +16115,7 @@ S: Maintained W: https://linuxtv.org Q: http://patchwork.kernel.org/project/linux-media/list/ T: git git://linuxtv.org/media.git +P: Documentation/driver-api/media/maintainer-entry-profile.rst F: Documentation/admin-guide/media/ F: Documentation/devicetree/bindings/media/ F: Documentation/driver-api/media/ --=20 2.53.0 From nobody Sat Jun 20 13:03:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C2D40395D87; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243149; cv=none; b=l5PXnA53AmMC6hd9uwOk/JuF+NcM37RG/B2L8ACXPmLREDjr8nGIDrsfD94ncdJzwfgAyhyZhkdqxT5grrIKwd3gKE6tJ1IUvrUMcC49i4fafjdXf9kl7EFXfgf92K84chboigc4j73zMft7ImZFlv5YxJniHX9AVZamhI9CaDw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243149; c=relaxed/simple; bh=cbloFBaSFVqLFASbOdMdsq9XcyspmRgafo7Pco+EW+4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=BMdmOQdSITnORHNK1YHkUP6aCyhwVMecMc79GG4vufWAIJ7erKPNDOeJnw1KX0o2WBix7+fFJimdog5vddQSjS4doSO+xwpesk0/bQUPKrfI8h9TpOtnK5mhqrZPczc5v4F8oN8r7x8ERHQPj2EQ9kJQbSa5Jj51nYcINiSa2eo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=i4H3d6VT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="i4H3d6VT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 88E1FC2BCB4; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776243149; bh=cbloFBaSFVqLFASbOdMdsq9XcyspmRgafo7Pco+EW+4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i4H3d6VTT0QBatItEUbi/IXUeq2MLNYhTKRaPtwmlgVQ3zsu/Jg5XTgNPoWkJ7z1S T20rvZA1BGK9BAzlRiMRsTngdbZO9VDzxLcl9TN0oron08gjUwGUHttU9c/AJyUEc/ vKc8c9pw1zWxeSw3rLGzgCTJX8/vctO7CbKows654qdZgyWxce7UCqQQkPpq29c3jK tgfQZTs6/B+KmSbZe0iTOvEd9mzQLjK/cYfDiqPIfZmkETxrDmyXHnRnt/ud1qNCbc zMl06JMkgOK25cLc5Lr93jUFj07tDfq3V/TWm2NnExFC/104c0koMrbGZYvBtDJ3VI owP1Wu7hQoxlg== Received: from mchehab by mail.kernel.org with local (Exim 4.99.1) (envelope-from ) id 1wCvz1-0000000ELvf-2VCx; Wed, 15 Apr 2026 10:52:27 +0200 From: Mauro Carvalho Chehab To: Jonathan Corbet , Linux Doc Mailing List Cc: Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, workflows@vger.kernel.org, Dan Williams , Mauro Carvalho Chehab , Randy Dunlap Subject: [PATCH 3/8] MAINTAINERS: add maintainer-tip.rst to X86 Date: Wed, 15 Apr 2026 10:52:19 +0200 Message-ID: <17bb9cbae60254adb388406a975f1fd60266afdc.1776242739.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab The X86 subsystem has a maintainers entry profile, but its entry is missing at MAINTAINERS. Add it. Acked-by: Randy Dunlap Acked-by: Dan Williams Signed-off-by: Mauro Carvalho Chehab Message-ID: <970434c647aa1e1e9a81c87b4d5fed934d4018a7.1776176108.git.mcheha= b+huawei@kernel.org> Reported-by: Randy Dunlap Suggested-by: Dan Williams --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index 620219e48f98..a85fcae5f56e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -28560,6 +28560,7 @@ M: Ingo Molnar M: Borislav Petkov M: Dave Hansen M: x86@kernel.org +P: Documentation/process/maintainer-tip.rst R: "H. Peter Anvin" L: linux-kernel@vger.kernel.org S: Maintained --=20 2.53.0 From nobody Sat Jun 20 13:03:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C2B7E3358D3; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243149; cv=none; b=V4FqeizxTwcNybb6wK7nUb5w2hRklArOaN70a/IWx6bgaonyFz8VU91tapENZ5ELiwroonlhhi34ytqMQtVShJIvo+AmMwUyGZIzystb52IwHxKUG73wgBZN5f2xh1FzRXPkKH3IZTDqgRJIvnprXXZhvWjF1//f7YU2an5X9eU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243149; c=relaxed/simple; bh=etykI6PjHqrvsDMvEbWFzTQyXVYcIo7uusJigHM5MX8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=X9PeXdMlS87eqaalxp5b6Q69V0kHZBkxCTFJN+5AlJ+/wUWfMFSSxgYyuDKKiTUXSBuutymSezgwpBsIHfmMY7Z4UkIkx/sgm7Z7MjafCbrp5fmo2PFIFLEbPIV8ve0ZKpkA15f56IwQvp3ln9S95sBNEHce+HRG+miV7F5KUA8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uLT+i3x+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uLT+i3x+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B0E2C2BCB5; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776243149; bh=etykI6PjHqrvsDMvEbWFzTQyXVYcIo7uusJigHM5MX8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uLT+i3x+2bXN9aNEgYkjT0HDVZYxmDo/otJ3pDZTcm5meLhD+9cHEDTUUrL+WFRAG UoxKwcQMrB8JDHyKyYiOzQKOmYB87y8dV1PfyPbnPo/PeiiQi7C3Vgjg4q2d7fBPOr Oj+dJAIV5SHTi7kUGl+3ADSZqT87kshLW1Uemk2R1A9hiEw6GJbA9BPxsTROakOrBu ifxwe17WvNjr5kEoM3fzDxDYEyay6JtKxZEQ1XW9Tmuvjw3HLVd8k7NKS0opX8t2mI E3HehiCjYMvVQw+8yO1GSEdhzzEtmLalxCL4oRc/EWegKymcbOCFlnTnBbq/31XJkP Qbwfhh9x5WPzA== Received: from mchehab by mail.kernel.org with local (Exim 4.99.1) (envelope-from ) id 1wCvz1-0000000ELw1-2dF2; Wed, 15 Apr 2026 10:52:27 +0200 From: Mauro Carvalho Chehab To: Jonathan Corbet , Linux Doc Mailing List Cc: Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, workflows@vger.kernel.org, Albert Ou , Alexandre Ghiti , Dan Williams , Mauro Carvalho Chehab , Palmer Dabbelt , Paul Walmsley , Randy Dunlap , Shuah Khan Subject: [PATCH 4/8] docs: auto-generate maintainer entry profile links Date: Wed, 15 Apr 2026 10:52:20 +0200 Message-ID: <08d378395b417160adbdef013cd8a0b24fe08bfd.1776242739.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab Instead of manually creating a TOC tree for them, use the new tag to auto-generate its TOC. Co-developed-by: Dan Williams Signed-off-by: Dan Williams Signed-off-by: Mauro Carvalho Chehab Message-ID: <9228f77b0339b8e5dea4a201ab6d4feb30cef5c2.1776176108.git.mcheha= b+huawei@kernel.org> Reported-by: Randy Dunlap Suggested-by: Dan Williams --- .../maintainer/maintainer-entry-profile.rst | 24 ++++--------------- .../process/maintainer-handbooks.rst | 19 ++++++++------- 2 files changed, 14 insertions(+), 29 deletions(-) diff --git a/Documentation/maintainer/maintainer-entry-profile.rst b/Docume= ntation/maintainer/maintainer-entry-profile.rst index 6020d188e13d..58e2af333692 100644 --- a/Documentation/maintainer/maintainer-entry-profile.rst +++ b/Documentation/maintainer/maintainer-entry-profile.rst @@ -92,24 +92,8 @@ full series, or privately send a reminder email. This se= ction might also list how review works for this code area and methods to get feedback that are not directly from the maintainer. =20 -Existing profiles ------------------ +Maintainer Handbooks +-------------------- =20 -For now, existing maintainer profiles are listed here; we will likely want -to do something different in the near future. - -.. toctree:: - :maxdepth: 1 - - ../doc-guide/maintainer-profile - ../nvdimm/maintainer-entry-profile - ../arch/riscv/patch-acceptance - ../process/maintainer-soc - ../process/maintainer-soc-clean-dts - ../driver-api/media/maintainer-entry-profile - ../process/maintainer-netdev - ../driver-api/vfio-pci-device-specific-driver-acceptance - ../nvme/feature-and-quirk-policy - ../filesystems/nfs/nfsd-maintainer-entry-profile - ../filesystems/xfs/xfs-maintainer-entry-profile - ../mm/damon/maintainer-profile +For examples of other subsystem handbooks see +Documentation/process/maintainer-handbooks.rst. diff --git a/Documentation/process/maintainer-handbooks.rst b/Documentation= /process/maintainer-handbooks.rst index 3d72ad25fc6a..531985a0fae8 100644 --- a/Documentation/process/maintainer-handbooks.rst +++ b/Documentation/process/maintainer-handbooks.rst @@ -7,14 +7,15 @@ The purpose of this document is to provide subsystem spec= ific information which is supplementary to the general development process handbook :ref:`Documentation/process `. =20 +For developers, see below for all the known subsystem specific guides. +If the subsystem you are contributing to does not have a guide listed +here, it is fair to seek clarification of questions raised in +Documentation/maintainer/maintainer-entry-profile.rst. + +For maintainers, consider documenting additional requirements and +expectations if submissions routinely overlook specific submission +criteria. See Documentation/maintainer/maintainer-entry-profile.rst. + Contents: =20 -.. toctree:: - :numbered: - :maxdepth: 2 - - maintainer-netdev - maintainer-soc - maintainer-soc-clean-dts - maintainer-tip - maintainer-kvm-x86 +.. maintainers-profile-toc:: --=20 2.53.0 From nobody Sat Jun 20 13:03:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F1C083D5230; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243150; cv=none; b=sG1ikHh8W+9g5gS9PhIrpbcQiRkjIyEJkkUD2Fr528RDexa9BRvm7kzmz1GEUXvFF7oikpUEsUdBVtuX1oiGKizgxBXpDNOOTZVN28MFkvp2YuS+8fZd+4tcZ5ScJT8UiraaFGRtvGgkXP5joXP5ey/sflrs09xb+l8/3RN0B9g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243150; c=relaxed/simple; bh=NuYk28Zg9NLnbQ4d/3en1YVQRZ/qBlcvUunSiLU9FFk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Px81GjIIoiy6i0hZMtWLHTBRKlYAoYTUVkpdVX8gaJx4fN9yj+i4ZDZjDoXN8LV153Mlrq2QqJ+aB/bYRnTU6AMYOdi9l9+uZIBun2GMwLkCNxqBtMk6kIZhchDAXJkl87qd2NySlimMXmtb9Bk9oVTtrYSyaRw/rZxFhW+8cCE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iEWG5QFJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iEWG5QFJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 97CEBC2BCB9; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776243149; bh=NuYk28Zg9NLnbQ4d/3en1YVQRZ/qBlcvUunSiLU9FFk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iEWG5QFJonCagHxjCwWmq3nQmc1vL8iCOclwp3pq4z6nNPhE2NunyZ1SPkj6TENde 356oWQ+8O5owQF7j67H6sTp49egpkmwgW0JfRDR//hYJ/LDbYx12SHtx5TnpuWFhCf pqiTJgYOjCEfARxc6EO0KE4cRMQU4Z31a0A17sMPhZUlVbnXjovQYL10UHGyJ7uSa+ Dj1voZyznbNLT7RJ0veFvpMewM/7v1RcUQMicwo+7ExZ3WcaDjxH3J4pJWeJLkVXf6 OwXc709QcWmzt7ICXFWHwJBKhaIse6HZIFAQRTlo+O/N4+RGWcg4Y42HPjjUeT2EO6 VnYHf2b39YYxA== Received: from mchehab by mail.kernel.org with local (Exim 4.99.1) (envelope-from ) id 1wCvz1-0000000ELw5-2kUJ; Wed, 15 Apr 2026 10:52:27 +0200 From: Mauro Carvalho Chehab To: Jonathan Corbet , Linux Doc Mailing List , Mauro Carvalho Chehab Cc: Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, workflows@vger.kernel.org, Dan Williams , Randy Dunlap , Shuah Khan Subject: [PATCH 5/8] docs: maintainers_include: use a better title for profiles Date: Wed, 15 Apr 2026 10:52:21 +0200 Message-ID: X-Mailer: git-send-email 2.53.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab As we're picking the name of the subsystem from MAINTAINERS, also use its subsystem name for the titles. Signed-off-by: Mauro Carvalho Chehab Reported-by: Randy Dunlap Suggested-by: Dan Williams --- Documentation/sphinx/maintainers_include.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Documentation/sphinx/maintainers_include.py b/Documentation/sp= hinx/maintainers_include.py index 1dac83bf1a65..cf428db7599c 100755 --- a/Documentation/sphinx/maintainers_include.py +++ b/Documentation/sphinx/maintainers_include.py @@ -36,7 +36,7 @@ class MaintainersParser: """Parse MAINTAINERS file(s) content""" =20 def __init__(self, base_path, path): - self.profiles =3D list() + self.profiles =3D {} =20 result =3D list() result.append(".. _maintainers:") @@ -54,6 +54,7 @@ class MaintainersParser: prev =3D None field_prev =3D "" field_content =3D "" + subsystem_name =3D None =20 for line in open(path): # Have we reached the end of the preformatted Descriptions tex= t? @@ -75,7 +76,10 @@ class MaintainersParser: if match: fname =3D os.path.relpath(match.group(1), base_path) if fname not in self.profiles: - self.profiles.append(fname) + if self.profiles.get(fname) is None: + self.profiles[fname] =3D subsystem_name + else: + self.profiles[fname] +=3D f", {subsystem_name}" =20 # Linkify all non-wildcard refs to ReST files in Documentation= /. pat =3D r'(Documentation/([^\s\?\*]*)\.rst)' @@ -112,6 +116,8 @@ class MaintainersParser: output =3D field_content + "\n\n" field_content =3D "" =20 + subsystem_name =3D line.title() + # Collapse whitespace in subsystem name. heading =3D re.sub(r"\s+", " ", line) output =3D output + "%s\n%s" % (heading, "~" * len(hea= ding)) @@ -217,7 +223,13 @@ class MaintainersProfile(Include): =20 output =3D ".. toctree::\n" output +=3D " :maxdepth: 2\n\n" - output +=3D indent("\n".join(profiles), " ") + + items =3D sorted(profiles.items(), key=3Dlambda kv: (kv[1] or "", = kv[0])) + for fname, profile in items: + if profile: + output +=3D f" {profile} <{fname}>\n" + else: + output +=3D f" {fname}\n" =20 self.state_machine.insert_input(statemachine.string2lines(output),= path) =20 --=20 2.53.0 From nobody Sat Jun 20 13:03:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C2C0E391E5C; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243149; cv=none; b=IXlFLGh0pZ+yE4K5zrEzt13dxtiZpLbqqRu8O3nr+yy79kNDASWUz1URgpudYAPEAwUmC61XqdC2+94UJqFLwLHJdN57SoLf8iu4lc7Lf2N1w6vC7xf/FUkPvxi6BOyKHTrJdSxPmikHZFIcV0gimdF9ct5+T67gaJpZpkqRIoA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243149; c=relaxed/simple; bh=PN4FPVYRORp3XTpdvjjtDtB0ZIfuMMKyf0YVAqRdNAs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HvWA11Ra6VWpP6mAWZyDr99eUh+c33BUTc4B/bbSmFWj27Rm+tPotuHKsEldYJV0olNjaPZybPh6FHfYz1tZ8QJCWGpY5udnVUgW8TPBs5l8Pqs116IL4XLE3WMGl52Lcan0eBHCXwEX0qe3wY3vhe9Af5g80s2N55YrP/D7XSA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YoxTUEGE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YoxTUEGE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 85AE6C19424; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776243149; bh=PN4FPVYRORp3XTpdvjjtDtB0ZIfuMMKyf0YVAqRdNAs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YoxTUEGELm85PY7A8FuPbsXwoALNbwTESptxQyN5SWlz9l01EvTj//+4Tc7TJHxMG gBDXJ/IgWVCBr9YoeR4tpUx+CNyXpdpxQbOUut87qrJ400+yYyKdJ8K+yAeAUPpMeL 8s2R1yyWBiDkIPQPEat6RuSiag/9nrIrPDxCbOZ6VS3BB2UOBCw5MqWwSx54TbgENs vwooeVTuxkQceftzBjcC/M5QL7aOpMqhyv+XTE5H4wysTKjuSCrX70NP2aF3aOGoNx kofkOjCgDaHenI8zs2B7CY+q/Pzxhm/gQCetQA6oWbawDxrU0Lk5Gge5ikboFw9Cpd pWwn0DHN1zQyQ== Received: from mchehab by mail.kernel.org with local (Exim 4.99.1) (envelope-from ) id 1wCvz1-0000000ELw9-2rjz; Wed, 15 Apr 2026 10:52:27 +0200 From: Mauro Carvalho Chehab To: Jonathan Corbet , Linux Doc Mailing List , Mauro Carvalho Chehab Cc: Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, workflows@vger.kernel.org, Dan Williams , Randy Dunlap , Shuah Khan Subject: [PATCH 6/8] docs: maintainers_include: add external profile URLs Date: Wed, 15 Apr 2026 10:52:22 +0200 Message-ID: <7c8d92cbc0828a926c07690d25be7b669bb83cf6.1776242739.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab Some subsystem profiles are maintained elsewhere. Add them to the output. Signed-off-by: Mauro Carvalho Chehab Reported-by: Randy Dunlap Suggested-by: Dan Williams --- Documentation/sphinx/maintainers_include.py | 28 +++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/Documentation/sphinx/maintainers_include.py b/Documentation/sp= hinx/maintainers_include.py index cf428db7599c..f1b8d4b00c2a 100755 --- a/Documentation/sphinx/maintainers_include.py +++ b/Documentation/sphinx/maintainers_include.py @@ -37,6 +37,7 @@ class MaintainersParser: =20 def __init__(self, base_path, path): self.profiles =3D {} + self.profile_urls =3D {} =20 result =3D list() result.append(".. _maintainers:") @@ -81,6 +82,16 @@ class MaintainersParser: else: self.profiles[fname] +=3D f", {subsystem_name}" =20 + match =3D re.match(r"P:\s*(https?://.*)", line) + if match: + url =3D match.group(1).strip() + if url not in self.profile_urls: + if self.profile_urls.get(url) is None: + self.profile_urls[url] =3D subsystem_name + else: + self.profile_urls[url] +=3D f", {subsystem_name}" + + # Linkify all non-wildcard refs to ReST files in Documentation= /. pat =3D r'(Documentation/([^\s\?\*]*)\.rst)' m =3D re.search(pat, line) @@ -219,18 +230,31 @@ class MaintainersProfile(Include): def emit(self, base_path, path): """Parse all the MAINTAINERS lines looking for profile entries""" =20 - profiles =3D MaintainersParser(base_path, path).profiles + maint =3D MaintainersParser(base_path, path) =20 output =3D ".. toctree::\n" output +=3D " :maxdepth: 2\n\n" =20 - items =3D sorted(profiles.items(), key=3Dlambda kv: (kv[1] or "", = kv[0])) + items =3D sorted(maint.profiles.items(), + key=3Dlambda kv: (kv[1] or "", kv[0])) for fname, profile in items: if profile: output +=3D f" {profile} <{fname}>\n" else: output +=3D f" {fname}\n" =20 + output +=3D "\n**External profiles**\n\n" + + items =3D sorted(maint.profile_urls.items(), + key=3Dlambda kv: (kv[1] or "", kv[0])) + for url, profile in items: + if profile: + output +=3D f"- {profile} <{url}>\n" + else: + output +=3D f"- {url}\n" + + output +=3D "\n" + self.state_machine.insert_input(statemachine.string2lines(output),= path) =20 def run(self): --=20 2.53.0 From nobody Sat Jun 20 13:03:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F1D463D524D; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243150; cv=none; b=mRp8kVE7qzHcRfGYdV++BvRfk8eTNMx+1pKDvHZyQtsKizkpwJ6M3rT3mdtOhhDdIeCweyZhTMJF8GR1C5mWloOaegZjhOVMWAba3hvSpWT9YlswTcvC+Ee7qIZd8ARCmVuqXuuFeRt6ZBaBkPhNxZobPDSXq71CCWVBAlaDFz4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243150; c=relaxed/simple; bh=4mjLTBn9APgLWMeXtSLp7kqR2oEmNfSkkkBNyyYhQPs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=UikXkeu+/0NbnnIjfRWRzB1LTEBFdAcwuZ7Y7V+AYOyNe2XryJ6NNfOiCi2enj3iVfRqQ90JFaVyoiezjioe/i4hykpAFIesR58mWocfPIyxQG44AIHvVI/l3NYfI4bjVNPyfImT9aati71j+Ev67IXJ0ZR7PPHOhpysIKZXcmk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d+m4e0w3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d+m4e0w3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94BACC2BCB7; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776243149; bh=4mjLTBn9APgLWMeXtSLp7kqR2oEmNfSkkkBNyyYhQPs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d+m4e0w32ih+Vna4JtiWUIWxmFB2cZgPA+Rifi7+99CYMK7WD9x/l+ceH5ItBh5G+ 1yC6RoYRIoMyHU6KcDjKxbiu/fz/bjeD42vIt0BXe1dmZbXu+DEE/h726b05x6KhWt l5i1uOvGfhukCGFpEvEkiH6m/F1IlRmyqo2r40YZx3sFiX4JGfu3maenO+urQgtj7r 9quHpxvjQ5+xE9VIgwQsmRSvdRrSLI0LjWJ69DIfO6FuXesmLeaL+AhwBrV0jus7eo jL4/mMeGfKzOUHzc6ZhNsZFhfe+f7kvecCMZyZe5iNnNo/2zzbOLU6mnMVyWpMh/GO t/uD5nBWV2cOA== Received: from mchehab by mail.kernel.org with local (Exim 4.99.1) (envelope-from ) id 1wCvz1-0000000ELwE-2yyT; Wed, 15 Apr 2026 10:52:27 +0200 From: Mauro Carvalho Chehab To: Jonathan Corbet , Linux Doc Mailing List , Mauro Carvalho Chehab Cc: Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, workflows@vger.kernel.org, Dan Williams , Randy Dunlap , Shuah Khan Subject: [PATCH 7/8] docs: maintainers_include: preserve names for files under process/ Date: Wed, 15 Apr 2026 10:52:23 +0200 Message-ID: <61003dbb3c61b0624e6ec165428940eac3faf7f2.1776242739.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab When a maintainer's profile is stored outside process, they're already included on some other book and the name of the filesystem may not be there. That's why the logic picks the name from the subsystem's name. However, files directly placed together with maintainers-handbooks.rst (e.g. under Documentation/process/) is a different history: those aren't placed anywhere, so we can keep using their own names, letting Sphinx do his thing. Signed-off-by: Mauro Carvalho Chehab Reported-by: Randy Dunlap Suggested-by: Dan Williams --- Documentation/sphinx/maintainers_include.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/sphinx/maintainers_include.py b/Documentation/sp= hinx/maintainers_include.py index f1b8d4b00c2a..948746b998a3 100755 --- a/Documentation/sphinx/maintainers_include.py +++ b/Documentation/sphinx/maintainers_include.py @@ -76,11 +76,13 @@ class MaintainersParser: match =3D re.match(r"P:\s*(Documentation/\S+)\.rst", line) if match: fname =3D os.path.relpath(match.group(1), base_path) - if fname not in self.profiles: + if fname.startswith("../"): if self.profiles.get(fname) is None: self.profiles[fname] =3D subsystem_name else: self.profiles[fname] +=3D f", {subsystem_name}" + else: + self.profiles[fname] =3D None =20 match =3D re.match(r"P:\s*(https?://.*)", line) if match: --=20 2.53.0 From nobody Sat Jun 20 13:03:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 042CA3D564D; Wed, 15 Apr 2026 08:52:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243150; cv=none; b=Fy6f6b0IO97t950DWtJ+i7DSJLND+iEuF57y9/64JVpeFRlkEkF5JwDVTFCj9qhc1gJ2r8kzf6/bhCa636Reon5//f3KaM5qytTWP658b8PYcxltZjzKIwTSiMFMpKdBdFGaBqGDoi0/56VX6BIRaBxbzHHfh9gmNGosvLKi/fU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776243150; c=relaxed/simple; bh=BpJ6sywaSZVQxAguZ1xiEWvvUTov0XqlViROQ62XlmA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ONzAbksbR/j+UNIwUbF9/E69r49fjarL066G0qcpFC2MobEDeo2enU5YBOQro+AorAf91A8HC42QJa1BUvfjWh8c+Hj+6AnDq3dgSKpQEhYwcY23uHQfPEaqKhZog8wrUuyJP2RNoSxC3EoCAeE/PT9RNGlSibeWTRE8P2S+FPo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pD8YoUIE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pD8YoUIE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A0E2C2BCC4; Wed, 15 Apr 2026 08:52:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776243149; bh=BpJ6sywaSZVQxAguZ1xiEWvvUTov0XqlViROQ62XlmA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pD8YoUIEeZlpv+BUN3U43jU7RwQz/yR1thghUAtOOv1qVRh7hcvU72imI4He9op9/ Un7hmhHF4gtZ29EoDdpm9YZ/Qm7tPyf8rFnnuMwypScYvfWY6ZuoccBwwdonuUwtj7 tBMNxrKGMQtkkNypzlvJNMhxPpGVBKNY23n5Ojayfg1jWNY1L6rOG/CLFploDPBVTJ d7P46opgJ7/+dCAeF40avHu+Om+Y8wByIblVKhGtDH1FpWoiTeP9RGFf4ea//afUhn egjLngmgrHMmjF/hZge/eXQfH/gRnVtH0aCypxysarRWBljNcULs4RV5LiLsO4Pc4Q fmTk5ZSkdfp0A== Received: from mchehab by mail.kernel.org with local (Exim 4.99.1) (envelope-from ) id 1wCvz1-0000000ELwI-36Qq; Wed, 15 Apr 2026 10:52:27 +0200 From: Mauro Carvalho Chehab To: Jonathan Corbet , Linux Doc Mailing List Cc: Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, workflows@vger.kernel.org, Dan Williams , Mauro Carvalho Chehab , Randy Dunlap , Shuah Khan Subject: [PATCH 8/8] docs: maintainers_include: Only show main entry for profiles Date: Wed, 15 Apr 2026 10:52:24 +0200 Message-ID: <95936b751847f695d3d44eebbc996ae26010942c.1776242739.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab Instead of showing as a "Contents:" with 2 identation levels, drop its title and show profiles as a list of entries. Signed-off-by: Mauro Carvalho Chehab Reported-by: Randy Dunlap Suggested-by: Dan Williams --- Documentation/process/maintainer-handbooks.rst | 2 -- Documentation/sphinx/maintainers_include.py | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Documentation/process/maintainer-handbooks.rst b/Documentation= /process/maintainer-handbooks.rst index 531985a0fae8..3821e78aefc0 100644 --- a/Documentation/process/maintainer-handbooks.rst +++ b/Documentation/process/maintainer-handbooks.rst @@ -16,6 +16,4 @@ For maintainers, consider documenting additional requirem= ents and expectations if submissions routinely overlook specific submission criteria. See Documentation/maintainer/maintainer-entry-profile.rst. =20 -Contents: - .. maintainers-profile-toc:: diff --git a/Documentation/sphinx/maintainers_include.py b/Documentation/sp= hinx/maintainers_include.py index 948746b998a3..7ab921820612 100755 --- a/Documentation/sphinx/maintainers_include.py +++ b/Documentation/sphinx/maintainers_include.py @@ -235,7 +235,7 @@ class MaintainersProfile(Include): maint =3D MaintainersParser(base_path, path) =20 output =3D ".. toctree::\n" - output +=3D " :maxdepth: 2\n\n" + output +=3D " :maxdepth: 1\n\n" =20 items =3D sorted(maint.profiles.items(), key=3Dlambda kv: (kv[1] or "", kv[0])) --=20 2.53.0 From nobody Sat Jun 20 13:03:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 81BFB19D092; Wed, 15 Apr 2026 11:21:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776252087; cv=none; b=m3QRsrsXt29NjYWD4sJbls2KlmV0+6bxQOZ3hh4+vx1VO1bbY5si/oLZldZ/txs4B8seLI1cl7CUTeJzUSAx/dd/xFKKcNv9maKyVAFX8ge4rwmKowmFLnVjAUwZkcDBIqTkuyf5y9go4Drk/4Zywafh60epYtLUpp4ojEA4mVU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776252087; c=relaxed/simple; bh=foSitjGjVjWkt3FOsEjErrXwoSNFIILUN9JQwZDwqYk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=r4CLhNbT+JN5rouEMUl/4So2GuFo/gpGknGIXePhUP0AuPjAOFdD3TZj9TWDLGC/VGfqfCAFgjIA5P6M6raG29dCf6ovS6CAVNwspvBbd0vbItuQK/0fB6HIHC3doPO3LhamLkSWn7VKawvHlfY2K6tH4LHmvorxfTGdXZMkTcU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nuSQxBK4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nuSQxBK4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 03A5EC19424; Wed, 15 Apr 2026 11:21:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776252087; bh=foSitjGjVjWkt3FOsEjErrXwoSNFIILUN9JQwZDwqYk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nuSQxBK4yMRALpHzwpOh8ntHlQFwc06OwvLiPbuuMsJZZRYcUDjQypopKxD7Q/Q28 cruRp9fqJxDP/5FgCyBk0HAgXBtFepo9HfYDJxz9PINSJcUJFyKDDlnSrhIjDcW2hs jaUppd8fTQojwA8gNvbJoJYF56SxlXx7QH3nH5SlUJyWYzx5pEEzDHfGfkXPDkCvJ6 a3BLAj5uAF0vSk3m+FoEeL3o5UCbuXiH7/kkDvl5sqtKV5mcvewQrQk4fQ4PUPYzqX JCC7CHuA44bYw+6I8P2QcgDos03ZxM++36ydY31XH+6iT5cFaUEixjanILbqUY5c6E gJZAJLGOCJZAA== Received: from mchehab by mail.kernel.org with local (Exim 4.99.1) (envelope-from ) id 1wCyJA-0000000EhWi-20nG; Wed, 15 Apr 2026 13:21:24 +0200 From: Mauro Carvalho Chehab To: Jonathan Corbet , Linux Doc Mailing List , Mauro Carvalho Chehab Cc: Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, Dan Williams , Randy Dunlap , Shuah Khan Subject: [PATCH 9/8] docs: maintainers_include: improve its output Date: Wed, 15 Apr 2026 13:21:08 +0200 Message-ID: X-Mailer: git-send-email 2.53.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab There are three "types" of profiles: 1. Profiles already included inside subsystem-specific documentation. This is the most common case; 2. Profiles that are hosted externally; 3. Profiles that are at the same location as maintainer-handbooks.rst. For (3), we need to create a TOC, as they don't exist elsewhere. Change the logic to create TOC just for (3), prepending the content of maintainer-handbooks with a sorted entry of all types, before the TOC. With such change, we can have an unique sorted list of profiles, having the subsystem names used there listed. Signed-off-by: Mauro Carvalho Chehab Reported-by: Randy Dunlap Suggested-by: Dan Williams --- Documentation/sphinx/maintainers_include.py | 76 +++++++++++---------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/Documentation/sphinx/maintainers_include.py b/Documentation/sp= hinx/maintainers_include.py index 7ab921820612..5413c1350bba 100755 --- a/Documentation/sphinx/maintainers_include.py +++ b/Documentation/sphinx/maintainers_include.py @@ -21,7 +21,7 @@ import sys import re import os.path =20 -from textwrap import indent +from glob import glob =20 from docutils import statemachine from docutils.parsers.rst import Directive @@ -36,8 +36,8 @@ class MaintainersParser: """Parse MAINTAINERS file(s) content""" =20 def __init__(self, base_path, path): - self.profiles =3D {} - self.profile_urls =3D {} + self.profile_toc =3D set() + self.profile_entries =3D {} =20 result =3D list() result.append(".. _maintainers:") @@ -73,26 +73,24 @@ class MaintainersParser: # Drop needless input whitespace. line =3D line.rstrip() =20 + # + # Handle profile entries - either as files or as https refs + # match =3D re.match(r"P:\s*(Documentation/\S+)\.rst", line) if match: - fname =3D os.path.relpath(match.group(1), base_path) - if fname.startswith("../"): - if self.profiles.get(fname) is None: - self.profiles[fname] =3D subsystem_name - else: - self.profiles[fname] +=3D f", {subsystem_name}" + entry =3D os.path.relpath(match.group(1), base_path) + if "*" in entry: + for e in glob(entry): + self.profile_toc.add(e) + self.profile_entries[subsystem_name] =3D e else: - self.profiles[fname] =3D None - - match =3D re.match(r"P:\s*(https?://.*)", line) - if match: - url =3D match.group(1).strip() - if url not in self.profile_urls: - if self.profile_urls.get(url) is None: - self.profile_urls[url] =3D subsystem_name - else: - self.profile_urls[url] +=3D f", {subsystem_name}" - + self.profile_toc.add(entry) + self.profile_entries[subsystem_name] =3D entry + else: + match =3D re.match(r"P:\s*(https?://.*)", line) + if match: + entry =3D match.group(1).strip() + self.profile_entries[subsystem_name] =3D entry =20 # Linkify all non-wildcard refs to ReST files in Documentation= /. pat =3D r'(Documentation/([^\s\?\*]*)\.rst)' @@ -234,26 +232,32 @@ class MaintainersProfile(Include): =20 maint =3D MaintainersParser(base_path, path) =20 - output =3D ".. toctree::\n" - output +=3D " :maxdepth: 1\n\n" + # + # Produce a list with all maintainer profiles, sorted by subsystem= name + # + output =3D "" =20 - items =3D sorted(maint.profiles.items(), - key=3Dlambda kv: (kv[1] or "", kv[0])) - for fname, profile in items: - if profile: - output +=3D f" {profile} <{fname}>\n" + for profile, entry in maint.profile_entries.items(): + if entry.startswith("http"): + if profile: + output +=3D f"- `{profile} <{entry}>`_\n" + else: + output +=3D f"- `<{entry}>_`\n" else: - output +=3D f" {fname}\n" + if profile: + output +=3D f"- :doc:`{profile} <{entry}>`\n" + else: + output +=3D f"- :doc:`<{entry}>`\n" =20 - output +=3D "\n**External profiles**\n\n" + # + # Create a hidden TOC table with all profiles. That allows adding + # profiles without needing to add them on any index.rst file. + # + output +=3D "\n.. toctree::\n" + output +=3D " :hidden:\n\n" =20 - items =3D sorted(maint.profile_urls.items(), - key=3Dlambda kv: (kv[1] or "", kv[0])) - for url, profile in items: - if profile: - output +=3D f"- {profile} <{url}>\n" - else: - output +=3D f"- {url}\n" + for fname in maint.profile_toc: + output +=3D f" {fname}\n" =20 output +=3D "\n" =20 --=20 2.53.0