workflows.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: Vlastimil Babka <vbabka@suse.cz>
Cc: Joe Perches <joe@perches.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	workflows@vger.kernel.org, Theodore Ts'o <tytso@mit.edu>,
	Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
	Thorsten Leemhuis <linux@leemhuis.info>,
	Kees Cook <kees@kernel.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/2] get_maintainer: add --substatus for reporting subsystem status
Date: Tue, 4 Feb 2025 10:19:17 +0000	[thread overview]
Message-ID: <9be8dd39-d906-4dff-8315-a69481e0accb@lucifer.local> (raw)
In-Reply-To: <20250203-b4-get_maintainer-v2-1-83ba008b491f@suse.cz>

On Mon, Feb 03, 2025 at 12:13:16PM +0100, Vlastimil Babka wrote:
> The subsystem status is currently reported with --role(stats) by
> adjusting the maintainer role for any status different from Maintained.
> This has two downsides:
>
> - if a subsystem has only reviewers or mailing lists and no maintainers,
>   the status is not reported (i.e. typically, Orphan subsystems have no
>   maintainers)
>
> - the Supported status means that someone is paid for maintaining, but
>   it is reported as "supporter" for all the maintainers, which can be
>   incorrect. People have been also confused about what "supporter"
>   means.
>
> This patch introduces a new --substatus option and functionality aimed
> to report the subsystem status separately, without adjusting the
> reported maintainer role. After the e-mails are output, the status of
> subsystems will follow, for example:
>
> ...
> linux-kernel@vger.kernel.org (open list:LIBRARY CODE)
> LIBRARY CODE status: Supported
>
> In order to allow replacing the role rewriting seamlessly, the new
> option works as follows:
>
> - it is automatically enabled when --email and --role are enabled
>   (the defaults include --email and --rolestats which implies --role)
>
> - usages with --norolestats e.g. for git's --cc-cmd will thus need no
>   adjustments
>
> - the most common Maintained status is not reported at all, to reduce
>   unnecessary noise
>
> - THE REST catch-all section (contains lkml) status is not reported
>
> - the existing --subsystem and --status options are unaffected so their
>   users will need no adjustments
>
> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>

This LGTM afaict, and makes sense, so:

Acked-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>

> ---
>  scripts/get_maintainer.pl | 28 +++++++++++++++++++++++++---
>  1 file changed, 25 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
> index 5ac02e19873722d0f5bf3ac8de8374338c7bddc3..da7fc70f17cd8d46b45da8db0b2029bb11b25af1 100755
> --- a/scripts/get_maintainer.pl
> +++ b/scripts/get_maintainer.pl
> @@ -50,6 +50,7 @@ my $output_multiline = 1;
>  my $output_separator = ", ";
>  my $output_roles = 0;
>  my $output_rolestats = 1;
> +my $output_substatus = undef;
>  my $output_section_maxlen = 50;
>  my $scm = 0;
>  my $tree = 1;
> @@ -269,6 +270,7 @@ if (!GetOptions(
>  		'separator=s' => \$output_separator,
>  		'subsystem!' => \$subsystem,
>  		'status!' => \$status,
> +		'substatus!' => \$output_substatus,
>  		'scm!' => \$scm,
>  		'tree!' => \$tree,
>  		'web!' => \$web,
> @@ -314,6 +316,10 @@ $output_multiline = 0 if ($output_separator ne ", ");
>  $output_rolestats = 1 if ($interactive);
>  $output_roles = 1 if ($output_rolestats);
>
> +if (!defined $output_substatus) {
> +    $output_substatus = $email && $output_roles;
> +}
> +
>  if ($sections || $letters ne "") {
>      $sections = 1;
>      $email = 0;
> @@ -637,6 +643,7 @@ my @web = ();
>  my @bug = ();
>  my @subsystem = ();
>  my @status = ();
> +my @substatus = ();
>  my %deduplicate_name_hash = ();
>  my %deduplicate_address_hash = ();
>
> @@ -651,6 +658,11 @@ if ($scm) {
>      output(@scm);
>  }
>
> +if ($output_substatus) {
> +    @substatus = uniq(@substatus);
> +    output(@substatus);
> +}
> +
>  if ($status) {
>      @status = uniq(@status);
>      output(@status);
> @@ -859,6 +871,7 @@ sub get_maintainers {
>      @bug = ();
>      @subsystem = ();
>      @status = ();
> +    @substatus = ();
>      %deduplicate_name_hash = ();
>      %deduplicate_address_hash = ();
>      if ($email_git_all_signature_types) {
> @@ -1073,6 +1086,7 @@ version: $V
>      --remove-duplicates => minimize duplicate email names/addresses
>      --roles => show roles (status:subsystem, git-signer, list, etc...)
>      --rolestats => show roles and statistics (commits/total_commits, %)
> +    --substatus => show subsystem status if not Maintained (default: match --roles)"
>      --file-emails => add email addresses found in -f file (default: 0 (off))
>      --fixes => for patches, add signatures of commits with 'Fixes: <commit>' (default: 1 (on))
>    --scm => print SCM tree(s) if any
> @@ -1335,7 +1349,9 @@ sub add_categories {
>      my $start = find_starting_index($index);
>      my $end = find_ending_index($index);
>
> -    push(@subsystem, $typevalue[$start]);
> +    my $subsystem = $typevalue[$start];
> +    push(@subsystem, $subsystem);
> +    my $status = "Unknown";
>
>      for ($i = $start + 1; $i < $end; $i++) {
>  	my $tv = $typevalue[$i];
> @@ -1386,8 +1402,8 @@ sub add_categories {
>  		}
>  	    } elsif ($ptype eq "R") {
>  		if ($email_reviewer) {
> -		    my $subsystem = get_subsystem_name($i);
> -		    push_email_addresses($pvalue, "reviewer:$subsystem" . $suffix);
> +		    my $subs = get_subsystem_name($i);
> +		    push_email_addresses($pvalue, "reviewer:$subs" . $suffix);
>  		}
>  	    } elsif ($ptype eq "T") {
>  		push(@scm, $pvalue . $suffix);
> @@ -1397,9 +1413,14 @@ sub add_categories {
>  		push(@bug, $pvalue . $suffix);
>  	    } elsif ($ptype eq "S") {
>  		push(@status, $pvalue . $suffix);
> +		$status = $pvalue;
>  	    }
>  	}
>      }
> +
> +    if ($subsystem ne "THE REST" and $status ne "Maintained") {
> +	push(@substatus, $subsystem . " status: " . $status . $suffix)
> +    }
>  }
>
>  sub email_inuse {
> @@ -1903,6 +1924,7 @@ EOT
>  		$done = 1;
>  		$output_rolestats = 0;
>  		$output_roles = 0;
> +		$output_substatus = 0;
>  		last;
>  	    } elsif ($nr =~ /^\d+$/ && $nr > 0 && $nr <= $count) {
>  		$selected{$nr - 1} = !$selected{$nr - 1};
>
> --
> 2.48.1
>

  reply	other threads:[~2025-02-04 10:19 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-03 11:13 [PATCH v2 0/2] get_maintainer: report subsystem status separately from maintainer role Vlastimil Babka
2025-02-03 11:13 ` [PATCH v2 1/2] get_maintainer: add --substatus for reporting subsystem status Vlastimil Babka
2025-02-04 10:19   ` Lorenzo Stoakes [this message]
2025-02-11 10:32   ` Uwe Kleine-König
2025-02-11 10:48     ` Geert Uytterhoeven
2025-02-11 10:59       ` Vlastimil Babka
2025-02-11 11:05         ` Vlastimil Babka
2025-02-11 15:19         ` Geert Uytterhoeven
2025-02-11 15:30           ` Vlastimil Babka
2025-02-11 16:28             ` Geert Uytterhoeven
2025-02-11 18:39               ` Vlastimil Babka
2025-02-11 15:09       ` Uwe Kleine-König
2025-02-11 15:22         ` Geert Uytterhoeven
2025-02-11 15:20   ` Vlastimil Babka
2025-02-12 12:42     ` Geert Uytterhoeven
2025-02-12 14:53       ` Uwe Kleine-König
2025-02-03 11:13 ` [PATCH v2 2/2] get_maintainer: stop reporting subsystem status as maintainer role Vlastimil Babka
2025-02-04 10:18   ` Lorenzo Stoakes
2025-02-04 10:12 ` [PATCH v2 0/2] get_maintainer: report subsystem status separately from " Lorenzo Stoakes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9be8dd39-d906-4dff-8315-a69481e0accb@lucifer.local \
    --to=lorenzo.stoakes@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=bryan.odonoghue@linaro.org \
    --cc=joe@perches.com \
    --cc=kees@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@leemhuis.info \
    --cc=tytso@mit.edu \
    --cc=vbabka@suse.cz \
    --cc=workflows@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox