From 7a62910653206669aadbdad2abeb187a595dfefc Mon Sep 17 00:00:00 2001 From: Ferruh Yigit Date: Fri, 4 Aug 2017 15:01:25 +0100 Subject: [PATCH] devtools: add script to get maintainers from patch This is a wrapper to Linux kernel get_maintainer.pl file and only supports parsing MAINTAINERS file (no git fallback etc..) Requires DPDK_GETMAINTAINER_PATH devel config option set, please check devtools/load-devel-config. DPDK_GETMAINTAINER_PATH should be full path to the get_maintainer.pl script, like: DPDK_GETMAINTAINER_PATH=~/linux/scripts/get_maintainer.pl Can be used individually: ./devtools/get-maintainer.sh Or via git send-email, to add maintainers automatically: git send-email --to-cmd ./devtools/get-maintainer.sh \ --cc dev@dpdk.org HEAD -4 Currently there is an ugly workaround to be able to use Linux script out of the kernel tree, later better method can replace it. Signed-off-by: Ferruh Yigit --- MAINTAINERS | 1 + devtools/get-maintainer.sh | 85 +++++++++++++++++++++++++++++ doc/guides/contributing/patches.rst | 4 ++ 3 files changed, 90 insertions(+) create mode 100755 devtools/get-maintainer.sh diff --git a/MAINTAINERS b/MAINTAINERS index bbcc9c4ad7..8d45ad0b83 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -47,6 +47,7 @@ F: devtools/check-maintainers.sh F: devtools/check-git-log.sh F: devtools/check-includes.sh F: devtools/checkpatches.sh +F: devtools/get-maintainer.sh F: devtools/git-log-fixes.sh F: devtools/load-devel-config F: devtools/test-build.sh diff --git a/devtools/get-maintainer.sh b/devtools/get-maintainer.sh new file mode 100755 index 0000000000..5ae6b5aed1 --- /dev/null +++ b/devtools/get-maintainer.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +# BSD LICENSE +# +# Copyright(c) 2017 Intel Corporation. All rights reserved. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Intel Corporation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +# Load config options: +# - DPDK_GETMAINTAINER_PATH +. $(dirname $(readlink -e $0))/load-devel-config + +options="--no-git-fallback" +options="$options --no-rolestats" + +print_usage () { + cat <<- END_OF_HELP + usage: $(basename $0) + END_OF_HELP +} + +# Requires DPDK_GETMAINTAINER_PATH devel config option set, +# please check devtools/load-devel-config. +# DPDK_GETMAINTAINER_PATH should be full path to the get_maintainer.pl script, +# like: +# DPDK_GETMAINTAINER_PATH=~/linux/scripts/get_maintainer.pl + +if [ ! -x "$DPDK_GETMAINTAINER_PATH" ] ; then + print_usage >&2 + echo + echo 'Cannot execute DPDK_GETMAINTAINER_PATH' >&2 + exit 1 +fi + +FILES="COPYING CREDITS Kbuild" +FOLDERS="Documentation arch include fs init ipc kernel scripts" + +# Kernel script checks for some files and folders to run +workaround () { + for f in $FILES; do + if [ ! -f $f ]; then touch $f; fi + done + + for d in $FOLDERS; do + if [ ! -d $d ]; then mkdir $d; fi + done +} + +fix_workaround () { + for f in $FILES; do if [ -f $f ]; then rm -f $f; fi; done + for d in $FOLDERS; do if [ -d $d ]; then rmdir $d; fi; done +} + +# clean workaround on exit +trap fix_workaround EXIT + +workaround +$DPDK_GETMAINTAINER_PATH $options $@ +# fix_workaround called on exit by trap diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst index 446dfc7328..40983c1509 100644 --- a/doc/guides/contributing/patches.rst +++ b/doc/guides/contributing/patches.rst @@ -403,6 +403,10 @@ The appropriate maintainer can be found in the ``MAINTAINERS`` file:: git send-email --to maintainer@some.org --cc dev@dpdk.org 000*.patch +Script ``get-maintainer.sh`` can be used to select maintainers automatically:: + + git send-email --to-cmd ./devtools/get-maintainer.sh --cc dev@dpdk.org 000*.patch + New additions can be sent without a maintainer:: git send-email --to dev@dpdk.org 000*.patch -- 2.20.1