Re: [RFC] List of maintainers (draft #3)

Previous thread: LinuxPPS status? by Udo van den Heuvel on Monday, September 22, 2008 - 12:29 am. (1 message)

Next thread: SMB2 support by Fred . on Monday, September 22, 2008 - 1:53 am. (2 messages)
From: Uwe
Date: Monday, September 22, 2008 - 1:12 am

I don't see an advantage of a regular mail compared to a file in the
tree, but obviously YMMV.

But another thing really bothers me:  I think there should not be more
than one place I have to look up manually for maintainers.  Currently I
have ~100 easy patches pending and the most time consuming part of
finishing these is looking up the right address to send to send them to.
Currently I already have to check the modified files for a maintainer
entry, MAINTAINERS and the history of the files.

IMHO this could be automated with some effort.  I currently imagine:
 - a MAINTAINERS maintainer?!
 - a certain format to specify a maintainer of a single file in that
   file (e.g. in a specially marked comment) to prevent overloading
   MAINTAINERS
 - maybe a per-directory .maintainers file.
 - add a field to each entry in MAINTAINERS specifying a regular
   expression or shell wildcard of the corresponding files and
   directories.
 - a script that takes a patch and extracts the addresses from the above
   sources (and optionally calls git send-email)
 
If you want to do that with an externally maintained source thats OK for
me, too, provided it eases patch submission.

Best regards
Uwe
--

From: Ben Dooks
Date: Monday, September 22, 2008 - 2:12 am

I was thinking of at least making MAINTAINERS per-subsystem, it is a
large file and would be easier for the people submitting patcehs to


-- 
Ben (ben@fluff.org, http://www.fluff.org/)

  'a smiley only costs 4 bytes'
--

From: Pekka Enberg
Date: Monday, September 22, 2008 - 2:23 am

Hi,


Figuring out whom to send a patch to is not something you can automate
because it not only depends on what you're changing but *how* you're
changing it. The classic case being that whenever you change something
related to RCU that's non-trivial, you almost certainly want to CC
Paul "RCU" McKenney. But there's no *file* or *directory* pattern that
can automatically tell you this.

Furthermore, if you're hacking on a specific part of the kernel, you
almost certainly are doing it wrong if you don't know who the relevant
maintainers are. For simple janitorial patches, you probably should
just work out the *top-level* maintainers (davem for networking, ingo
et al for x86, and so on) and send the patches to them. And when these
simple rules fail you, fall back to patch bombing Andrew.

                             Pekka
--

From: H. Peter Anvin
Date: Monday, September 22, 2008 - 9:40 am

This is, of course, true; however, there are people who should *always* 
be included when touching specific files, and this *can* be automated. 
This is particularly so when sending out cross-architectural patchsets.

So no, automation isn't a substitute for intelligence, but that doesn't 
mean that it can't be an *assistance*.

We need this.  Right now too many people screw up even the part that 
*can* be automated.

	-hpa
--

From: Uwe
Date: Monday, September 22, 2008 - 12:42 pm

Hello,

(hhm, my MTA failed to send my mail to Denis.  I'll try once more.)

Thanks hpa.  That would have been roughly my response, too.  I can see
Pekka's point, too, but IMHO the advantages outweight the disadvantages.
This might result in some mails that don't reach the complete needed
audience, but it should assert that at least one right person is reached
and this one probably knows who to forward the mail.  I expect that in
most cases the automatic answer is right, though.

Continuing planning how to implement such an automation I found that
git-send-email already has an option --cc-cmd=/path/to/some/program.
program is called once per patch and should print email addresses to
stdout.  (This is already nearly optimal.  The only missing part is that
the addresses should occur in the resulting commit in a Cc: line.  This
could be implemented in program, too, but for me it feels wrong to do it
there.  IMHO git-send-email would be the better place.  I consider this
lower prio, though, so this has to wait (or be done by someone else).)

To go forward with how to specify a file <-> maintainer relation I
suggest to standardize a field F in MAINTAINERS that specifies the
associated files.  (There are already three entries that have such a
field.)  I'm not sure if the content should be a regular expression or
simply a list of files/directories.  The following arguments come to my
mind:
  - RE usually shorter (e.g. include/linux/netfilter.* substitutes
    11 files and directories).
  - list of files easier readable for humans.
  - list of files is more conceivable, e.g. you can pass each item to
    git-log.
Moreover I suggest to mark the introduction in MAINTAINERS with '#' to
ease parsing it.  (This is easy, I will reply with a patch.)

For in-file specification of maintainership I suggest similar to
MAINTAINERS:

	$TOPIC
	P: Joe H. Acker <joehacker@mail.do.main>
	L: linux-kernel@vger.kernel.org

in the first comment of the file.  (Supporting C-Style and #-comments.
Is ...
From: Joe Perches
Date: Monday, September 22, 2008 - 10:10 pm

I did roughly the same thing last year with MAINTAINERS entries
and a script for patch submission.

http://lkml.org/lkml/2007/8/13/17

There were a few iterations before Linus said he didn't much
like the idea.

http://lkml.org/lkml/2007/8/13/1139

I still think it's useful and don't think a particularly
better way exists to generate this information.

I think the best way to manage this content is to separate
the monolithic MAINTAINERS into separate Maintainers/subsection
files (which would be automatically alphabetized) and to create
an aggregated MAINTAINERS file via Makefile.

If per directory .maintainers files are created, there'll
be roughly the same number of files.

http://lkml.org/lkml/2007/8/17/119

cheers, Joe

--

From: Pavel Machek
Date: Monday, September 29, 2008 - 10:56 am

Yes please. Manually searching MAINTAINERS is  boring and hard... 'Is
it NETWORK BLOCK DEVICE' or 'NBD'? 'ALSA' or 'ADVANCED LINUX SOUND 
SYSTEM'? ... plus if you want subsystem maintainer, search tends to
give you about 179 individual driver maintainers, first.

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--

From: Randy Dunlap
Date: Tuesday, September 30, 2008 - 5:10 pm

Well.... both the acronym and long name should be listed IMO.
Especially the acronym/short name.

---
~Randy
--

From: Joe Perches
Date: Tuesday, September 30, 2008 - 5:09 pm

Human based visual searches are error prone.

There really does need to be some systematic and automated
mechanism to find the maintainers for a particular file.

Maintainer file patterns, either centralized in MAINTAINERS
or distributed in some mechanism in the file system or git
are useful.

Linus' original point about "hotness" of MAINTAINERS being
an issue was later refuted by Linus.

http://lkml.org/lkml/2008/2/13/414


--

From: Randy Dunlap
Date: Tuesday, September 30, 2008 - 5:35 pm

I just don't think that it's a big problem like you and Pavel seem to.
IOW I'll just disagree.

---
~Randy
--

From: Pavel Machek
Date: Wednesday, October 1, 2008 - 6:36 am

Quickly, check who's maintainer of ALSA.

...shall we add rule that subsystems will have "subsystem" in the name
so that search does not list all the drivers, first?

Signed-off-by: Pavel Machek <pavel@suse.cz>

diff --git a/MAINTAINERS b/MAINTAINERS
index 3596d17..7345707 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3825,7 +3825,7 @@ L:	linux-kernel@vger.kernel.org
 W:	http://tifmxx.berlios.de/
 S:	Maintained
 
-SOUND
+SOUND SUBSYSTEM (ADVANCED LINUX SOUND SYSTEM, ALSA)
 P:	Jaroslav Kysela
 M:	perex@perex.cz
 L:	alsa-devel@alsa-project.org (subscribers-only)
@@ -3855,7 +3855,7 @@ L:	cbe-oss-dev@ozlabs.org
 W:	http://www.ibm.com/developerworks/power/cell/
 S:	Supported
 
-STABLE BRANCH:
+STABLE BRANCH
 P:	Greg Kroah-Hartman
 M:	greg@kroah.com
 P:	Chris Wright


-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--

From: Randy Dunlap
Date: Wednesday, October 1, 2008 - 8:41 am

We don't have a good track record with such rules, but I don't



I see that a few more items need their trailing ':' removed:
DISKQUOTA:
IP MASQUERADING:
IPATH DRIVER:
SUSPEND TO RAM:


Thanks.
---
~Randy
--

From: Uwe Kleine-König
Date: Wednesday, October 1, 2008 - 5:25 am

I assume currently there are no files that have the maintainers noted in
a source file in a way that is understandable by the script, but for
testing you can use scripts/genpatchcc.py itself.  It is meant to be
used with git-send-email --cc-cmd=...

Currently the format to specify a maintainer is

	/*
	 * TOPIC
	 * P: M. Aintainer <ma@intai.ner>
	 * L: some-list@vger.kernel.org
	 */

similar to the format of the MAINTAINERS file.  This has to be specified
in the first comment of a file starting at the file's start.  #-like
comments are supported, too.

---
To test it, apply the patch, and modify scripts/genpatchcc.py.  Then you
can run:

	git diff | scripts/genpatchcc.py

I havn't tested it yet with git-send-email and there are several things
to improve as noted in the comments of the script (and probably more).
And of course some documentation is missing.

Please consider it as a first draft and feel free to comment.

Best regards
Uwe
---
 scripts/genpatchcc.py |   95 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 95 insertions(+), 0 deletions(-)
 create mode 100755 scripts/genpatchcc.py

diff --git a/scripts/genpatchcc.py b/scripts/genpatchcc.py
new file mode 100755
index 0000000..6a757ed
--- /dev/null
+++ b/scripts/genpatchcc.py
@@ -0,0 +1,95 @@
+#! /usr/bin/env python
+# vim: set fileencoding=utf-8
+# (c) Uwe Kleine-K
Previous thread: LinuxPPS status? by Udo van den Heuvel on Monday, September 22, 2008 - 12:29 am. (1 message)

Next thread: SMB2 support by Fred . on Monday, September 22, 2008 - 1:53 am. (2 messages)