public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 0/3] add GetMaintainer.py helper script
@ 2019-07-12 17:01 Leif Lindholm
  2019-07-12 17:01 ` [PATCH 1/3] Maintainers.txt: update for filesystem area descriptions Leif Lindholm
                   ` (4 more replies)
  0 siblings, 5 replies; 20+ messages in thread
From: Leif Lindholm @ 2019-07-12 17:01 UTC (permalink / raw)
  To: devel
  Cc: Andrew Fish, Laszlo Ersek, Michael D Kinney,
	Philippe Mathieu-Daude, Bob Feng, Liming Gao, Wu, Hao A

Changes are available directly from:
https://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=upstreaming/git-maintainer-v1

This series adds new tags to the Maintainers.txt format, making it possible
to describe which filesystem paths are looked after by which people, and
hence automating the extraction of a list over who should be cc:d on a patch
submission.

Remaining shorcomings in v1:
- Will still be misparsing OvmfPkg and MdeModulePkg due to non-tag lines
  interspersed with the tag lines. These lines will be removed as areas of
  responsibility is formally rewritten as tags.
- * Wildcard support is not fully filesystem compliant except in first or
  last position in the file pattern (it translates as regex .* elsewhere).
  However, actual cases of mismatch are expected to be unlikely, and they
  will be false positives rather than false negatives - so I think this is
  good enough at least for a start.
- Provides no information of why certain people or meiling lists were
  picked - it just bundles all recipients up, deduplicates them, and
  prints them out.

Using the script requires the gitpython module to be installed.

Worthwhile mentioning outside the ChangeLog is the added -l flag, which
lets you look up what a given path would return in the way of matches.
E.g. "python BaseTools/Scripts/GetMaintainer.py -l Non/Existing/Path"
would return:
---
Non/Existing/Path
"Non/Existing/Path": no maintainers found, looking for default
  Andrew Fish <afish@apple.com>
  Laszlo Ersek <lersek@redhat.com>
  Leif Lindholm <leif.lindholm@linaro.org>
  Michael D Kinney <michael.d.kinney@intel.com>
  devel@edk2.groups.io
---

This series would still result in GetMaintainers.py missing some
maintainers/reviewers due to descriptions in prose rather than filename
patterns. My preferred way of handling this would be to merge 1-2/3 as
soon as found acceptable, following up and merging patches to update
ArmVirtPkg, MdeModulePkg, and OvmfPkg, and finally once the file is
consistent, proceed to merge 3/3.

Changelog:
v1:
- Rebase to current Maintainers.txt.
- Fix typos and missed bits in Maintainers.txt.
- Get rid of the magic '<default>' filename, let the single-char '*'
  wildcard resolve this (_using_ the magic '<default>' filename in the
  script, but treating it as if it was a file in the top-level directory).
- Add -l flag to script to look up which maintainers would be returned for
  a given path (which need not exist).
rfc:
- Split patches up
  - one for new Maintainers.txt format (documentation and F: tags).
  - one for adding a new wilcards responsibility area for */Arm, */AArch64
  - one for the GetMaintainer.py script
- Reworked wildcard handling based on Laszlo's explanation
  - Trailing / covers everything under that directory
  - Trailing * does not cover subdirectories
- Added support for X: tag
- Added support for magic '<default>' pathname
- Also prints mailing list addresses for matching L: tags

Cc: Andrew Fish <afish@apple.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Philippe Mathieu-Daude <philmd@redhat.com>
Cc: "Wu, Hao A" <hao.a.wu@intel.com>

Leif Lindholm (3):
  Maintainers.txt: update for filesystem area descriptions
  Maintainers.txt: add wildcard path association for Arm/AArch64
  BaseTools: add GetMaintainer.py script

 BaseTools/Scripts/GetMaintainer.py | 190 +++++++++++++++++++++++++++++
 Maintainers.txt                    |  54 ++++++++
 2 files changed, 244 insertions(+)
 create mode 100644 BaseTools/Scripts/GetMaintainer.py

-- 
2.20.1


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 1/3] Maintainers.txt: update for filesystem area descriptions
  2019-07-12 17:01 [PATCH 0/3] add GetMaintainer.py helper script Leif Lindholm
@ 2019-07-12 17:01 ` Leif Lindholm
  2019-07-12 22:54   ` Laszlo Ersek
  2019-07-12 17:01 ` [PATCH 2/3] Maintainers.txt: add wildcard path association for Arm/AArch64 Leif Lindholm
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 20+ messages in thread
From: Leif Lindholm @ 2019-07-12 17:01 UTC (permalink / raw)
  To: devel
  Cc: Andrew Fish, Laszlo Ersek, Michael D Kinney,
	Philippe Mathieu-Daude, Bob Feng, Liming Gao

Add comment describing new F: and X: tags for associating maintainership
sections with specific filesystem paths, including wildcards.

Add global section associating *all* code with devel@edk2.groups.io,
with a default '*' F: tag directing all modifications that do not hit a
rule to the stewards.

Also tag all files in top directory as maintained by the stewards.

Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daude <philmd@redhat.com>
---
 Maintainers.txt | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/Maintainers.txt b/Maintainers.txt
index eb41dba7b128..3102b16b2f06 100644
--- a/Maintainers.txt
+++ b/Maintainers.txt
@@ -36,6 +36,22 @@ Descriptions of section entries:
      Obsolete:   Old code. Something tagged obsolete generally means
                  it has been replaced by a better system and you
                  should be using that.
+  F: Files and directories with wildcard patterns.
+     A trailing slash includes all files and subdirectory files.
+     F:   MdeModulePkg/   all files in and below MdeModulePkg
+     F:   MdeModulePkg/*  all files in MdeModulePkg, but not below
+     F:   */Pci/*         all files in a directory called Pci, at any depth in
+                          the hierarchy, but not below
+     One pattern per line.  Multiple F: lines per section acceptable.
+  X: Files and directories that are NOT maintained, same rules as F:
+     Files exclusions are tested after file matches.
+     Can be useful for excluding a specific subdirectory, for instance:
+     F:   NetworkPkg/
+     X:   NetworkPkg/Ip6Dxe/
+     matches all files in and below NetworkPkg excluding NetworkPkg/Ip6Dxe/
+  Filenames not caught by any F: rule get matched as being located in the top-
+  level directory. (Internally, the script looks for a match called '<default>',
+  so please don't add a file called that in the top-level directory.)
 
 EDK II
 ------
@@ -44,8 +60,14 @@ L: https://edk2.groups.io/g/devel/
 T: git - https://github.com/tianocore/edk2.git
 T: git (mirror) - https://bitbucket.org/tianocore/edk2.git
 
+All patches CC:d here
+L: devel@edk2.groups.io
+F: *
+F: */
+
 Tianocore Stewards
 ------------------
+F: *
 M: Andrew Fish <afish@apple.com>
 M: Laszlo Ersek <lersek@redhat.com>
 M: Leif Lindholm <leif.lindholm@linaro.org>
@@ -63,16 +85,19 @@ M: Liming Gao <liming.gao@intel.com>
 EDK II Packages:
 ----------------
 ArmPkg
+F: ArmPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/ArmPkg
 M: Leif Lindholm <leif.lindholm@linaro.org>
 M: Ard Biesheuvel <ard.biesheuvel@linaro.org>
 
 ArmPlatformPkg
+F: ArmPlatformPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/ArmPlatformPkg
 M: Leif Lindholm <leif.lindholm@linaro.org>
 M: Ard Biesheuvel <ard.biesheuvel@linaro.org>
 
 ArmVirtPkg
+F: ArmVirtPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/ArmVirtPkg
 M: Laszlo Ersek <lersek@redhat.com>
 M: Ard Biesheuvel <ard.biesheuvel@linaro.org>
@@ -81,26 +106,31 @@ R: Julien Grall <julien.grall@arm.com>
 R: Leif Lindholm <leif.lindholm@linaro.org>
 
 BaseTools
+F: BaseTools/
 W: https://github.com/tianocore/tianocore.github.io/wiki/BaseTools
 M: Bob Feng <bob.c.feng@intel.com>
 M: Liming Gao <liming.gao@intel.com>
 
 CryptoPkg
+F: CryptoPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/CryptoPkg
 M: Jian Wang <jian.j.wang@intel.com>
 R: Ting Ye <ting.ye@intel.com>
 
 DynamicTablesPkg
+F: DynamicTablesPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/DynamicTablesPkg
 M: Sami Mujawar <Sami.Mujawar@arm.com>
 M: Alexei Fedorov <Alexei.Fedorov@arm.com>
 
 EmbeddedPkg
+F: EmbeddedPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/EmbeddedPkg
 M: Leif Lindholm <leif.lindholm@linaro.org>
 M: Ard Biesheuvel <ard.biesheuvel@linaro.org>
 
 EmulatorPkg
+F: EmulatorPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/EmulatorPkg
 M: Jordan Justen <jordan.l.justen@intel.com>
 M: Andrew Fish <afish@apple.com>
@@ -108,29 +138,34 @@ M: Ray Ni <ray.ni@intel.com>
 S: Maintained
 
 FatPkg
+F: FatPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/Edk2-fat-driver
 M: Ray Ni <ray.ni@intel.com>
 T: svn - https://svn.code.sf.net/p/edk2-fatdriver2/code/trunk/EnhancedFat
 T: git - https://github.com/tianocore/edk2-FatPkg.git
 
 FmpDevicePkg
+F: FmpDevicePkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/FmpDevicePkg
 M: Liming Gao <liming.gao@intel.com>
 M: Michael D Kinney <michael.d.kinney@intel.com>
 
 IntelFsp2Pkg
+F: IntelFsp2Pkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/IntelFsp2Pkg
 M: Chasel Chiu <chasel.chiu@intel.com>
 R: Nate DeSimone <nathaniel.l.desimone@intel.com>
 R: Star Zeng <star.zeng@intel.com>
 
 IntelFsp2WrapperPkg
+F: IntelFsp2WrapperPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/IntelFsp2WrapperPkg
 M: Chasel Chiu <chasel.chiu@intel.com>
 R: Nate DeSimone <nathaniel.l.desimone@intel.com>
 R: Star Zeng <star.zeng@intel.com>
 
 MdeModulePkg
+F: MdeModulePkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/MdeModulePkg
 M: Jian J Wang <jian.j.wang@intel.com>
 M: Hao A Wu <hao.a.wu@intel.com>
@@ -140,16 +175,19 @@ R: Ray Ni <ray.ni@intel.com>
 R: Star Zeng <star.zeng@intel.com>
 
 MdePkg
+F: MdePkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/MdePkg
 M: Michael D Kinney <michael.d.kinney@intel.com>
 M: Liming Gao <liming.gao@intel.com>
 
 NetworkPkg
+F: NetworkPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/NetworkPkg
 M: Siyuan Fu <siyuan.fu@intel.com>
 M: Jiaxin Wu <jiaxin.wu@intel.com>
 
 OvmfPkg
+F: OvmfPkg/
 W: http://www.tianocore.org/ovmf/
 M: Jordan Justen <jordan.l.justen@intel.com>
 M: Laszlo Ersek <lersek@redhat.com>
@@ -167,16 +205,19 @@ R: David Woodhouse <dwmw2@infradead.org>
 S: Maintained
 
 PcAtChipsetPkg
+F: PcAtChipsetPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/PcAtChipsetPkg
 M: Ray Ni <ray.ni@intel.com>
 
 SecurityPkg
+F: SecurityPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/SecurityPkg
 M: Jiewen Yao <jiewen.yao@intel.com>
 M: Jian Wang <jian.j.wang@intel.com>
 R: Chao Zhang <chao.b.zhang@intel.com>
 
 ShellPkg
+F: ShellPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/ShellPkg
 M: Jaben Carsey <jaben.carsey@intel.com>
 M: Ray Ni <ray.ni@intel.com>
@@ -190,21 +231,25 @@ M: Leif Lindholm <leif.lindholm@linaro.org>   (ARM/AArch64)
 M: Ard Biesheuvel <ard.biesheuvel@linaro.org> (ARM/AArch64)
 
 SignedCapsulePkg
+F: SignedCapsulePkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/SignedCapsulePkg
 M: Jiewen Yao <jiewen.yao@intel.com>
 M: Chao Zhang <chao.b.zhang@intel.com>
 
 SourceLevelDebugPkg
+F: SourceLevelDebugPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/SourceLevelDebugPkg
 M: Hao A Wu <hao.a.wu@intel.com>
 
 UefiCpuPkg
+F: UefiCpuPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/UefiCpuPkg
 M: Eric Dong <eric.dong@intel.com>
 M: Ray Ni <ray.ni@intel.com>
 R: Laszlo Ersek <lersek@redhat.com>
 
 UefiPayloadPkg
+F: UefiPayloadPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/UefiPayloadPkg
 M: Maurice Ma <maurice.ma@intel.com>
 M: Guo Dong <guo.dong@intel.com>
@@ -212,6 +257,7 @@ M: Benjamin You <benjamin.you@intel.com>
 S: Maintained
 
 StandaloneMmPkg
+F: StandaloneMmPkg/
 M: Achin Gupta <achin.gupta@arm.com>
 M: Jiewen Yao <jiewen.yao@intel.com>
 R: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 2/3] Maintainers.txt: add wildcard path association for Arm/AArch64
  2019-07-12 17:01 [PATCH 0/3] add GetMaintainer.py helper script Leif Lindholm
  2019-07-12 17:01 ` [PATCH 1/3] Maintainers.txt: update for filesystem area descriptions Leif Lindholm
@ 2019-07-12 17:01 ` Leif Lindholm
  2019-07-12 22:54   ` Laszlo Ersek
  2019-07-12 17:01 ` [PATCH 3/3] BaseTools: add GetMaintainer.py script Leif Lindholm
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 20+ messages in thread
From: Leif Lindholm @ 2019-07-12 17:01 UTC (permalink / raw)
  To: devel
  Cc: Andrew Fish, Laszlo Ersek, Michael D Kinney,
	Philippe Mathieu-Daude, Bob Feng, Liming Gao

Add Ard and Leif as responsible for any path matching
F: */Arm/
F: */AArch64/

Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daude <philmd@redhat.com>
---
 Maintainers.txt | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/Maintainers.txt b/Maintainers.txt
index 3102b16b2f06..52d8215691b1 100644
--- a/Maintainers.txt
+++ b/Maintainers.txt
@@ -82,6 +82,14 @@ EDK II Releases:
 W: https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Release-Planning
 M: Liming Gao <liming.gao@intel.com>
 
+EDK II Architectures:
+---------------------
+ARM, AARCH64
+F: */AArch64/
+F: */Arm/
+M: Leif Lindholm <leif.lindholm@linaro.org>
+M: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+
 EDK II Packages:
 ----------------
 ArmPkg
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 3/3] BaseTools: add GetMaintainer.py script
  2019-07-12 17:01 [PATCH 0/3] add GetMaintainer.py helper script Leif Lindholm
  2019-07-12 17:01 ` [PATCH 1/3] Maintainers.txt: update for filesystem area descriptions Leif Lindholm
  2019-07-12 17:01 ` [PATCH 2/3] Maintainers.txt: add wildcard path association for Arm/AArch64 Leif Lindholm
@ 2019-07-12 17:01 ` Leif Lindholm
  2019-07-12 22:58   ` Laszlo Ersek
  2019-07-12 22:54 ` [PATCH 0/3] add GetMaintainer.py helper script Laszlo Ersek
  2019-07-18 16:27 ` Leif Lindholm
  4 siblings, 1 reply; 20+ messages in thread
From: Leif Lindholm @ 2019-07-12 17:01 UTC (permalink / raw)
  To: devel
  Cc: Andrew Fish, Laszlo Ersek, Michael D Kinney,
	Philippe Mathieu-Daude, Bob Feng, Liming Gao

Add a new script GetMaintainer.py that uses the new Maintainer.txt format
to determine which addresses to cc on patch submission.

Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daude <philmd@redhat.com>
---
 BaseTools/Scripts/GetMaintainer.py | 190 +++++++++++++++++++++++++++++
 1 file changed, 190 insertions(+)
 create mode 100644 BaseTools/Scripts/GetMaintainer.py

diff --git a/BaseTools/Scripts/GetMaintainer.py b/BaseTools/Scripts/GetMaintainer.py
new file mode 100644
index 000000000000..fbc63522db77
--- /dev/null
+++ b/BaseTools/Scripts/GetMaintainer.py
@@ -0,0 +1,190 @@
+## @file
+#  Retrieves the people to request review from on submission of a commit.
+#
+#  Copyright (c) 2019, Linaro Ltd. All rights reserved.<BR>
+#
+#  SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+
+from __future__ import print_function
+from collections import defaultdict
+from collections import OrderedDict
+import argparse
+import os
+import re
+import SetupGit
+
+EXPRESSIONS = {
+    'exclude':    re.compile(r'^X:\s*(?P<exclude>.*?)\r*$'),
+    'file':       re.compile(r'^F:\s*(?P<file>.*?)\r*$'),
+    'list':       re.compile(r'^L:\s*(?P<list>.*?)\r*$'),
+    'maintainer': re.compile(r'^M:\s*(?P<maintainer>.*<.*?>)\r*$'),
+    'reviewer':   re.compile(r'^R:\s*(?P<reviewer>.*?)\r*$'),
+    'status':     re.compile(r'^S:\s*(?P<status>.*?)\r*$'),
+    'tree':       re.compile(r'^T:\s*(?P<tree>.*?)\r*$'),
+    'webpage':    re.compile(r'^W:\s*(?P<webpage>.*?)\r*$')
+}
+
+def printsection(section):
+    """Prints out the dictionary describing a Maintainers.txt section."""
+    print('===')
+    for key in section.keys():
+        print("Key: %s" % key)
+        for item in section[key]:
+            print('  %s' % item)
+
+def pattern_to_regex(pattern):
+    """Takes a string containing regular UNIX path wildcards
+       and returns a string suitable for matching with regex."""
+
+    pattern = pattern.replace('.', r'\.')
+    pattern = pattern.replace('?', r'.')
+    pattern = pattern.replace('*', r'.*')
+
+    if pattern.endswith('/'):
+        pattern += r'.*'
+    elif pattern.endswith('.*'):
+        pattern = pattern[:-2]
+        pattern += r'(?!.*?/.*?)'
+
+    return pattern
+
+def path_in_section(path, section):
+    """Returns True of False indicating whether the path is covered by
+       the current section."""
+    if not 'file' in section:
+        return False
+
+    for pattern in section['file']:
+        regex = pattern_to_regex(pattern)
+
+        match = re.match(regex, path)
+        if match:
+            # Check if there is an exclude pattern that applies
+            for pattern in section['exclude']:
+                regex = pattern_to_regex(pattern)
+
+                match = re.match(regex, path)
+                if match:
+                    return False
+
+            return True
+
+    return False
+
+def get_section_maintainers(path, section):
+    """Returns a list with email addresses to any M: and R: entries
+       matching the provided path in the provided section."""
+    maintainers = []
+    lists = []
+
+    if path_in_section(path, section):
+        for address in section['maintainer'], section['reviewer']:
+            # Convert to list if necessary
+            if isinstance(address, list):
+                maintainers += address
+            else:
+                lists += [address]
+        for address in section['list']:
+            # Convert to list if necessary
+            if isinstance(address, list):
+                lists += address
+            else:
+                lists += [address]
+
+    return maintainers, lists
+
+def get_maintainers(path, sections, level=0):
+    """For 'path', iterates over all sections, returning maintainers
+       for matching ones."""
+    maintainers = []
+    lists = []
+    for section in sections:
+        tmp_maint, tmp_lists = get_section_maintainers(path, section)
+        if tmp_maint:
+            maintainers += tmp_maint
+        if tmp_lists:
+            lists += tmp_lists
+
+    if not maintainers:
+        # If no match found, look for match for (nonexistent) file
+        # REPO.working_dir/<default>
+        print('"%s": no maintainers found, looking for default' % path)
+        if level == 0:
+            maintainers = get_maintainers('<default>', sections, level=level + 1)
+        else:
+            print("No <default> maintainers set for project.")
+        if not maintainers:
+            return None
+
+    return maintainers + lists
+
+def parse_maintainers_line(line):
+    """Parse one line of Maintainers.txt, returning any match group and its key."""
+    for key, expression in EXPRESSIONS.items():
+        match = expression.match(line)
+        if match:
+            return key, match.group(key)
+    return None, None
+
+def parse_maintainers_file(filename):
+    """Parse the Maintainers.txt from top-level of repo and
+       return a list containing dictionaries of all sections."""
+    with open(filename, 'r') as text:
+        line = text.readline()
+        sectionlist = []
+        section = defaultdict(list)
+        while line:
+            key, value = parse_maintainers_line(line)
+            if key and value:
+                section[key].append(value)
+
+            line = text.readline()
+            # If end of section (end of file, or non-tag line encountered)...
+            if not key or not value or not line:
+                # ...if non-empty, append section to list.
+                if section:
+                    sectionlist.append(section.copy())
+                    section.clear()
+
+        return sectionlist
+
+def get_modified_files(repo, args):
+    """Returns a list of the files modified by the commit specified in 'args'."""
+    commit = repo.commit(args.commit)
+    return commit.stats.files
+
+if __name__ == '__main__':
+    PARSER = argparse.ArgumentParser(
+        description='Retrieves information on who to cc for review on a given commit')
+    PARSER.add_argument('commit',
+                        action="store",
+                        help='git revision to examine (default: HEAD)',
+                        nargs='?',
+                        default='HEAD')
+    PARSER.add_argument('-l', '--lookup',
+                        help='Find section matches for path LOOKUP',
+                        required=False)
+    ARGS = PARSER.parse_args()
+
+    REPO = SetupGit.locate_repo()
+
+    CONFIG_FILE = os.path.join(REPO.working_dir, 'Maintainers.txt')
+
+    SECTIONS = parse_maintainers_file(CONFIG_FILE)
+
+    if ARGS.lookup:
+        FILES = [ARGS.lookup]
+    else:
+        FILES = get_modified_files(REPO, ARGS)
+
+    ADDRESSES = []
+
+    for file in FILES:
+        print(file)
+        addresslist = get_maintainers(file, SECTIONS)
+        if addresslist:
+            ADDRESSES += addresslist
+
+    for address in list(OrderedDict.fromkeys(ADDRESSES)):
+        print('  %s' % address)
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/3] add GetMaintainer.py helper script
  2019-07-12 17:01 [PATCH 0/3] add GetMaintainer.py helper script Leif Lindholm
                   ` (2 preceding siblings ...)
  2019-07-12 17:01 ` [PATCH 3/3] BaseTools: add GetMaintainer.py script Leif Lindholm
@ 2019-07-12 22:54 ` Laszlo Ersek
  2019-07-18 16:27 ` Leif Lindholm
  4 siblings, 0 replies; 20+ messages in thread
From: Laszlo Ersek @ 2019-07-12 22:54 UTC (permalink / raw)
  To: Leif Lindholm, devel
  Cc: Andrew Fish, Michael D Kinney, Philippe Mathieu-Daude, Bob Feng,
	Liming Gao, Wu, Hao A

On 07/12/19 19:01, Leif Lindholm wrote:
> Changes are available directly from:
> https://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=upstreaming/git-maintainer-v1
> 
> This series adds new tags to the Maintainers.txt format, making it possible
> to describe which filesystem paths are looked after by which people, and
> hence automating the extraction of a list over who should be cc:d on a patch
> submission.
> 
> Remaining shorcomings in v1:
> - Will still be misparsing OvmfPkg and MdeModulePkg due to non-tag lines
>   interspersed with the tag lines. These lines will be removed as areas of
>   responsibility is formally rewritten as tags.
> - * Wildcard support is not fully filesystem compliant except in first or
>   last position in the file pattern (it translates as regex .* elsewhere).
>   However, actual cases of mismatch are expected to be unlikely, and they
>   will be false positives rather than false negatives - so I think this is
>   good enough at least for a start.
> - Provides no information of why certain people or meiling lists were
>   picked - it just bundles all recipients up, deduplicates them, and
>   prints them out.
> 
> Using the script requires the gitpython module to be installed.
> 
> Worthwhile mentioning outside the ChangeLog is the added -l flag, which
> lets you look up what a given path would return in the way of matches.
> E.g. "python BaseTools/Scripts/GetMaintainer.py -l Non/Existing/Path"
> would return:
> ---
> Non/Existing/Path
> "Non/Existing/Path": no maintainers found, looking for default
>   Andrew Fish <afish@apple.com>
>   Laszlo Ersek <lersek@redhat.com>
>   Leif Lindholm <leif.lindholm@linaro.org>
>   Michael D Kinney <michael.d.kinney@intel.com>
>   devel@edk2.groups.io
> ---
> 
> This series would still result in GetMaintainers.py missing some
> maintainers/reviewers due to descriptions in prose rather than filename
> patterns. My preferred way of handling this would be to merge 1-2/3 as
> soon as found acceptable, following up and merging patches to update
> ArmVirtPkg, MdeModulePkg, and OvmfPkg, and finally once the file is
> consistent, proceed to merge 3/3.

Sounds like a plan.

Thanks
Laszlo

> 
> Changelog:
> v1:
> - Rebase to current Maintainers.txt.
> - Fix typos and missed bits in Maintainers.txt.
> - Get rid of the magic '<default>' filename, let the single-char '*'
>   wildcard resolve this (_using_ the magic '<default>' filename in the
>   script, but treating it as if it was a file in the top-level directory).
> - Add -l flag to script to look up which maintainers would be returned for
>   a given path (which need not exist).
> rfc:
> - Split patches up
>   - one for new Maintainers.txt format (documentation and F: tags).
>   - one for adding a new wilcards responsibility area for */Arm, */AArch64
>   - one for the GetMaintainer.py script
> - Reworked wildcard handling based on Laszlo's explanation
>   - Trailing / covers everything under that directory
>   - Trailing * does not cover subdirectories
> - Added support for X: tag
> - Added support for magic '<default>' pathname
> - Also prints mailing list addresses for matching L: tags
> 
> Cc: Andrew Fish <afish@apple.com>
> Cc: Laszlo Ersek <lersek@redhat.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Bob Feng <bob.c.feng@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Philippe Mathieu-Daude <philmd@redhat.com>
> Cc: "Wu, Hao A" <hao.a.wu@intel.com>
> 
> Leif Lindholm (3):
>   Maintainers.txt: update for filesystem area descriptions
>   Maintainers.txt: add wildcard path association for Arm/AArch64
>   BaseTools: add GetMaintainer.py script
> 
>  BaseTools/Scripts/GetMaintainer.py | 190 +++++++++++++++++++++++++++++
>  Maintainers.txt                    |  54 ++++++++
>  2 files changed, 244 insertions(+)
>  create mode 100644 BaseTools/Scripts/GetMaintainer.py
> 


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 1/3] Maintainers.txt: update for filesystem area descriptions
  2019-07-12 17:01 ` [PATCH 1/3] Maintainers.txt: update for filesystem area descriptions Leif Lindholm
@ 2019-07-12 22:54   ` Laszlo Ersek
  0 siblings, 0 replies; 20+ messages in thread
From: Laszlo Ersek @ 2019-07-12 22:54 UTC (permalink / raw)
  To: Leif Lindholm, devel
  Cc: Andrew Fish, Michael D Kinney, Philippe Mathieu-Daude, Bob Feng,
	Liming Gao

On 07/12/19 19:01, Leif Lindholm wrote:
> Add comment describing new F: and X: tags for associating maintainership
> sections with specific filesystem paths, including wildcards.
> 
> Add global section associating *all* code with devel@edk2.groups.io,
> with a default '*' F: tag directing all modifications that do not hit a
> rule to the stewards.
> 
> Also tag all files in top directory as maintained by the stewards.
> 
> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
> Tested-by: Philippe Mathieu-Daude <philmd@redhat.com>
> ---
>  Maintainers.txt | 46 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 46 insertions(+)

Reviewed-by: Laszlo Ersek <lersek@redhat.com>


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/3] Maintainers.txt: add wildcard path association for Arm/AArch64
  2019-07-12 17:01 ` [PATCH 2/3] Maintainers.txt: add wildcard path association for Arm/AArch64 Leif Lindholm
@ 2019-07-12 22:54   ` Laszlo Ersek
  0 siblings, 0 replies; 20+ messages in thread
From: Laszlo Ersek @ 2019-07-12 22:54 UTC (permalink / raw)
  To: Leif Lindholm, devel
  Cc: Andrew Fish, Michael D Kinney, Philippe Mathieu-Daude, Bob Feng,
	Liming Gao

On 07/12/19 19:01, Leif Lindholm wrote:
> Add Ard and Leif as responsible for any path matching
> F: */Arm/
> F: */AArch64/
> 
> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
> Tested-by: Philippe Mathieu-Daude <philmd@redhat.com>
> ---
>  Maintainers.txt | 8 ++++++++
>  1 file changed, 8 insertions(+)

Reviewed-by: Laszlo Ersek <lersek@redhat.com>


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 3/3] BaseTools: add GetMaintainer.py script
  2019-07-12 17:01 ` [PATCH 3/3] BaseTools: add GetMaintainer.py script Leif Lindholm
@ 2019-07-12 22:58   ` Laszlo Ersek
  2019-07-13 10:41     ` Leif Lindholm
  0 siblings, 1 reply; 20+ messages in thread
From: Laszlo Ersek @ 2019-07-12 22:58 UTC (permalink / raw)
  To: Leif Lindholm, devel
  Cc: Andrew Fish, Michael D Kinney, Philippe Mathieu-Daude, Bob Feng,
	Liming Gao

On 07/12/19 19:01, Leif Lindholm wrote:
> Add a new script GetMaintainer.py that uses the new Maintainer.txt format
> to determine which addresses to cc on patch submission.
> 
> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
> Tested-by: Philippe Mathieu-Daude <philmd@redhat.com>
> ---
>  BaseTools/Scripts/GetMaintainer.py | 190 +++++++++++++++++++++++++++++
>  1 file changed, 190 insertions(+)
>  create mode 100644 BaseTools/Scripts/GetMaintainer.py

I should really re-review this from zero, but it's 0:55 AM again. :/

Anyway, I think this script is a good candidate for gradual improvements
(should such ever become necessary, that is). The script doesn't have to
be perfect to be incredibly useful.

Acked-by: Laszlo Ersek <lersek@redhat.com>

... Did you have me in mind for the ArmVirtPkg and OvmfPkg pathname
patterns, for replacing the natural language pointers? :)

Thanks!
Laszlo

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 3/3] BaseTools: add GetMaintainer.py script
  2019-07-12 22:58   ` Laszlo Ersek
@ 2019-07-13 10:41     ` Leif Lindholm
  2019-07-15 17:08       ` [edk2-devel] " Laszlo Ersek
  0 siblings, 1 reply; 20+ messages in thread
From: Leif Lindholm @ 2019-07-13 10:41 UTC (permalink / raw)
  To: Laszlo Ersek
  Cc: devel, Andrew Fish, Michael D Kinney, Philippe Mathieu-Daude,
	Bob Feng, Liming Gao

On Sat, Jul 13, 2019 at 12:58:18AM +0200, Laszlo Ersek wrote:
> On 07/12/19 19:01, Leif Lindholm wrote:
> > Add a new script GetMaintainer.py that uses the new Maintainer.txt format
> > to determine which addresses to cc on patch submission.
> > 
> > Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
> > Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
> > Tested-by: Philippe Mathieu-Daude <philmd@redhat.com>
> > ---
> >  BaseTools/Scripts/GetMaintainer.py | 190 +++++++++++++++++++++++++++++
> >  1 file changed, 190 insertions(+)
> >  create mode 100644 BaseTools/Scripts/GetMaintainer.py
> 
> I should really re-review this from zero, but it's 0:55 AM again. :/
> 
> Anyway, I think this script is a good candidate for gradual improvements
> (should such ever become necessary, that is). The script doesn't have to
> be perfect to be incredibly useful.
> 
> Acked-by: Laszlo Ersek <lersek@redhat.com>

Thanks!

> ... Did you have me in mind for the ArmVirtPkg and OvmfPkg pathname
> patterns, for replacing the natural language pointers? :)

That would be ideal, thanks. I might miss something if I did it.
I would be happy to push them together with 1-2/3 once ready.

Best Regards,

Leif

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [edk2-devel] [PATCH 3/3] BaseTools: add GetMaintainer.py script
  2019-07-13 10:41     ` Leif Lindholm
@ 2019-07-15 17:08       ` Laszlo Ersek
  0 siblings, 0 replies; 20+ messages in thread
From: Laszlo Ersek @ 2019-07-15 17:08 UTC (permalink / raw)
  To: devel, leif.lindholm
  Cc: Andrew Fish, Michael D Kinney, Philippe Mathieu-Daude, Bob Feng,
	Liming Gao

On 07/13/19 12:41, Leif Lindholm wrote:
> On Sat, Jul 13, 2019 at 12:58:18AM +0200, Laszlo Ersek wrote:
>> On 07/12/19 19:01, Leif Lindholm wrote:
>>> Add a new script GetMaintainer.py that uses the new Maintainer.txt format
>>> to determine which addresses to cc on patch submission.
>>>
>>> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
>>> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
>>> Tested-by: Philippe Mathieu-Daude <philmd@redhat.com>
>>> ---
>>>  BaseTools/Scripts/GetMaintainer.py | 190 +++++++++++++++++++++++++++++
>>>  1 file changed, 190 insertions(+)
>>>  create mode 100644 BaseTools/Scripts/GetMaintainer.py
>>
>> I should really re-review this from zero, but it's 0:55 AM again. :/
>>
>> Anyway, I think this script is a good candidate for gradual improvements
>> (should such ever become necessary, that is). The script doesn't have to
>> be perfect to be incredibly useful.
>>
>> Acked-by: Laszlo Ersek <lersek@redhat.com>
> 
> Thanks!
> 
>> ... Did you have me in mind for the ArmVirtPkg and OvmfPkg pathname
>> patterns, for replacing the natural language pointers? :)
> 
> That would be ideal, thanks. I might miss something if I did it.
> I would be happy to push them together with 1-2/3 once ready.

Posted:

  [edk2-devel] [PATCH 0/4]
  Maintainers.txt: formalize ArmVirtPkg and OvmfPkg subsystem pathnames

  https://edk2.groups.io/g/devel/message/43728
  http://mid.mail-archive.com/20190715170431.13955-1-lersek@redhat.com

(The mail-archive.com link will start working after mail-archive.com
indexes the message. Oh, the beauty of stable message identifiers! :) )

Thanks
Laszlo

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/3] add GetMaintainer.py helper script
  2019-07-12 17:01 [PATCH 0/3] add GetMaintainer.py helper script Leif Lindholm
                   ` (3 preceding siblings ...)
  2019-07-12 22:54 ` [PATCH 0/3] add GetMaintainer.py helper script Laszlo Ersek
@ 2019-07-18 16:27 ` Leif Lindholm
  2019-07-18 17:01   ` Philippe Mathieu-Daudé
  2019-07-18 21:17   ` Laszlo Ersek
  4 siblings, 2 replies; 20+ messages in thread
From: Leif Lindholm @ 2019-07-18 16:27 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Andrew Fish, Laszlo Ersek, Michael D Kinney,
	Philippe Mathieu-Daude, Bob Feng, Liming Gao, Wu, Hao A,
	Stefan Berger

[-- Attachment #1: Type: text/plain, Size: 5037 bytes --]

Laszlo, Hao - I have prepared a set for pushing as below.

(Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> for all of your
patches.)
*But*, I need a review from  Bob and/or Liming before I push the final one:
"BaseTools: add GetMaintainer.py script" -
https://edk2.groups.io/g/devel/message/43666

I have verified reviews/acks by all affected reviewers, except for Stefan
Berger for Ovmf TCG/TPM2.
While I would prefer to have that too, this is a file format shift - not a
change in responsibility areas.
Laszlo, do you agree?
If so, I can push 1-7/8 as is.

/
    Leif

Hao A Wu (1):
  Maintainers.txt: Fine-grained review ownership for MdeModulePkg

Laszlo Ersek (4):
  Maintainers.txt: split out section "ArmVirtPkg: modules used on Xen"
  Maintainers.txt: split out section "OvmfPkg: Xen-related modules"
  Maintainers.txt: split out section "OvmfPkg: TCG- and TPM2-related
    modules"
  Maintainers.txt: split out section "OvmfPkg: CSM modules"

Leif Lindholm (3):
  Maintainers.txt: update for filesystem area descriptions
  Maintainers.txt: add wildcard path association for Arm/AArch64
  BaseTools: add GetMaintainer.py script


On Fri, 12 Jul 2019 at 18:01, Leif Lindholm <leif.lindholm@linaro.org>
wrote:

> Changes are available directly from:
>
> https://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=upstreaming/git-maintainer-v1
>
> This series adds new tags to the Maintainers.txt format, making it possible
> to describe which filesystem paths are looked after by which people, and
> hence automating the extraction of a list over who should be cc:d on a
> patch
> submission.
>
> Remaining shorcomings in v1:
> - Will still be misparsing OvmfPkg and MdeModulePkg due to non-tag lines
>   interspersed with the tag lines. These lines will be removed as areas of
>   responsibility is formally rewritten as tags.
> - * Wildcard support is not fully filesystem compliant except in first or
>   last position in the file pattern (it translates as regex .* elsewhere).
>   However, actual cases of mismatch are expected to be unlikely, and they
>   will be false positives rather than false negatives - so I think this is
>   good enough at least for a start.
> - Provides no information of why certain people or meiling lists were
>   picked - it just bundles all recipients up, deduplicates them, and
>   prints them out.
>
> Using the script requires the gitpython module to be installed.
>
> Worthwhile mentioning outside the ChangeLog is the added -l flag, which
> lets you look up what a given path would return in the way of matches.
> E.g. "python BaseTools/Scripts/GetMaintainer.py -l Non/Existing/Path"
> would return:
> ---
> Non/Existing/Path
> "Non/Existing/Path": no maintainers found, looking for default
>   Andrew Fish <afish@apple.com>
>   Laszlo Ersek <lersek@redhat.com>
>   Leif Lindholm <leif.lindholm@linaro.org>
>   Michael D Kinney <michael.d.kinney@intel.com>
>   devel@edk2.groups.io
> ---
>
> This series would still result in GetMaintainers.py missing some
> maintainers/reviewers due to descriptions in prose rather than filename
> patterns. My preferred way of handling this would be to merge 1-2/3 as
> soon as found acceptable, following up and merging patches to update
> ArmVirtPkg, MdeModulePkg, and OvmfPkg, and finally once the file is
> consistent, proceed to merge 3/3.
>
> Changelog:
> v1:
> - Rebase to current Maintainers.txt.
> - Fix typos and missed bits in Maintainers.txt.
> - Get rid of the magic '<default>' filename, let the single-char '*'
>   wildcard resolve this (_using_ the magic '<default>' filename in the
>   script, but treating it as if it was a file in the top-level directory).
> - Add -l flag to script to look up which maintainers would be returned for
>   a given path (which need not exist).
> rfc:
> - Split patches up
>   - one for new Maintainers.txt format (documentation and F: tags).
>   - one for adding a new wilcards responsibility area for */Arm, */AArch64
>   - one for the GetMaintainer.py script
> - Reworked wildcard handling based on Laszlo's explanation
>   - Trailing / covers everything under that directory
>   - Trailing * does not cover subdirectories
> - Added support for X: tag
> - Added support for magic '<default>' pathname
> - Also prints mailing list addresses for matching L: tags
>
> Cc: Andrew Fish <afish@apple.com>
> Cc: Laszlo Ersek <lersek@redhat.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Bob Feng <bob.c.feng@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Philippe Mathieu-Daude <philmd@redhat.com>
> Cc: "Wu, Hao A" <hao.a.wu@intel.com>
>
> Leif Lindholm (3):
>   Maintainers.txt: update for filesystem area descriptions
>   Maintainers.txt: add wildcard path association for Arm/AArch64
>   BaseTools: add GetMaintainer.py script
>
>  BaseTools/Scripts/GetMaintainer.py | 190 +++++++++++++++++++++++++++++
>  Maintainers.txt                    |  54 ++++++++
>  2 files changed, 244 insertions(+)
>  create mode 100644 BaseTools/Scripts/GetMaintainer.py
>
> --
> 2.20.1
>
>

[-- Attachment #2: Type: text/html, Size: 7009 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/3] add GetMaintainer.py helper script
  2019-07-18 16:27 ` Leif Lindholm
@ 2019-07-18 17:01   ` Philippe Mathieu-Daudé
  2019-07-18 17:40     ` Leif Lindholm
  2019-07-18 21:17   ` Laszlo Ersek
  1 sibling, 1 reply; 20+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-07-18 17:01 UTC (permalink / raw)
  To: Leif Lindholm, edk2-devel-groups-io
  Cc: Andrew Fish, Laszlo Ersek, Michael D Kinney, Bob Feng, Liming Gao,
	Wu, Hao A, Stefan Berger

Hi Leif,

On 7/18/19 6:27 PM, Leif Lindholm wrote:
> Laszlo, Hao - I have prepared a set for pushing as below.
> 
> (Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org
> <mailto:leif.lindholm@linaro.org>> for all of your patches.)
> *But*, I need a review from  Bob and/or Liming before I push the final one:
> "BaseTools: add GetMaintainer.py script" -
> https://edk2.groups.io/g/devel/message/43666
> 
> I have verified reviews/acks by all affected reviewers, except for
> Stefan Berger for Ovmf TCG/TPM2.
> While I would prefer to have that too, this is a file format shift - not
> a change in responsibility areas.

As Marc-André and Stefan have the same responsabilities, Marc-André's
review for their common section should be sufficient, right?

Now if you want to be kind and patient with Stefan, since this is not a
logical change blocking anyone, it might be wise to wait over the weekend.

My 2 cents ;)

Phil.

> Laszlo, do you agree?
> If so, I can push 1-7/8 as is.
> 
> /
>     Leif
> 
> Hao A Wu (1):
>   Maintainers.txt: Fine-grained review ownership for MdeModulePkg
> 
> Laszlo Ersek (4):
>   Maintainers.txt: split out section "ArmVirtPkg: modules used on Xen"
>   Maintainers.txt: split out section "OvmfPkg: Xen-related modules"
>   Maintainers.txt: split out section "OvmfPkg: TCG- and TPM2-related
>     modules"
>   Maintainers.txt: split out section "OvmfPkg: CSM modules"
> 
> Leif Lindholm (3):
>   Maintainers.txt: update for filesystem area descriptions
>   Maintainers.txt: add wildcard path association for Arm/AArch64
>   BaseTools: add GetMaintainer.py script
> 
> 
> On Fri, 12 Jul 2019 at 18:01, Leif Lindholm <leif.lindholm@linaro.org
> <mailto:leif.lindholm@linaro.org>> wrote:
> 
>     Changes are available directly from:
>     https://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=upstreaming/git-maintainer-v1
> 
>     This series adds new tags to the Maintainers.txt format, making it
>     possible
>     to describe which filesystem paths are looked after by which people, and
>     hence automating the extraction of a list over who should be cc:d on
>     a patch
>     submission.
> 
>     Remaining shorcomings in v1:
>     - Will still be misparsing OvmfPkg and MdeModulePkg due to non-tag lines
>       interspersed with the tag lines. These lines will be removed as
>     areas of
>       responsibility is formally rewritten as tags.
>     - * Wildcard support is not fully filesystem compliant except in
>     first or
>       last position in the file pattern (it translates as regex .*
>     elsewhere).
>       However, actual cases of mismatch are expected to be unlikely, and
>     they
>       will be false positives rather than false negatives - so I think
>     this is
>       good enough at least for a start.
>     - Provides no information of why certain people or meiling lists were
>       picked - it just bundles all recipients up, deduplicates them, and
>       prints them out.
> 
>     Using the script requires the gitpython module to be installed.
> 
>     Worthwhile mentioning outside the ChangeLog is the added -l flag, which
>     lets you look up what a given path would return in the way of matches.
>     E.g. "python BaseTools/Scripts/GetMaintainer.py -l Non/Existing/Path"
>     would return:
>     ---
>     Non/Existing/Path
>     "Non/Existing/Path": no maintainers found, looking for default
>       Andrew Fish <afish@apple.com <mailto:afish@apple.com>>
>       Laszlo Ersek <lersek@redhat.com <mailto:lersek@redhat.com>>
>       Leif Lindholm <leif.lindholm@linaro.org
>     <mailto:leif.lindholm@linaro.org>>
>       Michael D Kinney <michael.d.kinney@intel.com
>     <mailto:michael.d.kinney@intel.com>>
>       devel@edk2.groups.io <mailto:devel@edk2.groups.io>
>     ---
> 
>     This series would still result in GetMaintainers.py missing some
>     maintainers/reviewers due to descriptions in prose rather than filename
>     patterns. My preferred way of handling this would be to merge 1-2/3 as
>     soon as found acceptable, following up and merging patches to update
>     ArmVirtPkg, MdeModulePkg, and OvmfPkg, and finally once the file is
>     consistent, proceed to merge 3/3.
> 
>     Changelog:
>     v1:
>     - Rebase to current Maintainers.txt.
>     - Fix typos and missed bits in Maintainers.txt.
>     - Get rid of the magic '<default>' filename, let the single-char '*'
>       wildcard resolve this (_using_ the magic '<default>' filename in the
>       script, but treating it as if it was a file in the top-level
>     directory).
>     - Add -l flag to script to look up which maintainers would be
>     returned for
>       a given path (which need not exist).
>     rfc:
>     - Split patches up
>       - one for new Maintainers.txt format (documentation and F: tags).
>       - one for adding a new wilcards responsibility area for */Arm,
>     */AArch64
>       - one for the GetMaintainer.py script
>     - Reworked wildcard handling based on Laszlo's explanation
>       - Trailing / covers everything under that directory
>       - Trailing * does not cover subdirectories
>     - Added support for X: tag
>     - Added support for magic '<default>' pathname
>     - Also prints mailing list addresses for matching L: tags
> 
>     Cc: Andrew Fish <afish@apple.com <mailto:afish@apple.com>>
>     Cc: Laszlo Ersek <lersek@redhat.com <mailto:lersek@redhat.com>>
>     Cc: Michael D Kinney <michael.d.kinney@intel.com
>     <mailto:michael.d.kinney@intel.com>>
>     Cc: Bob Feng <bob.c.feng@intel.com <mailto:bob.c.feng@intel.com>>
>     Cc: Liming Gao <liming.gao@intel.com <mailto:liming.gao@intel.com>>
>     Cc: Philippe Mathieu-Daude <philmd@redhat.com
>     <mailto:philmd@redhat.com>>
>     Cc: "Wu, Hao A" <hao.a.wu@intel.com <mailto:hao.a.wu@intel.com>>
> 
>     Leif Lindholm (3):
>       Maintainers.txt: update for filesystem area descriptions
>       Maintainers.txt: add wildcard path association for Arm/AArch64
>       BaseTools: add GetMaintainer.py script
> 
>      BaseTools/Scripts/GetMaintainer.py | 190 +++++++++++++++++++++++++++++
>      Maintainers.txt                    |  54 ++++++++
>      2 files changed, 244 insertions(+)
>      create mode 100644 BaseTools/Scripts/GetMaintainer.py
> 
>     -- 
>     2.20.1
> 

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/3] add GetMaintainer.py helper script
  2019-07-18 17:01   ` Philippe Mathieu-Daudé
@ 2019-07-18 17:40     ` Leif Lindholm
  2019-07-18 17:50       ` Philippe Mathieu-Daudé
  0 siblings, 1 reply; 20+ messages in thread
From: Leif Lindholm @ 2019-07-18 17:40 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: edk2-devel-groups-io, Andrew Fish, Laszlo Ersek, Michael D Kinney,
	Bob Feng, Liming Gao, Wu, Hao A, Stefan Berger

On Thu, Jul 18, 2019 at 07:01:40PM +0200, Philippe Mathieu-Daudé wrote:
> Hi Leif,
> 
> On 7/18/19 6:27 PM, Leif Lindholm wrote:
> > Laszlo, Hao - I have prepared a set for pushing as below.
> > 
> > (Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org
> > <mailto:leif.lindholm@linaro.org>> for all of your patches.)
> > *But*, I need a review from  Bob and/or Liming before I push the final one:
> > "BaseTools: add GetMaintainer.py script" -
> > https://edk2.groups.io/g/devel/message/43666
> > 
> > I have verified reviews/acks by all affected reviewers, except for
> > Stefan Berger for Ovmf TCG/TPM2.
> > While I would prefer to have that too, this is a file format shift - not
> > a change in responsibility areas.
> 
> As Marc-André and Stefan have the same responsabilities, Marc-André's
> review for their common section should be sufficient, right?

Pretty much.

> Now if you want to be kind and patient with Stefan, since this is not a
> logical change blocking anyone, it might be wise to wait over the weekend.
> 
> My 2 cents ;)

Yeah, only thing is it would be nice if we could get the script in
(which is dependent on the Maintainers.txt changes in order to not
give misleading results) with some time to spare (and for it to see
real-world use) before we start the freeze for edk2-stable201908.

/
    Leif

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/3] add GetMaintainer.py helper script
  2019-07-18 17:40     ` Leif Lindholm
@ 2019-07-18 17:50       ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 20+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-07-18 17:50 UTC (permalink / raw)
  To: Leif Lindholm
  Cc: edk2-devel-groups-io, Andrew Fish, Laszlo Ersek, Michael D Kinney,
	Bob Feng, Liming Gao, Wu, Hao A, Stefan Berger

On 7/18/19 7:40 PM, Leif Lindholm wrote:
> On Thu, Jul 18, 2019 at 07:01:40PM +0200, Philippe Mathieu-Daudé wrote:
>> Hi Leif,
>>
>> On 7/18/19 6:27 PM, Leif Lindholm wrote:
>>> Laszlo, Hao - I have prepared a set for pushing as below.
>>>
>>> (Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org
>>> <mailto:leif.lindholm@linaro.org>> for all of your patches.)
>>> *But*, I need a review from  Bob and/or Liming before I push the final one:
>>> "BaseTools: add GetMaintainer.py script" -
>>> https://edk2.groups.io/g/devel/message/43666
>>>
>>> I have verified reviews/acks by all affected reviewers, except for
>>> Stefan Berger for Ovmf TCG/TPM2.
>>> While I would prefer to have that too, this is a file format shift - not
>>> a change in responsibility areas.
>>
>> As Marc-André and Stefan have the same responsabilities, Marc-André's
>> review for their common section should be sufficient, right?
> 
> Pretty much.
> 
>> Now if you want to be kind and patient with Stefan, since this is not a
>> logical change blocking anyone, it might be wise to wait over the weekend.
>>
>> My 2 cents ;)
> 
> Yeah, only thing is it would be nice if we could get the script in
> (which is dependent on the Maintainers.txt changes in order to not
> give misleading results) with some time to spare (and for it to see
> real-world use) before we start the freeze for edk2-stable201908.

Then I insist, since Marc-André reviewed the patch, except for being
particularly kind, I don't see any reason to not merge your series ;)

Regards,

Phil.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/3] add GetMaintainer.py helper script
  2019-07-18 16:27 ` Leif Lindholm
  2019-07-18 17:01   ` Philippe Mathieu-Daudé
@ 2019-07-18 21:17   ` Laszlo Ersek
  2019-07-18 21:56     ` Leif Lindholm
  2019-07-19  9:00     ` [PATCH 0/3] add GetMaintainer.py helper script (and Maintainers.txt format change) Leif Lindholm
  1 sibling, 2 replies; 20+ messages in thread
From: Laszlo Ersek @ 2019-07-18 21:17 UTC (permalink / raw)
  To: Leif Lindholm, edk2-devel-groups-io
  Cc: Andrew Fish, Michael D Kinney, Philippe Mathieu-Daude, Bob Feng,
	Liming Gao, Wu, Hao A, Stefan Berger

On 07/18/19 18:27, Leif Lindholm wrote:
> Laszlo, Hao - I have prepared a set for pushing as below.
> 
> (Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> for all of your
> patches.)
> *But*, I need a review from  Bob and/or Liming before I push the final one:
> "BaseTools: add GetMaintainer.py script" -
> https://edk2.groups.io/g/devel/message/43666
> 
> I have verified reviews/acks by all affected reviewers, except for Stefan
> Berger for Ovmf TCG/TPM2.

Stefan's R-b has arrived as well:

http://mid.mail-archive.com/7201b3fb-d84b-30e0-61c8-bf9bb9defa7a@linux.ibm.com

So, I agree, those four patches regarding OvmfPkg reviewership are now
fully approved.

Please pick up Phil's feedback as well.

> While I would prefer to have that too, this is a file format shift - not a
> change in responsibility areas.
> Laszlo, do you agree?
> If so, I can push 1-7/8 as is.

See above -- then I'm OK.

Thank you!
Laszlo

> 
> /
>     Leif
> 
> Hao A Wu (1):
>   Maintainers.txt: Fine-grained review ownership for MdeModulePkg
> 
> Laszlo Ersek (4):
>   Maintainers.txt: split out section "ArmVirtPkg: modules used on Xen"
>   Maintainers.txt: split out section "OvmfPkg: Xen-related modules"
>   Maintainers.txt: split out section "OvmfPkg: TCG- and TPM2-related
>     modules"
>   Maintainers.txt: split out section "OvmfPkg: CSM modules"
> 
> Leif Lindholm (3):
>   Maintainers.txt: update for filesystem area descriptions
>   Maintainers.txt: add wildcard path association for Arm/AArch64
>   BaseTools: add GetMaintainer.py script
> 
> 
> On Fri, 12 Jul 2019 at 18:01, Leif Lindholm <leif.lindholm@linaro.org>
> wrote:
> 
>> Changes are available directly from:
>>
>> https://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=upstreaming/git-maintainer-v1
>>
>> This series adds new tags to the Maintainers.txt format, making it possible
>> to describe which filesystem paths are looked after by which people, and
>> hence automating the extraction of a list over who should be cc:d on a
>> patch
>> submission.
>>
>> Remaining shorcomings in v1:
>> - Will still be misparsing OvmfPkg and MdeModulePkg due to non-tag lines
>>   interspersed with the tag lines. These lines will be removed as areas of
>>   responsibility is formally rewritten as tags.
>> - * Wildcard support is not fully filesystem compliant except in first or
>>   last position in the file pattern (it translates as regex .* elsewhere).
>>   However, actual cases of mismatch are expected to be unlikely, and they
>>   will be false positives rather than false negatives - so I think this is
>>   good enough at least for a start.
>> - Provides no information of why certain people or meiling lists were
>>   picked - it just bundles all recipients up, deduplicates them, and
>>   prints them out.
>>
>> Using the script requires the gitpython module to be installed.
>>
>> Worthwhile mentioning outside the ChangeLog is the added -l flag, which
>> lets you look up what a given path would return in the way of matches.
>> E.g. "python BaseTools/Scripts/GetMaintainer.py -l Non/Existing/Path"
>> would return:
>> ---
>> Non/Existing/Path
>> "Non/Existing/Path": no maintainers found, looking for default
>>   Andrew Fish <afish@apple.com>
>>   Laszlo Ersek <lersek@redhat.com>
>>   Leif Lindholm <leif.lindholm@linaro.org>
>>   Michael D Kinney <michael.d.kinney@intel.com>
>>   devel@edk2.groups.io
>> ---
>>
>> This series would still result in GetMaintainers.py missing some
>> maintainers/reviewers due to descriptions in prose rather than filename
>> patterns. My preferred way of handling this would be to merge 1-2/3 as
>> soon as found acceptable, following up and merging patches to update
>> ArmVirtPkg, MdeModulePkg, and OvmfPkg, and finally once the file is
>> consistent, proceed to merge 3/3.
>>
>> Changelog:
>> v1:
>> - Rebase to current Maintainers.txt.
>> - Fix typos and missed bits in Maintainers.txt.
>> - Get rid of the magic '<default>' filename, let the single-char '*'
>>   wildcard resolve this (_using_ the magic '<default>' filename in the
>>   script, but treating it as if it was a file in the top-level directory).
>> - Add -l flag to script to look up which maintainers would be returned for
>>   a given path (which need not exist).
>> rfc:
>> - Split patches up
>>   - one for new Maintainers.txt format (documentation and F: tags).
>>   - one for adding a new wilcards responsibility area for */Arm, */AArch64
>>   - one for the GetMaintainer.py script
>> - Reworked wildcard handling based on Laszlo's explanation
>>   - Trailing / covers everything under that directory
>>   - Trailing * does not cover subdirectories
>> - Added support for X: tag
>> - Added support for magic '<default>' pathname
>> - Also prints mailing list addresses for matching L: tags
>>
>> Cc: Andrew Fish <afish@apple.com>
>> Cc: Laszlo Ersek <lersek@redhat.com>
>> Cc: Michael D Kinney <michael.d.kinney@intel.com>
>> Cc: Bob Feng <bob.c.feng@intel.com>
>> Cc: Liming Gao <liming.gao@intel.com>
>> Cc: Philippe Mathieu-Daude <philmd@redhat.com>
>> Cc: "Wu, Hao A" <hao.a.wu@intel.com>
>>
>> Leif Lindholm (3):
>>   Maintainers.txt: update for filesystem area descriptions
>>   Maintainers.txt: add wildcard path association for Arm/AArch64
>>   BaseTools: add GetMaintainer.py script
>>
>>  BaseTools/Scripts/GetMaintainer.py | 190 +++++++++++++++++++++++++++++
>>  Maintainers.txt                    |  54 ++++++++
>>  2 files changed, 244 insertions(+)
>>  create mode 100644 BaseTools/Scripts/GetMaintainer.py
>>
>> --
>> 2.20.1
>>
>>
> 


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/3] add GetMaintainer.py helper script
  2019-07-18 21:17   ` Laszlo Ersek
@ 2019-07-18 21:56     ` Leif Lindholm
  2019-07-24  1:39       ` Liming Gao
  2019-07-19  9:00     ` [PATCH 0/3] add GetMaintainer.py helper script (and Maintainers.txt format change) Leif Lindholm
  1 sibling, 1 reply; 20+ messages in thread
From: Leif Lindholm @ 2019-07-18 21:56 UTC (permalink / raw)
  To: Laszlo Ersek
  Cc: edk2-devel-groups-io, Andrew Fish, Michael D Kinney,
	Philippe Mathieu-Daude, Bob Feng, Liming Gao, Wu, Hao A,
	Stefan Berger

On Thu, Jul 18, 2019 at 11:17:30PM +0200, Laszlo Ersek wrote:
> On 07/18/19 18:27, Leif Lindholm wrote:
> > Laszlo, Hao - I have prepared a set for pushing as below.
> > 
> > (Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> for all of your
> > patches.)
> > *But*, I need a review from  Bob and/or Liming before I push the final one:
> > "BaseTools: add GetMaintainer.py script" -
> > https://edk2.groups.io/g/devel/message/43666
> > 
> > I have verified reviews/acks by all affected reviewers, except for Stefan
> > Berger for Ovmf TCG/TPM2.
> 
> Stefan's R-b has arrived as well:
> 
> http://mid.mail-archive.com/7201b3fb-d84b-30e0-61c8-bf9bb9defa7a@linux.ibm.com
> 
> So, I agree, those four patches regarding OvmfPkg reviewership are now
> fully approved.
> 
> Please pick up Phil's feedback as well.

Have done.
Staging branch in place at
https://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=upstreaming/git-maintainer-v2

I'll push 1-7 tomorrow morning my time even if I don't get the R-b
from BaseTools Maintainers for 8/8 by then, and the whole set if I do.

> > While I would prefer to have that too, this is a file format shift - not a
> > change in responsibility areas.
> > Laszlo, do you agree?
> > If so, I can push 1-7/8 as is.
> 
> See above -- then I'm OK.

Thanks!

Best Regards,

Leif

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/3] add GetMaintainer.py helper script (and Maintainers.txt format change)
  2019-07-18 21:17   ` Laszlo Ersek
  2019-07-18 21:56     ` Leif Lindholm
@ 2019-07-19  9:00     ` Leif Lindholm
  2019-07-24  2:03       ` [edk2-devel] " Bob Feng
  1 sibling, 1 reply; 20+ messages in thread
From: Leif Lindholm @ 2019-07-19  9:00 UTC (permalink / raw)
  To: Laszlo Ersek
  Cc: edk2-devel-groups-io, Andrew Fish, Michael D Kinney,
	Philippe Mathieu-Daude, Bob Feng, Liming Gao, Wu, Hao A,
	Stefan Berger

On Thu, Jul 18, 2019 at 11:17:30PM +0200, Laszlo Ersek wrote:
> On 07/18/19 18:27, Leif Lindholm wrote:
> > Laszlo, Hao - I have prepared a set for pushing as below.
> > 
> > (Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> for all of your
> > patches.)
> > *But*, I need a review from  Bob and/or Liming before I push the final one:
> > "BaseTools: add GetMaintainer.py script" -
> > https://edk2.groups.io/g/devel/message/43666
> > 
> > I have verified reviews/acks by all affected reviewers, except for Stefan
> > Berger for Ovmf TCG/TPM2.
> 
> Stefan's R-b has arrived as well:
> 
> http://mid.mail-archive.com/7201b3fb-d84b-30e0-61c8-bf9bb9defa7a@linux.ibm.com
> 
> So, I agree, those four patches regarding OvmfPkg reviewership are now
> fully approved.
> 
> Please pick up Phil's feedback as well.
> 
> > While I would prefer to have that too, this is a file format shift - not a
> > change in responsibility areas.
> > Laszlo, do you agree?
> > If so, I can push 1-7/8 as is.
> 
> See above -- then I'm OK.

1-7/8 pushed as:
3dafa0382286..296c908c6968

Will push the GetMaintainer.py script once approved by BaseTools
maintainers.

Thanks!

/
    Leif

> Thank you!
> Laszlo
> 
> > 
> > /
> >     Leif
> > 
> > Hao A Wu (1):
> >   Maintainers.txt: Fine-grained review ownership for MdeModulePkg
> > 
> > Laszlo Ersek (4):
> >   Maintainers.txt: split out section "ArmVirtPkg: modules used on Xen"
> >   Maintainers.txt: split out section "OvmfPkg: Xen-related modules"
> >   Maintainers.txt: split out section "OvmfPkg: TCG- and TPM2-related
> >     modules"
> >   Maintainers.txt: split out section "OvmfPkg: CSM modules"
> > 
> > Leif Lindholm (3):
> >   Maintainers.txt: update for filesystem area descriptions
> >   Maintainers.txt: add wildcard path association for Arm/AArch64
> >   BaseTools: add GetMaintainer.py script
> > 
> > 
> > On Fri, 12 Jul 2019 at 18:01, Leif Lindholm <leif.lindholm@linaro.org>
> > wrote:
> > 
> >> Changes are available directly from:
> >>
> >> https://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=upstreaming/git-maintainer-v1
> >>
> >> This series adds new tags to the Maintainers.txt format, making it possible
> >> to describe which filesystem paths are looked after by which people, and
> >> hence automating the extraction of a list over who should be cc:d on a
> >> patch
> >> submission.
> >>
> >> Remaining shorcomings in v1:
> >> - Will still be misparsing OvmfPkg and MdeModulePkg due to non-tag lines
> >>   interspersed with the tag lines. These lines will be removed as areas of
> >>   responsibility is formally rewritten as tags.
> >> - * Wildcard support is not fully filesystem compliant except in first or
> >>   last position in the file pattern (it translates as regex .* elsewhere).
> >>   However, actual cases of mismatch are expected to be unlikely, and they
> >>   will be false positives rather than false negatives - so I think this is
> >>   good enough at least for a start.
> >> - Provides no information of why certain people or meiling lists were
> >>   picked - it just bundles all recipients up, deduplicates them, and
> >>   prints them out.
> >>
> >> Using the script requires the gitpython module to be installed.
> >>
> >> Worthwhile mentioning outside the ChangeLog is the added -l flag, which
> >> lets you look up what a given path would return in the way of matches.
> >> E.g. "python BaseTools/Scripts/GetMaintainer.py -l Non/Existing/Path"
> >> would return:
> >> ---
> >> Non/Existing/Path
> >> "Non/Existing/Path": no maintainers found, looking for default
> >>   Andrew Fish <afish@apple.com>
> >>   Laszlo Ersek <lersek@redhat.com>
> >>   Leif Lindholm <leif.lindholm@linaro.org>
> >>   Michael D Kinney <michael.d.kinney@intel.com>
> >>   devel@edk2.groups.io
> >> ---
> >>
> >> This series would still result in GetMaintainers.py missing some
> >> maintainers/reviewers due to descriptions in prose rather than filename
> >> patterns. My preferred way of handling this would be to merge 1-2/3 as
> >> soon as found acceptable, following up and merging patches to update
> >> ArmVirtPkg, MdeModulePkg, and OvmfPkg, and finally once the file is
> >> consistent, proceed to merge 3/3.
> >>
> >> Changelog:
> >> v1:
> >> - Rebase to current Maintainers.txt.
> >> - Fix typos and missed bits in Maintainers.txt.
> >> - Get rid of the magic '<default>' filename, let the single-char '*'
> >>   wildcard resolve this (_using_ the magic '<default>' filename in the
> >>   script, but treating it as if it was a file in the top-level directory).
> >> - Add -l flag to script to look up which maintainers would be returned for
> >>   a given path (which need not exist).
> >> rfc:
> >> - Split patches up
> >>   - one for new Maintainers.txt format (documentation and F: tags).
> >>   - one for adding a new wilcards responsibility area for */Arm, */AArch64
> >>   - one for the GetMaintainer.py script
> >> - Reworked wildcard handling based on Laszlo's explanation
> >>   - Trailing / covers everything under that directory
> >>   - Trailing * does not cover subdirectories
> >> - Added support for X: tag
> >> - Added support for magic '<default>' pathname
> >> - Also prints mailing list addresses for matching L: tags
> >>
> >> Cc: Andrew Fish <afish@apple.com>
> >> Cc: Laszlo Ersek <lersek@redhat.com>
> >> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> >> Cc: Bob Feng <bob.c.feng@intel.com>
> >> Cc: Liming Gao <liming.gao@intel.com>
> >> Cc: Philippe Mathieu-Daude <philmd@redhat.com>
> >> Cc: "Wu, Hao A" <hao.a.wu@intel.com>
> >>
> >> Leif Lindholm (3):
> >>   Maintainers.txt: update for filesystem area descriptions
> >>   Maintainers.txt: add wildcard path association for Arm/AArch64
> >>   BaseTools: add GetMaintainer.py script
> >>
> >>  BaseTools/Scripts/GetMaintainer.py | 190 +++++++++++++++++++++++++++++
> >>  Maintainers.txt                    |  54 ++++++++
> >>  2 files changed, 244 insertions(+)
> >>  create mode 100644 BaseTools/Scripts/GetMaintainer.py
> >>
> >> --
> >> 2.20.1
> >>
> >>
> > 
> 

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/3] add GetMaintainer.py helper script
  2019-07-18 21:56     ` Leif Lindholm
@ 2019-07-24  1:39       ` Liming Gao
  0 siblings, 0 replies; 20+ messages in thread
From: Liming Gao @ 2019-07-24  1:39 UTC (permalink / raw)
  To: Leif Lindholm, Laszlo Ersek
  Cc: edk2-devel-groups-io, Andrew Fish, Kinney, Michael D,
	Philippe Mathieu-Daude, Feng, Bob C, Wu, Hao A, Stefan Berger

Sorry, I miss this mail. I am OK for this change. 

Ack-by: Liming Gao <liming.gao@intel.com>

Thanks
Liming
> -----Original Message-----
> From: Leif Lindholm [mailto:leif.lindholm@linaro.org]
> Sent: Friday, July 19, 2019 5:57 AM
> To: Laszlo Ersek <lersek@redhat.com>
> Cc: edk2-devel-groups-io <devel@edk2.groups.io>; Andrew Fish <afish@apple.com>; Kinney, Michael D <michael.d.kinney@intel.com>;
> Philippe Mathieu-Daude <philmd@redhat.com>; Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <liming.gao@intel.com>; Wu, Hao A
> <hao.a.wu@intel.com>; Stefan Berger <stefanb@linux.ibm.com>
> Subject: Re: [PATCH 0/3] add GetMaintainer.py helper script
> 
> On Thu, Jul 18, 2019 at 11:17:30PM +0200, Laszlo Ersek wrote:
> > On 07/18/19 18:27, Leif Lindholm wrote:
> > > Laszlo, Hao - I have prepared a set for pushing as below.
> > >
> > > (Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> for all of your
> > > patches.)
> > > *But*, I need a review from  Bob and/or Liming before I push the final one:
> > > "BaseTools: add GetMaintainer.py script" -
> > > https://edk2.groups.io/g/devel/message/43666
> > >
> > > I have verified reviews/acks by all affected reviewers, except for Stefan
> > > Berger for Ovmf TCG/TPM2.
> >
> > Stefan's R-b has arrived as well:
> >
> > http://mid.mail-archive.com/7201b3fb-d84b-30e0-61c8-bf9bb9defa7a@linux.ibm.com
> >
> > So, I agree, those four patches regarding OvmfPkg reviewership are now
> > fully approved.
> >
> > Please pick up Phil's feedback as well.
> 
> Have done.
> Staging branch in place at
> https://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=upstreaming/git-maintainer-v2
> 
> I'll push 1-7 tomorrow morning my time even if I don't get the R-b
> from BaseTools Maintainers for 8/8 by then, and the whole set if I do.
> 
> > > While I would prefer to have that too, this is a file format shift - not a
> > > change in responsibility areas.
> > > Laszlo, do you agree?
> > > If so, I can push 1-7/8 as is.
> >
> > See above -- then I'm OK.
> 
> Thanks!
> 
> Best Regards,
> 
> Leif

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [edk2-devel] [PATCH 0/3] add GetMaintainer.py helper script (and Maintainers.txt format change)
  2019-07-19  9:00     ` [PATCH 0/3] add GetMaintainer.py helper script (and Maintainers.txt format change) Leif Lindholm
@ 2019-07-24  2:03       ` Bob Feng
  2019-07-24 16:49         ` Leif Lindholm
  0 siblings, 1 reply; 20+ messages in thread
From: Bob Feng @ 2019-07-24  2:03 UTC (permalink / raw)
  To: devel@edk2.groups.io, leif.lindholm@linaro.org, Laszlo Ersek
  Cc: Andrew Fish, Kinney, Michael D, Philippe Mathieu-Daude,
	Gao, Liming, Wu, Hao A, Stefan Berger

Patch looks fine for me.

Reviewed-by: Bob Feng <bob.c.feng@intel.com>

-----Original Message-----
From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Leif Lindholm
Sent: Friday, July 19, 2019 5:00 PM
To: Laszlo Ersek <lersek@redhat.com>
Cc: edk2-devel-groups-io <devel@edk2.groups.io>; Andrew Fish <afish@apple.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Philippe Mathieu-Daude <philmd@redhat.com>; Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <liming.gao@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; Stefan Berger <stefanb@linux.ibm.com>
Subject: Re: [edk2-devel] [PATCH 0/3] add GetMaintainer.py helper script (and Maintainers.txt format change)

On Thu, Jul 18, 2019 at 11:17:30PM +0200, Laszlo Ersek wrote:
> On 07/18/19 18:27, Leif Lindholm wrote:
> > Laszlo, Hao - I have prepared a set for pushing as below.
> > 
> > (Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> for all of 
> > your
> > patches.)
> > *But*, I need a review from  Bob and/or Liming before I push the final one:
> > "BaseTools: add GetMaintainer.py script" -
> > https://edk2.groups.io/g/devel/message/43666
> > 
> > I have verified reviews/acks by all affected reviewers, except for 
> > Stefan Berger for Ovmf TCG/TPM2.
> 
> Stefan's R-b has arrived as well:
> 
> http://mid.mail-archive.com/7201b3fb-d84b-30e0-61c8-bf9bb9defa7a@linux
> .ibm.com
> 
> So, I agree, those four patches regarding OvmfPkg reviewership are now 
> fully approved.
> 
> Please pick up Phil's feedback as well.
> 
> > While I would prefer to have that too, this is a file format shift - 
> > not a change in responsibility areas.
> > Laszlo, do you agree?
> > If so, I can push 1-7/8 as is.
> 
> See above -- then I'm OK.

1-7/8 pushed as:
3dafa0382286..296c908c6968

Will push the GetMaintainer.py script once approved by BaseTools maintainers.

Thanks!

/
    Leif

> Thank you!
> Laszlo
> 
> > 
> > /
> >     Leif
> > 
> > Hao A Wu (1):
> >   Maintainers.txt: Fine-grained review ownership for MdeModulePkg
> > 
> > Laszlo Ersek (4):
> >   Maintainers.txt: split out section "ArmVirtPkg: modules used on Xen"
> >   Maintainers.txt: split out section "OvmfPkg: Xen-related modules"
> >   Maintainers.txt: split out section "OvmfPkg: TCG- and TPM2-related
> >     modules"
> >   Maintainers.txt: split out section "OvmfPkg: CSM modules"
> > 
> > Leif Lindholm (3):
> >   Maintainers.txt: update for filesystem area descriptions
> >   Maintainers.txt: add wildcard path association for Arm/AArch64
> >   BaseTools: add GetMaintainer.py script
> > 
> > 
> > On Fri, 12 Jul 2019 at 18:01, Leif Lindholm 
> > <leif.lindholm@linaro.org>
> > wrote:
> > 
> >> Changes are available directly from:
> >>
> >> https://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=upstrea
> >> ming/git-maintainer-v1
> >>
> >> This series adds new tags to the Maintainers.txt format, making it 
> >> possible to describe which filesystem paths are looked after by 
> >> which people, and hence automating the extraction of a list over 
> >> who should be cc:d on a patch submission.
> >>
> >> Remaining shorcomings in v1:
> >> - Will still be misparsing OvmfPkg and MdeModulePkg due to non-tag lines
> >>   interspersed with the tag lines. These lines will be removed as areas of
> >>   responsibility is formally rewritten as tags.
> >> - * Wildcard support is not fully filesystem compliant except in first or
> >>   last position in the file pattern (it translates as regex .* elsewhere).
> >>   However, actual cases of mismatch are expected to be unlikely, and they
> >>   will be false positives rather than false negatives - so I think this is
> >>   good enough at least for a start.
> >> - Provides no information of why certain people or meiling lists were
> >>   picked - it just bundles all recipients up, deduplicates them, and
> >>   prints them out.
> >>
> >> Using the script requires the gitpython module to be installed.
> >>
> >> Worthwhile mentioning outside the ChangeLog is the added -l flag, 
> >> which lets you look up what a given path would return in the way of matches.
> >> E.g. "python BaseTools/Scripts/GetMaintainer.py -l Non/Existing/Path"
> >> would return:
> >> ---
> >> Non/Existing/Path
> >> "Non/Existing/Path": no maintainers found, looking for default
> >>   Andrew Fish <afish@apple.com>
> >>   Laszlo Ersek <lersek@redhat.com>
> >>   Leif Lindholm <leif.lindholm@linaro.org>
> >>   Michael D Kinney <michael.d.kinney@intel.com>
> >>   devel@edk2.groups.io
> >> ---
> >>
> >> This series would still result in GetMaintainers.py missing some 
> >> maintainers/reviewers due to descriptions in prose rather than 
> >> filename patterns. My preferred way of handling this would be to 
> >> merge 1-2/3 as soon as found acceptable, following up and merging 
> >> patches to update ArmVirtPkg, MdeModulePkg, and OvmfPkg, and 
> >> finally once the file is consistent, proceed to merge 3/3.
> >>
> >> Changelog:
> >> v1:
> >> - Rebase to current Maintainers.txt.
> >> - Fix typos and missed bits in Maintainers.txt.
> >> - Get rid of the magic '<default>' filename, let the single-char '*'
> >>   wildcard resolve this (_using_ the magic '<default>' filename in the
> >>   script, but treating it as if it was a file in the top-level directory).
> >> - Add -l flag to script to look up which maintainers would be returned for
> >>   a given path (which need not exist).
> >> rfc:
> >> - Split patches up
> >>   - one for new Maintainers.txt format (documentation and F: tags).
> >>   - one for adding a new wilcards responsibility area for */Arm, */AArch64
> >>   - one for the GetMaintainer.py script
> >> - Reworked wildcard handling based on Laszlo's explanation
> >>   - Trailing / covers everything under that directory
> >>   - Trailing * does not cover subdirectories
> >> - Added support for X: tag
> >> - Added support for magic '<default>' pathname
> >> - Also prints mailing list addresses for matching L: tags
> >>
> >> Cc: Andrew Fish <afish@apple.com>
> >> Cc: Laszlo Ersek <lersek@redhat.com>
> >> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> >> Cc: Bob Feng <bob.c.feng@intel.com>
> >> Cc: Liming Gao <liming.gao@intel.com>
> >> Cc: Philippe Mathieu-Daude <philmd@redhat.com>
> >> Cc: "Wu, Hao A" <hao.a.wu@intel.com>
> >>
> >> Leif Lindholm (3):
> >>   Maintainers.txt: update for filesystem area descriptions
> >>   Maintainers.txt: add wildcard path association for Arm/AArch64
> >>   BaseTools: add GetMaintainer.py script
> >>
> >>  BaseTools/Scripts/GetMaintainer.py | 190 +++++++++++++++++++++++++++++
> >>  Maintainers.txt                    |  54 ++++++++
> >>  2 files changed, 244 insertions(+)  create mode 100644 
> >> BaseTools/Scripts/GetMaintainer.py
> >>
> >> --
> >> 2.20.1
> >>
> >>
> > 
> 




