* [PATCH 0/2] get_maintainer: report subsystem status separately from maintainer role
@ 2025-01-14 8:57 Vlastimil Babka
2025-01-14 8:57 ` [PATCH 1/2] get_maintainer: decouple subsystem status " Vlastimil Babka
2025-01-14 8:57 ` [PATCH 2/2] get_maintainer: print subsystem status also for reviewers and lists Vlastimil Babka
0 siblings, 2 replies; 3+ messages in thread
From: Vlastimil Babka @ 2025-01-14 8:57 UTC (permalink / raw)
To: Joe Perches
Cc: workflows, Theodore Ts'o, Bryan O'Donoghue,
Thorsten Leemhuis, Kees Cook, linux-kernel, Vlastimil Babka
The script currently uses the subystem's status (S: field) to change how
maintainers are reported. One prominent example is when the status is
Supported, the maintainers are reported as "(supporter:SUBSYSTEM)".
I have been confused myself in the past seeing "supporter" and have seen
somebody recently wondering what it means as well.
I have read the threads from 2022 that in the end resulted in adjusting
documentation only [1]. I very much agree with Ted's points about taking
the subsystem status and applying it to all maintainers being wrong [2].
The attempt to modify get_maintainer output was retracted after Joe
objected that the status becomes not reported at all [3]. This series
addresses that by reporting the status (unless it's the most common
Maintained one) as part of the subsystem name.
Given this new approach, the next logical step is to do the same also
for reporting reviewers and mailing lists. In fact, subsystems with an
Orphan status some catch-all mailing list and no maintainers, so the
"(orphan minder:SUBSYSTEM)" would never be currently reported by
get_maintainer. The second patch thus adds reporting the subsystem
status in the same way for lists (and reviewers).
Changes since RFC [4]
- keep the special handling for THE REST section ("chief penguin")
- added patch 2 for reviewers and mailing lists
- R-b on patch 1 from Kees
[1] https://lore.kernel.org/all/20221006162413.858527-1-bryan.odonoghue@linaro.org/
[2] https://lore.kernel.org/all/Yzen4X1Na0MKXHs9@mit.edu/
[3] https://lore.kernel.org/all/30776fe75061951777da8fa6618ae89bea7a8ce4.camel@perches.com/
[4] https://lore.kernel.org/all/20241213112921.180978-2-vbabka@suse.cz/
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
---
Vlastimil Babka (2):
get_maintainer: decouple subsystem status from maintainer role
get_maintainer: print subsystem status also for reviewers and lists
scripts/get_maintainer.pl | 68 ++++++++++++++++++++++++++---------------------
1 file changed, 38 insertions(+), 30 deletions(-)
---
base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37
change-id: 20250114-b4-get_maintainer-cc3358be81c0
Best regards,
--
Vlastimil Babka <vbabka@suse.cz>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] get_maintainer: decouple subsystem status from maintainer role
2025-01-14 8:57 [PATCH 0/2] get_maintainer: report subsystem status separately from maintainer role Vlastimil Babka
@ 2025-01-14 8:57 ` Vlastimil Babka
2025-01-14 8:57 ` [PATCH 2/2] get_maintainer: print subsystem status also for reviewers and lists Vlastimil Babka
1 sibling, 0 replies; 3+ messages in thread
From: Vlastimil Babka @ 2025-01-14 8:57 UTC (permalink / raw)
To: Joe Perches
Cc: workflows, Theodore Ts'o, Bryan O'Donoghue,
Thorsten Leemhuis, Kees Cook, linux-kernel, Vlastimil Babka
The script currently uses the subystem's status (S: field in
MAINTAINERS) to change how maintainers are reported. One prominent
example is when the status is Supported, the maintainers are reported as
"(supporter:SUBSYSTEM)".
This is misleading, as the Supported status defined as "Someone is
actually paid to look after this." may not in fact apply to everyone
listed as a maintainer, but only to a subset.
It has also been confusing people about what "supporter" means and has
required updates to the documentation [1].
Thus stop applying the subsystem status to change "maintainer:" to
anything else, as maintainers are maintainers. Instead, if the subsystem
status is not the most common one (Maintained), indicate it as part of
the subsystem name. So for example, instead of "(supporter:SUBSYSTEM)"
report "(maintainer:SUBSYSTEM [supported])".
The only exception not changed here is the status "Buried alive in
reporters" used only in "THE REST" section and reported as "chief
penguin" because the script uses the same terminology also for the
corresponding (non-default) command line option.
[1] https://lore.kernel.org/all/20221006162413.858527-1-bryan.odonoghue@linaro.org/
Reviewed-by: Kees Cook <kees@kernel.org>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
---
scripts/get_maintainer.pl | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index 5ac02e19873722d0f5bf3ac8de8374338c7bddc3..82a0032f4d4c7dad876afeb601b5f1957d1a838f 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -1286,6 +1286,7 @@ sub get_maintainer_role {
my $role = "unknown";
my $subsystem = get_subsystem_name($index);
+ my $substatus = "";
for ($i = $start + 1; $i < $end; $i++) {
my $tv = $typevalue[$i];
@@ -1299,21 +1300,15 @@ sub get_maintainer_role {
}
$role = lc($role);
- if ($role eq "supported") {
- $role = "supporter";
- } elsif ($role eq "maintained") {
+ if ($role eq "maintained") {
$role = "maintainer";
- } elsif ($role eq "odd fixes") {
- $role = "odd fixer";
- } elsif ($role eq "orphan") {
- $role = "orphan minder";
- } elsif ($role eq "obsolete") {
- $role = "obsolete minder";
} elsif ($role eq "buried alive in reporters") {
$role = "chief penguin";
+ } else {
+ $substatus = " [" . $role . "]";
+ $role = "maintainer";
}
-
- return $role . ":" . $subsystem;
+ return $role . ":" . $subsystem . $substatus;
}
sub get_list_role {
--
2.47.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 2/2] get_maintainer: print subsystem status also for reviewers and lists
2025-01-14 8:57 [PATCH 0/2] get_maintainer: report subsystem status separately from maintainer role Vlastimil Babka
2025-01-14 8:57 ` [PATCH 1/2] get_maintainer: decouple subsystem status " Vlastimil Babka
@ 2025-01-14 8:57 ` Vlastimil Babka
1 sibling, 0 replies; 3+ messages in thread
From: Vlastimil Babka @ 2025-01-14 8:57 UTC (permalink / raw)
To: Joe Perches
Cc: workflows, Theodore Ts'o, Bryan O'Donoghue,
Thorsten Leemhuis, Kees Cook, linux-kernel, Vlastimil Babka
When reporting maintainers, the subsystem information includes its
status (S: entry from MAINTAINERS) whenever it's not the most common one
(Maintained). However this status information is missing for reviewers
and especially for mailing lists, which may be often the only kind of
e-mail address reported for subsystems that are of Orphan status.
For completeness, include the status information also for reviewers and
lists in the same way as for maintainers. Implementation-wise, factor
out obtaining the subsystem status from get_maintainer_role to a new
function get_subsystem_status.
For the catch-all LKML L: entry defined in "THE REST" section, the
"subsystem" is kept ommitted and thus also its status "Buried alive in
reporters" is not reported.
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
---
scripts/get_maintainer.pl | 61 ++++++++++++++++++++++++++++-------------------
1 file changed, 37 insertions(+), 24 deletions(-)
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index 82a0032f4d4c7dad876afeb601b5f1957d1a838f..c9373a21da2537181f5c9eb09bb901d1981cb0dc 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -1263,6 +1263,28 @@ sub find_ending_index {
return $index;
}
+sub get_subsystem_status {
+ my ($index) = @_;
+
+ my $i;
+ my $start = find_starting_index($index);
+ my $end = find_ending_index($index);
+
+ my $status = "unknown";
+ for ($i = $start + 1; $i < $end; $i++) {
+ my $tv = $typevalue[$i];
+ if ($tv =~ m/^([A-Z]):\s*(.*)/) {
+ my $ptype = $1;
+ my $pvalue = $2;
+ if ($ptype eq "S") {
+ $status = $pvalue;
+ }
+ }
+ }
+
+ return lc($status);
+}
+
sub get_subsystem_name {
my ($index) = @_;
@@ -1280,44 +1302,31 @@ sub get_subsystem_name {
sub get_maintainer_role {
my ($index) = @_;
- my $i;
- my $start = find_starting_index($index);
- my $end = find_ending_index($index);
-
- my $role = "unknown";
+ my $role = "maintainer";
my $subsystem = get_subsystem_name($index);
- my $substatus = "";
-
- for ($i = $start + 1; $i < $end; $i++) {
- my $tv = $typevalue[$i];
- if ($tv =~ m/^([A-Z]):\s*(.*)/) {
- my $ptype = $1;
- my $pvalue = $2;
- if ($ptype eq "S") {
- $role = $pvalue;
- }
- }
- }
+ my $status = get_subsystem_status($index);
- $role = lc($role);
- if ($role eq "maintained") {
- $role = "maintainer";
- } elsif ($role eq "buried alive in reporters") {
+ if ($status eq "maintained") {
+ $status = "";
+ } elsif ($status eq "buried alive in reporters") {
+ $status = "";
$role = "chief penguin";
} else {
- $substatus = " [" . $role . "]";
- $role = "maintainer";
+ $status = " [" . $status . "]";
}
- return $role . ":" . $subsystem . $substatus;
+ return $role . ":" . $subsystem . $status;
}
sub get_list_role {
my ($index) = @_;
my $subsystem = get_subsystem_name($index);
+ my $status = get_subsystem_status($index);
if ($subsystem eq "THE REST") {
$subsystem = "";
+ } elsif ($status ne "maintained") {
+ $subsystem .= " [" . $status . "]";
}
return $subsystem;
@@ -1382,6 +1391,10 @@ sub add_categories {
} elsif ($ptype eq "R") {
if ($email_reviewer) {
my $subsystem = get_subsystem_name($i);
+ my $status = get_subsystem_status($i);
+ if ($status ne "maintained") {
+ $subsystem .= " [" . $status . "]";
+ }
push_email_addresses($pvalue, "reviewer:$subsystem" . $suffix);
}
} elsif ($ptype eq "T") {
--
2.47.1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-01-14 9:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-01-14 8:57 [PATCH 0/2] get_maintainer: report subsystem status separately from maintainer role Vlastimil Babka
2025-01-14 8:57 ` [PATCH 1/2] get_maintainer: decouple subsystem status " Vlastimil Babka
2025-01-14 8:57 ` [PATCH 2/2] get_maintainer: print subsystem status also for reviewers and lists Vlastimil Babka
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox