[dpdk-dev,v2] devtools: add script to get maintainers from patch
Checks
Commit Message
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 <my.patch>
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 <ferruh.yigit@intel.com>
---
v2:
* add trap
* update contributors guide
---
devtools/get_maintainer.sh | 85 +++++++++++++++++++++++++++++++++++++
doc/guides/contributing/patches.rst | 4 ++
2 files changed, 89 insertions(+)
create mode 100755 devtools/get_maintainer.sh
Comments
04/08/2017 16:01, Ferruh Yigit:
> 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 <my.patch>
>
> 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 <ferruh.yigit@intel.com>
Sorry for having missed this very convenient patch for months.
Applied, thanks
Have you tried to send a patch to Linux
in order to avoid the workaround below?
> +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
> +}
On 11/7/2017 3:35 PM, Thomas Monjalon wrote:
> 04/08/2017 16:01, Ferruh Yigit:
>> 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 <my.patch>
>>
>> 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 <ferruh.yigit@intel.com>
>
> Sorry for having missed this very convenient patch for months.
>
> Applied, thanks
>
> Have you tried to send a patch to Linux
> in order to avoid the workaround below?
No, not tried, but that list looks like put intentionally so not sure if a patch
helps.
>
>> +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
>> +}
08/11/2017 00:41, Ferruh Yigit:
> On 11/7/2017 3:35 PM, Thomas Monjalon wrote:
> > Have you tried to send a patch to Linux
> > in order to avoid the workaround below?
>
> No, not tried, but that list looks like put intentionally so not sure if a patch
> helps.
checkpatch has an option to be run outside of Linux.
> >> +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
> >> +}
>
>
new file mode 100755
@@ -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) <patch>
+ 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
@@ -404,6 +404,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