^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [edk2-devel] [PATCH 0/3] add GetMaintainer.py helper script (and Maintainers.txt format change)
  2019-07-24  2:03       ` [edk2-devel] " Bob Feng
@ 2019-07-24 16:49         ` Leif Lindholm
  0 siblings, 0 replies; 20+ messages in thread
From: Leif Lindholm @ 2019-07-24 16:49 UTC (permalink / raw)
  To: Feng, Bob C
  Cc: devel@edk2.groups.io, Laszlo Ersek, Andrew Fish,
	Kinney, Michael D, Philippe Mathieu-Daude, Gao, Liming

Thanks Bob, Liming.

GetMaintainer.py patch pushed as 7d0a56c4a125

On Wed, Jul 24, 2019 at 02:03:34AM +0000, Feng, Bob C wrote:
> Patch looks fine for me.
> 
> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
> 
> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Leif Lindholm
> Sent: Friday, July 19, 2019 5:00 PM
> To: Laszlo Ersek <lersek@redhat.com>
> Cc: edk2-devel-groups-io <devel@edk2.groups.io>; Andrew Fish <afish@apple.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Philippe Mathieu-Daude <philmd@redhat.com>; Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <liming.gao@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; Stefan Berger <stefanb@linux.ibm.com>
> Subject: Re: [edk2-devel] [PATCH 0/3] add GetMaintainer.py helper script (and Maintainers.txt format change)
> 
> On Thu, Jul 18, 2019 at 11:17:30PM +0200, Laszlo Ersek wrote:
> > On 07/18/19 18:27, Leif Lindholm wrote:
> > > Laszlo, Hao - I have prepared a set for pushing as below.
> > > 
> > > (Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> for all of 
> > > your
> > > patches.)
> > > *But*, I need a review from  Bob and/or Liming before I push the final one:
> > > "BaseTools: add GetMaintainer.py script" -
> > > https://edk2.groups.io/g/devel/message/43666
> > > 
> > > I have verified reviews/acks by all affected reviewers, except for 
> > > Stefan Berger for Ovmf TCG/TPM2.
> > 
> > Stefan's R-b has arrived as well:
> > 
> > http://mid.mail-archive.com/7201b3fb-d84b-30e0-61c8-bf9bb9defa7a@linux
> > .ibm.com
> > 
> > So, I agree, those four patches regarding OvmfPkg reviewership are now 
> > fully approved.
> > 
> > Please pick up Phil's feedback as well.
> > 
> > > While I would prefer to have that too, this is a file format shift - 
> > > not a change in responsibility areas.
> > > Laszlo, do you agree?
> > > If so, I can push 1-7/8 as is.
> > 
> > See above -- then I'm OK.
> 
> 1-7/8 pushed as:
> 3dafa0382286..296c908c6968
> 
> Will push the GetMaintainer.py script once approved by BaseTools maintainers.
> 
> Thanks!
> 
> /
>     Leif
> 
> > Thank you!
> > Laszlo
> > 
> > > 
> > > /
> > >     Leif
> > > 
> > > Hao A Wu (1):
> > >   Maintainers.txt: Fine-grained review ownership for MdeModulePkg
> > > 
> > > Laszlo Ersek (4):
> > >   Maintainers.txt: split out section "ArmVirtPkg: modules used on Xen"
> > >   Maintainers.txt: split out section "OvmfPkg: Xen-related modules"
> > >   Maintainers.txt: split out section "OvmfPkg: TCG- and TPM2-related
> > >     modules"
> > >   Maintainers.txt: split out section "OvmfPkg: CSM modules"
> > > 
> > > Leif Lindholm (3):
> > >   Maintainers.txt: update for filesystem area descriptions
> > >   Maintainers.txt: add wildcard path association for Arm/AArch64
> > >   BaseTools: add GetMaintainer.py script
> > > 
> > > 
> > > On Fri, 12 Jul 2019 at 18:01, Leif Lindholm 
> > > <leif.lindholm@linaro.org>
> > > wrote:
> > > 
> > >> Changes are available directly from:
> > >>
> > >> https://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=upstrea
> > >> ming/git-maintainer-v1
> > >>
> > >> This series adds new tags to the Maintainers.txt format, making it 
> > >> possible to describe which filesystem paths are looked after by 
> > >> which people, and hence automating the extraction of a list over 
> > >> who should be cc:d on a patch submission.
> > >>
> > >> Remaining shorcomings in v1:
> > >> - Will still be misparsing OvmfPkg and MdeModulePkg due to non-tag lines
> > >>   interspersed with the tag lines. These lines will be removed as areas of
> > >>   responsibility is formally rewritten as tags.
> > >> - * Wildcard support is not fully filesystem compliant except in first or
> > >>   last position in the file pattern (it translates as regex .* elsewhere).
> > >>   However, actual cases of mismatch are expected to be unlikely, and they
> > >>   will be false positives rather than false negatives - so I think this is
> > >>   good enough at least for a start.
> > >> - Provides no information of why certain people or meiling lists were
> > >>   picked - it just bundles all recipients up, deduplicates them, and
> > >>   prints them out.
> > >>
> > >> Using the script requires the gitpython module to be installed.
> > >>
> > >> Worthwhile mentioning outside the ChangeLog is the added -l flag, 
> > >> which lets you look up what a given path would return in the way of matches.
> > >> E.g. "python BaseTools/Scripts/GetMaintainer.py -l Non/Existing/Path"
> > >> would return:
> > >> ---
> > >> Non/Existing/Path
> > >> "Non/Existing/Path": no maintainers found, looking for default
> > >>   Andrew Fish <afish@apple.com>
> > >>   Laszlo Ersek <lersek@redhat.com>
> > >>   Leif Lindholm <leif.lindholm@linaro.org>
> > >>   Michael D Kinney <michael.d.kinney@intel.com>
> > >>   devel@edk2.groups.io
> > >> ---
> > >>
> > >> This series would still result in GetMaintainers.py missing some 
> > >> maintainers/reviewers due to descriptions in prose rather than 
> > >> filename patterns. My preferred way of handling this would be to 
> > >> merge 1-2/3 as soon as found acceptable, following up and merging 
> > >> patches to update ArmVirtPkg, MdeModulePkg, and OvmfPkg, and 
> > >> finally once the file is consistent, proceed to merge 3/3.
> > >>
> > >> Changelog:
> > >> v1:
> > >> - Rebase to current Maintainers.txt.
> > >> - Fix typos and missed bits in Maintainers.txt.
> > >> - Get rid of the magic '<default>' filename, let the single-char '*'
> > >>   wildcard resolve this (_using_ the magic '<default>' filename in the
> > >>   script, but treating it as if it was a file in the top-level directory).
> > >> - Add -l flag to script to look up which maintainers would be returned for
> > >>   a given path (which need not exist).
> > >> rfc:
> > >> - Split patches up
> > >>   - one for new Maintainers.txt format (documentation and F: tags).
> > >>   - one for adding a new wilcards responsibility area for */Arm, */AArch64
> > >>   - one for the GetMaintainer.py script
> > >> - Reworked wildcard handling based on Laszlo's explanation
> > >>   - Trailing / covers everything under that directory
> > >>   - Trailing * does not cover subdirectories
> > >> - Added support for X: tag
> > >> - Added support for magic '<default>' pathname
> > >> - Also prints mailing list addresses for matching L: tags
> > >>
> > >> Cc: Andrew Fish <afish@apple.com>
> > >> Cc: Laszlo Ersek <lersek@redhat.com>
> > >> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> > >> Cc: Bob Feng <bob.c.feng@intel.com>
> > >> Cc: Liming Gao <liming.gao@intel.com>
> > >> Cc: Philippe Mathieu-Daude <philmd@redhat.com>
> > >> Cc: "Wu, Hao A" <hao.a.wu@intel.com>
> > >>
> > >> Leif Lindholm (3):
> > >>   Maintainers.txt: update for filesystem area descriptions
> > >>   Maintainers.txt: add wildcard path association for Arm/AArch64
> > >>   BaseTools: add GetMaintainer.py script
> > >>
> > >>  BaseTools/Scripts/GetMaintainer.py | 190 +++++++++++++++++++++++++++++
> > >>  Maintainers.txt                    |  54 ++++++++
> > >>  2 files changed, 244 insertions(+)  create mode 100644 
> > >> BaseTools/Scripts/GetMaintainer.py
> > >>
> > >> --
> > >> 2.20.1
> > >>
> > >>
> > > 
> > 
> 
> 
> 

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2019-07-24 16:49 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-12 17:01 [PATCH 0/3] add GetMaintainer.py helper script Leif Lindholm
2019-07-12 17:01 ` [PATCH 1/3] Maintainers.txt: update for filesystem area descriptions Leif Lindholm
2019-07-12 22:54   ` Laszlo Ersek
2019-07-12 17:01 ` [PATCH 2/3] Maintainers.txt: add wildcard path association for Arm/AArch64 Leif Lindholm
2019-07-12 22:54   ` Laszlo Ersek
2019-07-12 17:01 ` [PATCH 3/3] BaseTools: add GetMaintainer.py script Leif Lindholm
2019-07-12 22:58   ` Laszlo Ersek
2019-07-13 10:41     ` Leif Lindholm
2019-07-15 17:08       ` [edk2-devel] " Laszlo Ersek
2019-07-12 22:54 ` [PATCH 0/3] add GetMaintainer.py helper script Laszlo Ersek
2019-07-18 16:27 ` Leif Lindholm
2019-07-18 17:01   ` Philippe Mathieu-Daudé
2019-07-18 17:40     ` Leif Lindholm
2019-07-18 17:50       ` Philippe Mathieu-Daudé
2019-07-18 21:17   ` Laszlo Ersek
2019-07-18 21:56     ` Leif Lindholm
2019-07-24  1:39       ` Liming Gao
2019-07-19  9:00     ` [PATCH 0/3] add GetMaintainer.py helper script (and Maintainers.txt format change) Leif Lindholm
2019-07-24  2:03       ` [edk2-devel] " Bob Feng
2019-07-24 16:49         ` Leif Lindholm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox