On Fri, 5 Jul 2024 17:35:33 +0200 Robin Jarry <rja...@redhat.com> wrote:
> When using checkpatches.sh locally, verify that there is an In-Reply-To > header when the patch is a respin (i.e. v2, v3, etc.). This is currently > only enforced by the upstream CI but cannot be verified locally. > > This cannot be verified when checking commit ids since --in-reply-to is > a git-format-patch option which is not specified by checkpatches.sh when > generating temporary files. > > Here is an example: > > $ git format-patch -v6 -1 --stdout | devtools/checkpatches.sh > warning: [PATCH v6] graph: expose node context as pointers > warning: respins must be --in-reply-to=<v1.pa...@message.id>. > 0/1 valid patch > > $ git format-patch -v6 -1 --stdout --in-reply-to=foo | \ > devtools/checkpatches.sh > 1/1 valid patch > > Link: https://git.dpdk.org/tools/dpdk-ci/commit/?id=070b31649e48460b3 > Signed-off-by: Robin Jarry <rja...@redhat.com> > --- > devtools/checkpatches.sh | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh > index bfacd77f398a..cb1c9972a71f 100755 > --- a/devtools/checkpatches.sh > +++ b/devtools/checkpatches.sh > @@ -405,11 +405,13 @@ status=0 > check () { # <patch-file> <commit> > local ret=0 > local subject='' > + local check_in_reply_to=false > headline_printed=false > > total=$(($total + 1)) > if [ -n "$1" ] ; then > tmpinput=$1 > + check_in_reply_to=true > else > tmpinput=$(mktemp -t dpdk.checkpatches.XXXXXX) > trap "rm -f '$tmpinput'" INT > @@ -419,6 +421,7 @@ check () { # <patch-file> <commit> > --no-stat --stdout -1 $commit > "$tmpinput" > else > cat > "$tmpinput" > + check_in_reply_to=true > fi > fi > > @@ -426,6 +429,16 @@ check () { # <patch-file> <commit> > subject=$(sed '/^Subject: */!d;s///;N;s,\n[[:space:]]\+, ,;s,\n.*,,;q' > "$tmpinput") > ! $verbose || print_headline "$subject" > > + # check In-Reply-To for version > 1 > + if [ "$check_in_reply_to" = true ] \ > + && echo "$subject" | grep -qi 'v[2-9].*\]' \ Your regex won't work for v10 etc.