Re: [PATCH] get_maintainer.pl: Add optional .get_maintainer.MAINTAINERS override

From: Don Zickus
Date: Fri Jul 06 2018 - 17:59:01 EST


On Fri, Jul 06, 2018 at 02:36:28PM -0700, Joe Perches wrote:
> > > > > Just trying to find ways to minimize our collection of private patches.
> > > >
> > > > Perhaps that could be extended for your purpose
> > > > with some additional argument like a specific
> > > > optional directory/path where every subdirectory
> > > > would be found.
> > >
> > > So something like --find-maintainer-files=<dir> ? I think that could work.
> >
> > So --find-maintainers-files=./kernel/pci
> >
> > would only look for MAINTAINERS files under kernel/pci?
>
> Well, perhaps yes. Perhaps it would also read
> a top level MAINTAINERS file. Dunno. What seems
> right to you?
>
> I don't have an objection to
> --find-maintainer-files=<path_or_file> where
> the existing behavior of --find-maintainer-files
> without <path_or_file> is all subdirs.
>
> Perhaps something like the below
> (some of this is whitespace change only)
> ---
> scripts/get_maintainer.pl | 40 ++++++++++++++++++++++------------------
> 1 file changed, 22 insertions(+), 18 deletions(-)
>

<snip>

> +
> + if (defined $find_maintainer_files) {
> + die "$P: invalid find-maintainer-files <$path>" if (!-d $path);

^^^^^

Hi Joe,

Thanks for the patch!! If I remove the above 'die' line I can pass in a
file or a dir. Otherwise the 'die' line prevents a 'file' from being used.

Not sure if that is important for this patch or not.

We have an internal use case of multiple MAINTAINER files, some folks have
more rights to patches than others so they are not allowed to be cc'd (think
embargoed stuff).

So the 'file' usage would be useful for us. But if you are against it, we can
easily patch it out on our end.

Prarit,

I believe this patch still does what we want (and handles your pci example).

Cheers,
Don

> + find( { wanted => \&find_is_maintainer_file,
> + preprocess => \&find_ignore_git,
> + no_chdir => 1,
> + }, "${path}");
> } else {
> - push(@mfiles, "${lk_path}MAINTAINERS") if -f "${lk_path}MAINTAINERS";
> + push(@mfiles, "${path}MAINTAINERS") if -f "${path}MAINTAINERS";
> }
>
> + die "$P: No MAINTAINER files found in $path\n" if (scalar(@mfiles) == 0);
> foreach my $file (@mfiles) {
> - read_maintainer_file("$file");
> + read_maintainer_file("$file");
> }
> }
>